@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.
@@ -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, mapRenderMapContentAsync, joinPath, fileExists, readJson, writeFile } from '@codama/renderers-core';
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 { format, resolveConfig } from 'prettier';
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
- arrowParens: "always",
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 formatCode(renderMap, options) {
391
+ async function getCodeFormatter(options) {
398
392
  const shouldFormatCode = options.formatCode ?? true;
399
- if (!shouldFormatCode) return renderMap;
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 await mapRenderMapContentAsync(renderMap, (code) => format(code, prettierOptions));
399
+ return (code, filepath) => format(code, { ...prettierOptions, filepath });
406
400
  }
407
401
  async function resolvePrettierOptions(packageFolder) {
408
402
  if (!packageFolder) return null;
409
- return await resolveConfig(packageFolder);
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
- writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
487
+ await writePackageJson(packageJson, packageJsonPath, formatCode);
493
488
  } else {
494
489
  const packageJson = createNewPackageJson(usedDependencies);
495
- writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
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
- renderMap = await formatCode(renderMap, options);
3205
- syncPackageJson(renderMap, options);
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
  }