@codama/renderers-js
Version:
JavaScript renderer compatible with the Solana Kit library
67 lines • 2.94 kB
TypeScript
import type { CamelCaseString } from '@codama/nodes';
import type { LinkableDictionary } from '@codama/visitors-core';
import type { TypeManifestVisitor } from '../visitors';
import type { CustomDataOptions, ParsedCustomDataOptions } from './customData';
import { PrettierOptions } from './formatCode';
import type { GetImportFromFunction, LinkOverrides } from './linkOverrides';
import type { NameApi, NameTransformers } from './nameTransformers';
export type RenderOptions = GetRenderMapOptions & {
deleteFolderBeforeRendering?: boolean;
formatCode?: boolean;
generatedFolder?: string;
prettierOptions?: PrettierOptions;
syncPackageJson?: boolean;
};
export type GetRenderMapOptions = {
asyncResolvers?: string[];
customAccountData?: CustomDataOptions[];
customInstructionData?: CustomDataOptions[];
dependencyMap?: Record<string, string>;
dependencyVersions?: Record<string, string>;
internalNodes?: string[];
kitImportStrategy?: KitImportStrategy;
linkOverrides?: LinkOverrides;
nameTransformers?: Partial<NameTransformers>;
nonScalarEnums?: string[];
renderParentInstructions?: boolean;
};
export type RenderScope = {
asyncResolvers: CamelCaseString[];
customAccountData: ParsedCustomDataOptions;
customInstructionData: ParsedCustomDataOptions;
dependencyMap: Record<string, string>;
dependencyVersions: Record<string, string>;
getImportFrom: GetImportFromFunction;
kitImportStrategy: KitImportStrategy;
linkables: LinkableDictionary;
nameApi: NameApi;
nonScalarEnums: CamelCaseString[];
renderParentInstructions: boolean;
typeManifestVisitor: TypeManifestVisitor;
};
/**
* Defines how generated code should import utilities that exist both as standalone
* packages (granular imports) and via the root `@solana/kit` package.
*
* Variants:
* - `'granular'`:
* Always import from the most specific standalone packages when possible
* (e.g. `@solana/addresses`, `@solana/codecs-strings`) and never from `@solana/kit`
* (except for symbols that are only exported from `@solana/kit`).
*
* - `'preferRoot'` (default):
* Prefer importing from `@solana/kit` when a symbol is exported from its root
* entrypoint. If it is not available from the root entrypoint, fall back to
* granular packages.
*
* - `'rootOnly'`:
* Only import from the `@solana/kit` package. When a symbol is not exported from
* the root entrypoint, the generator may use `@solana/kit` subpath exports
* (e.g. `@solana/kit/program-client-core`).
* This is useful when `@solana/kit` is installed as a `peerDependency`, but it may
* require TypeScript `moduleResolution: "bundler"` to resolve `@solana/kit`
* subpath exports correctly.
*/
export type KitImportStrategy = 'granular' | 'preferRoot' | 'rootOnly';
export declare const DEFAULT_KIT_IMPORT_STRATEGY: KitImportStrategy;
//# sourceMappingURL=options.d.ts.map