@codama/renderers-js 1.5.4 → 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 } from 'prettier';
5
+ import '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,25 +386,17 @@ 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
  {
@@ -466,7 +460,7 @@ var DEFAULT_DEPENDENCY_VERSIONS = {
466
460
  "@solana/rpc-types": "^5.0.0",
467
461
  "@solana/signers": "^5.0.0"
468
462
  };
469
- function syncPackageJson(renderMap, options) {
463
+ async function syncPackageJson(renderMap, formatCode, options) {
470
464
  const shouldSyncPackageJson = options.syncPackageJson ?? false;
471
465
  const packageFolder = options.packageFolder;
472
466
  if (!packageFolder) {
@@ -490,10 +484,10 @@ function syncPackageJson(renderMap, options) {
490
484
  }
491
485
  if (fileExists(packageJsonPath)) {
492
486
  const packageJson = updateExistingPackageJson(readJson(packageJsonPath), usedDependencies);
493
- writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
487
+ await writePackageJson(packageJson, packageJsonPath, formatCode);
494
488
  } else {
495
489
  const packageJson = createNewPackageJson(usedDependencies);
496
- writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
490
+ await writePackageJson(packageJson, packageJsonPath, formatCode);
497
491
  }
498
492
  }
499
493
  function createNewPackageJson(dependencyVersions) {
@@ -621,6 +615,11 @@ function updateDependency(dependencyGroup, dependency, requiredRange) {
621
615
  if (!shouldUpdateRange(dependency, currentRange, requiredRange)) return;
622
616
  dependencyGroup[dependency] = requiredRange;
623
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
+ }
624
623
 
625
624
  // src/fragments/accountFetchHelpers.ts
626
625
  function getAccountFetchHelpersFragment(scope) {
@@ -3202,8 +3201,9 @@ function renderVisitor(path, options = {}) {
3202
3201
  deleteDirectory(path);
3203
3202
  }
3204
3203
  let renderMap = visit(root, getRenderMapVisitor(options));
3205
- renderMap = await formatCode(renderMap, options);
3206
- syncPackageJson(renderMap, options);
3204
+ const formatCode = await getCodeFormatter(options);
3205
+ renderMap = await mapRenderMapContentAsync(renderMap, formatCode);
3206
+ await syncPackageJson(renderMap, formatCode, options);
3207
3207
  writeRenderMap(renderMap, path);
3208
3208
  });
3209
3209
  }