codama-renderers-web3js
v1.0.4
Published
JavaScript renderer compatible with the solana/web3.js framework
Maintainers
Readme
Codama ➤ Renderers ➤ JavaScript Solana Web3.js
This package generates JavaScript clients from your Codama IDLs. The generated clients are compatible with @solana/web3.js.
Installation
pnpm install codama-renderers-web3jsUsage
Add the following script to your Codama configuration file.
{
"scripts": {
"web3js": {
"from": "codama-renderers-web3js",
"args": ["clients/web3js/src/generated"]
}
}
}An object can be passed as a second argument to further configure the renderer. See the Options section below for more details.
Options
The renderVisitor accepts the following options.
| Name | Type | Default | Description |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| deleteFolderBeforeRendering | boolean | true | Whether the base directory should be cleaned before generating new files. |
| formatCode | boolean | true | Whether we should use Prettier to format the generated code. |
| prettierOptions | PrettierOptions | {} | The options to use when formatting the code using Prettier. |
| throwLevel | 'debug' \| 'trace' \| 'info' \| 'warn' \| 'error' | 'error' | When validating the Codama IDL, the level at which the validation should throw an error. |
| customAccountData | string[] | [] | The names of all AccountNodes whose data should be manually written in JavaScript. |
| customInstructionData | string[] | [] | The names of all InstructionNodes whose data should be manually written in JavaScript. |
| linkOverrides | Record<'accounts' \| 'definedTypes' \| 'instructions' \| 'pdas' \| 'programs' \| 'resolvers', Record<string, string>> | {} | A object that overrides the import path of link nodes. For instance, { definedTypes: { counter: 'hooked' } } uses the hooked folder to import any link node referring to the counter type. |
| dependencyMap | Record<string, string> | {} | A mapping between import aliases and their actual package name or path in JavaScript. |
| internalNodes | string[] | [] | The names of all nodes that should be generated but not exported by the index.ts files. |
| nonScalarEnums | string[] | [] | The names of enum variants with no data that should be treated as a data union instead of a native enum type. This is only useful if you are referencing an enum value in your Codama IDL. |
| renderParentInstructions | boolean | false | When using nested instructions, whether the parent instructions should also be rendered. When set to false (default), only the instruction leaves are being rendered. |
