This package generates JavaScript clients from your Codama IDLs. The generated clients are compatible with Metaplex's Umi framework.
pnpm install @codama/renderers-js-umiAdd the following script to your Codama configuration file.
{
    "scripts": {
        "js": {
            "from": "@codama/renderers-js-umi",
            "args": ["clients/js/src/generated"]
        }
    }
}An object can be passed as a second argument to further configure the renderer. See the Options section below for more details.
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 AccountNodeswhose data should be manually written in JavaScript. | 
| customInstructionData | string[] | [] | The names of all InstructionNodeswhose 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 thehookedfolder to import any link node referring to thecountertype. | 
| 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.tsfiles. | 
| nonScalarEnums | string[] | [] | The names of enum variants with no data that should be treated as a data union instead of a native enumtype. 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. |