@codama/renderers-js 1.5.3 → 1.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.cjs +19 -18
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +19 -19
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.node.cjs +20 -18
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +21 -20
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.react-native.mjs +19 -19
- package/dist/index.react-native.mjs.map +1 -1
- package/dist/types/utils/formatCode.d.ts +4 -4
- package/dist/types/utils/formatCode.d.ts.map +1 -1
- package/dist/types/utils/packageJson.d.ts +3 -2
- package/dist/types/utils/packageJson.d.ts.map +1 -1
- package/dist/types/visitors/renderVisitor.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.node.mjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { camelCase, pascalCase, snakeCase, titleCase, kebabCase, capitalize, REGISTERED_TYPE_NODE_KINDS, REGISTERED_VALUE_NODE_KINDS, isNodeFilter, resolveNestedTypeNode, structTypeNodeFromInstructionArgumentNodes, isNode, isScalarEnum, structTypeNode, structFieldTypeNode, getAllPrograms, getAllPdas, getAllAccounts, getAllInstructionsWithSubs, getAllDefinedTypes, definedTypeLinkNode, definedTypeNode, isDataEnum, accountValueNode, argumentValueNode, parseOptionalAccountStrategy, VALUE_NODES, getAllInstructionArguments, constantDiscriminatorNode, constantValueNodeFromBytes, constantValueNode, assertIsNode } from '@codama/nodes';
|
|
2
|
-
import { setFragmentContent, mapFragmentContent, createRenderMap, mergeRenderMaps, deleteDirectory, writeRenderMap, createFragmentTemplate,
|
|
2
|
+
import { setFragmentContent, mapFragmentContent, createRenderMap, mergeRenderMaps, deleteDirectory, mapRenderMapContentAsync, writeRenderMap, createFragmentTemplate, joinPath, fileExists, readJson, writeFile } from '@codama/renderers-core';
|
|
3
3
|
import { NodeStack, pipe, staticVisitor, extendVisitor, visit, findLastNodeFromPath, recordNodeStackVisitor, LinkableDictionary, getResolvedInstructionInputsVisitor, getByteSizeVisitor, recordLinkablesOnFirstVisitVisitor, rootNodeVisitor, findProgramNodeFromPath, getLastNodeFromPath, findInstructionNodeFromPath, deduplicateInstructionDependencies } from '@codama/visitors-core';
|
|
4
4
|
import { getBase64Encoder, getBase58Encoder, getBase16Encoder, getUtf8Encoder, getBase64Decoder } from '@solana/codecs-strings';
|
|
5
|
-
import {
|
|
5
|
+
import { resolveConfig } from 'prettier';
|
|
6
|
+
import * as babelPlugin from 'prettier/plugins/babel';
|
|
6
7
|
import * as estreePlugin from 'prettier/plugins/estree';
|
|
7
8
|
import * as typeScriptPlugin from 'prettier/plugins/typescript';
|
|
9
|
+
import { format } from 'prettier/standalone';
|
|
8
10
|
import { CodamaError, CODAMA_ERROR__UNEXPECTED_NODE_KIND, logWarn, CODAMA_ERROR__RENDERERS__MISSING_DEPENDENCY_VERSIONS } from '@codama/errors';
|
|
9
11
|
import { subset, minVersion, lt } from 'semver';
|
|
10
12
|
|
|
@@ -384,29 +386,22 @@ var getDefinedTypeNodesToExtract = (nodes, parsedCustomDataOptions) => nodes.fla
|
|
|
384
386
|
];
|
|
385
387
|
});
|
|
386
388
|
var DEFAULT_PRETTIER_OPTIONS = {
|
|
387
|
-
|
|
388
|
-
parser: "typescript",
|
|
389
|
-
plugins: [estreePlugin, typeScriptPlugin],
|
|
390
|
-
printWidth: 80,
|
|
391
|
-
semi: true,
|
|
392
|
-
singleQuote: true,
|
|
393
|
-
tabWidth: 2,
|
|
394
|
-
trailingComma: "es5",
|
|
395
|
-
useTabs: false
|
|
389
|
+
plugins: [estreePlugin, typeScriptPlugin, babelPlugin]
|
|
396
390
|
};
|
|
397
|
-
async function
|
|
391
|
+
async function getCodeFormatter(options) {
|
|
398
392
|
const shouldFormatCode = options.formatCode ?? true;
|
|
399
|
-
if (!shouldFormatCode) return
|
|
393
|
+
if (!shouldFormatCode) return (code) => Promise.resolve(code);
|
|
400
394
|
const prettierOptions = {
|
|
401
395
|
...DEFAULT_PRETTIER_OPTIONS,
|
|
402
396
|
...await resolvePrettierOptions(options.packageFolder),
|
|
403
397
|
...options.prettierOptions
|
|
404
398
|
};
|
|
405
|
-
return
|
|
399
|
+
return (code, filepath) => format(code, { ...prettierOptions, filepath });
|
|
406
400
|
}
|
|
407
401
|
async function resolvePrettierOptions(packageFolder) {
|
|
408
402
|
if (!packageFolder) return null;
|
|
409
|
-
|
|
403
|
+
const filePathToResolve = joinPath(packageFolder, "package.json");
|
|
404
|
+
return await resolveConfig(filePathToResolve);
|
|
410
405
|
}
|
|
411
406
|
function getImportFromFactory(overrides, customAccountData, customInstructionData) {
|
|
412
407
|
const customDataOverrides = Object.fromEntries(
|
|
@@ -465,7 +460,7 @@ var DEFAULT_DEPENDENCY_VERSIONS = {
|
|
|
465
460
|
"@solana/rpc-types": "^5.0.0",
|
|
466
461
|
"@solana/signers": "^5.0.0"
|
|
467
462
|
};
|
|
468
|
-
function syncPackageJson(renderMap, options) {
|
|
463
|
+
async function syncPackageJson(renderMap, formatCode, options) {
|
|
469
464
|
const shouldSyncPackageJson = options.syncPackageJson ?? false;
|
|
470
465
|
const packageFolder = options.packageFolder;
|
|
471
466
|
if (!packageFolder) {
|
|
@@ -489,10 +484,10 @@ function syncPackageJson(renderMap, options) {
|
|
|
489
484
|
}
|
|
490
485
|
if (fileExists(packageJsonPath)) {
|
|
491
486
|
const packageJson = updateExistingPackageJson(readJson(packageJsonPath), usedDependencies);
|
|
492
|
-
|
|
487
|
+
await writePackageJson(packageJson, packageJsonPath, formatCode);
|
|
493
488
|
} else {
|
|
494
489
|
const packageJson = createNewPackageJson(usedDependencies);
|
|
495
|
-
|
|
490
|
+
await writePackageJson(packageJson, packageJsonPath, formatCode);
|
|
496
491
|
}
|
|
497
492
|
}
|
|
498
493
|
function createNewPackageJson(dependencyVersions) {
|
|
@@ -620,6 +615,11 @@ function updateDependency(dependencyGroup, dependency, requiredRange) {
|
|
|
620
615
|
if (!shouldUpdateRange(dependency, currentRange, requiredRange)) return;
|
|
621
616
|
dependencyGroup[dependency] = requiredRange;
|
|
622
617
|
}
|
|
618
|
+
async function writePackageJson(packageJson, packageJsonPath, formatCode) {
|
|
619
|
+
const packageJsonContent = JSON.stringify(packageJson, null, 2) + "\n";
|
|
620
|
+
const formattedContent = await formatCode(packageJsonContent, packageJsonPath);
|
|
621
|
+
writeFile(packageJsonPath, formattedContent);
|
|
622
|
+
}
|
|
623
623
|
|
|
624
624
|
// src/fragments/accountFetchHelpers.ts
|
|
625
625
|
function getAccountFetchHelpersFragment(scope) {
|
|
@@ -3201,8 +3201,9 @@ function renderVisitor(path, options = {}) {
|
|
|
3201
3201
|
deleteDirectory(path);
|
|
3202
3202
|
}
|
|
3203
3203
|
let renderMap = visit(root, getRenderMapVisitor(options));
|
|
3204
|
-
|
|
3205
|
-
|
|
3204
|
+
const formatCode = await getCodeFormatter(options);
|
|
3205
|
+
renderMap = await mapRenderMapContentAsync(renderMap, formatCode);
|
|
3206
|
+
await syncPackageJson(renderMap, formatCode, options);
|
|
3206
3207
|
writeRenderMap(renderMap, path);
|
|
3207
3208
|
});
|
|
3208
3209
|
}
|