Skip to content

Commit 857abd0

Browse files
authored
Use latest RenderMap type from renderers-core (#53)
1 parent 7a40451 commit 857abd0

File tree

5 files changed

+62
-50
lines changed

5 files changed

+62
-50
lines changed

.changeset/great-trams-notice.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@codama/renderers-js-umi': patch
3+
---
4+
5+
Use latest RenderMap type from renderers-core

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@
4242
"test:unit": "vitest run"
4343
},
4444
"dependencies": {
45-
"@codama/errors": "^1.3.7",
46-
"@codama/nodes": "^1.3.7",
47-
"@codama/renderers-core": "^1.2.2",
48-
"@codama/validators": "^1.3.7",
49-
"@codama/visitors-core": "^1.3.7",
45+
"@codama/errors": "^1.4.1",
46+
"@codama/nodes": "^1.4.1",
47+
"@codama/renderers-core": "^1.3.0",
48+
"@codama/validators": "^1.4.1",
49+
"@codama/visitors-core": "^1.4.1",
5050
"@solana/codecs-strings": "^5.0.0",
5151
"nunjucks": "^3.2.4",
5252
"prettier": "^3.6.2"

pnpm-lock.yaml

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/getRenderMapVisitor.ts

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
structTypeNodeFromInstructionArgumentNodes,
2222
VALUE_NODES,
2323
} from '@codama/nodes';
24-
import { addToRenderMap, createRenderMap, mergeRenderMaps, RenderMap } from '@codama/renderers-core';
24+
import { addToRenderMap, BaseFragment, createRenderMap, mergeRenderMaps, RenderMap } from '@codama/renderers-core';
2525
import {
2626
extendVisitor,
2727
getByteSizeVisitor,
@@ -62,7 +62,7 @@ export type GetRenderMapOptions = {
6262
renderParentInstructions?: boolean;
6363
};
6464

65-
export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<RenderMap> {
65+
export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<RenderMap<BaseFragment>> {
6666
const linkables = new LinkableDictionary();
6767
const stack = new NodeStack();
6868
let program: ProgramNode | null = null;
@@ -229,9 +229,8 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
229229
}
230230
const hasVariableSeeds = pdaSeeds.filter(isNodeFilter('variablePdaSeedNode')).length > 0;
231231

232-
return createRenderMap(
233-
`accounts/${camelCase(node.name)}.ts`,
234-
render('accountsPage.njk', {
232+
return createRenderMap(`accounts/${camelCase(node.name)}.ts`, {
233+
content: render('accountsPage.njk', {
235234
account: node,
236235
customData,
237236
discriminator: resolvedDiscriminator,
@@ -242,7 +241,7 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
242241
seeds,
243242
typeManifest,
244243
}),
245-
);
244+
});
246245
},
247246

248247
visitDefinedType(node) {
@@ -257,9 +256,8 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
257256
`get${pascalCaseName}Serializer`,
258257
]);
259258

260-
return createRenderMap(
261-
`types/${camelCase(node.name)}.ts`,
262-
render('definedTypesPage.njk', {
259+
return createRenderMap(`types/${camelCase(node.name)}.ts`, {
260+
content: render('definedTypesPage.njk', {
263261
definedType: node,
264262
imports: imports.toString({
265263
...dependencyMap,
@@ -268,7 +266,7 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
268266
isDataEnum: isNode(node.type, 'enumTypeNode') && isDataEnum(node.type),
269267
typeManifest,
270268
}),
271-
);
269+
});
272270
},
273271

274272
visitInstruction(node) {
@@ -418,9 +416,8 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
418416
imports.add(getImportFrom(remainingAccounts.value), camelCase(remainingAccounts.value.name));
419417
}
420418

421-
return createRenderMap(
422-
`instructions/${camelCase(node.name)}.ts`,
423-
render('instructionsPage.njk', {
419+
return createRenderMap(`instructions/${camelCase(node.name)}.ts`, {
420+
content: render('instructionsPage.njk', {
424421
accounts,
425422
argsWithDefaults,
426423
byteDelta,
@@ -448,7 +445,7 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
448445
resolvedInputs,
449446
resolvedInputsWithDefaults,
450447
}),
451-
);
448+
});
452449
},
453450

454451
visitProgram(node, { self }) {
@@ -468,22 +465,18 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
468465
}).map(ix => visit(ix, self)),
469466
]),
470467
r =>
471-
addToRenderMap(
472-
r,
473-
`errors/${camelCase(node.name)}.ts`,
474-
render('errorsPage.njk', {
468+
addToRenderMap(r, `errors/${camelCase(node.name)}.ts`, {
469+
content: render('errorsPage.njk', {
475470
errors: node.errors,
476471
imports: new ImportMap()
477472
.add('umi', ['ProgramError', 'Program'])
478473
.toString(dependencyMap),
479474
program: node,
480475
}),
481-
),
476+
}),
482477
r =>
483-
addToRenderMap(
484-
r,
485-
`programs/${camelCase(node.name)}.ts`,
486-
render('programsPage.njk', {
478+
addToRenderMap(r, `programs/${camelCase(node.name)}.ts`, {
479+
content: render('programsPage.njk', {
487480
imports: new ImportMap()
488481
.add('umi', ['ClusterFilter', 'Context', 'Program', 'PublicKey'])
489482
.add('errors', [
@@ -493,7 +486,7 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
493486
.toString(dependencyMap),
494487
program: node,
495488
}),
496-
),
489+
}),
497490
);
498491
program = null;
499492
return renders;
@@ -525,17 +518,23 @@ export function getRenderMapVisitor(options: GetRenderMapOptions = {}): Visitor<
525518
return mergeRenderMaps([
526519
createRenderMap({
527520
['accounts/index.ts']:
528-
accountsToExport.length > 0 ? render('accountsIndex.njk', ctx) : undefined,
521+
accountsToExport.length > 0 ? { content: render('accountsIndex.njk', ctx) } : undefined,
529522
['errors/index.ts']:
530-
programsToExport.length > 0 ? render('errorsIndex.njk', ctx) : undefined,
531-
['index.ts']: render('rootIndex.njk', ctx),
523+
programsToExport.length > 0 ? { content: render('errorsIndex.njk', ctx) } : undefined,
524+
['index.ts']: { content: render('rootIndex.njk', ctx) },
532525
['instructions/index.ts']:
533-
instructionsToExport.length > 0 ? render('instructionsIndex.njk', ctx) : undefined,
526+
instructionsToExport.length > 0
527+
? { content: render('instructionsIndex.njk', ctx) }
528+
: undefined,
534529
['programs/index.ts']:
535-
programsToExport.length > 0 ? render('programsIndex.njk', ctx) : undefined,
536-
['shared/index.ts']: hasAnythingToExport ? render('sharedPage.njk', ctx) : undefined,
530+
programsToExport.length > 0 ? { content: render('programsIndex.njk', ctx) } : undefined,
531+
['shared/index.ts']: hasAnythingToExport
532+
? { content: render('sharedPage.njk', ctx) }
533+
: undefined,
537534
['types/index.ts']:
538-
definedTypesToExport.length > 0 ? render('definedTypesIndex.njk', ctx) : undefined,
535+
definedTypesToExport.length > 0
536+
? { content: render('definedTypesIndex.njk', ctx) }
537+
: undefined,
539538
}),
540539
...getAllPrograms(node).map(p => visit(p, self)),
541540
]);

test/_setup.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getFromRenderMap, RenderMap } from '@codama/renderers-core';
1+
import { BaseFragment, getFromRenderMap, RenderMap } from '@codama/renderers-core';
22
import { Plugin } from 'prettier';
33
import * as estreePlugin from 'prettier/plugins/estree';
44
import * as typeScriptPlugin from 'prettier/plugins/typescript';
@@ -17,9 +17,13 @@ const PRETTIER_OPTIONS: Parameters<typeof format>[1] = {
1717
useTabs: false,
1818
};
1919

20-
export function renderMapContains(renderMap: RenderMap, key: string, expected: (RegExp | string)[] | RegExp | string) {
20+
export function renderMapContains(
21+
renderMap: RenderMap<BaseFragment>,
22+
key: string,
23+
expected: (RegExp | string)[] | RegExp | string,
24+
) {
2125
expect(renderMap.has(key), `RenderMap is missing key "${key}".`).toBe(true);
22-
return codeContains(getFromRenderMap(renderMap, key), expected);
26+
return codeContains(getFromRenderMap(renderMap, key).content, expected);
2327
}
2428

2529
export async function codeContains(actual: string, expected: (RegExp | string)[] | RegExp | string) {
@@ -46,9 +50,13 @@ export async function codeDoesNotContain(actual: string, expected: (RegExp | str
4650
});
4751
}
4852

49-
export function renderMapContainsImports(renderMap: RenderMap, key: string, expectedImports: Record<string, string[]>) {
53+
export function renderMapContainsImports(
54+
renderMap: RenderMap<BaseFragment>,
55+
key: string,
56+
expectedImports: Record<string, string[]>,
57+
) {
5058
expect(renderMap.has(key), `RenderMap is missing key "${key}".`).toBe(true);
51-
return codeContainsImports(getFromRenderMap(renderMap, key), expectedImports);
59+
return codeContainsImports(getFromRenderMap(renderMap, key).content, expectedImports);
5260
}
5361

5462
export async function codeContainsImports(actual: string, expectedImports: Record<string, string[]>) {

0 commit comments

Comments
 (0)