@@ -2,6 +2,7 @@ import { CODAMA_ERROR__RENDERERS__MISSING_DEPENDENCY_VERSIONS, CodamaError, logW
22import { fileExists , joinPath , readJson , RenderMap , writeFile } from '@codama/renderers-core' ;
33import { lt as ltVersion , minVersion , subset } from 'semver' ;
44
5+ import type { CodeFormatter } from './formatCode' ;
56import { Fragment , mergeFragments } from './fragment' ;
67import { getExternalDependencies } from './importMap' ;
78import { RenderOptions } from './options' ;
@@ -33,13 +34,14 @@ export const DEFAULT_DEPENDENCY_VERSIONS: DependencyVersions = {
3334 '@solana/signers' : '^5.0.0' ,
3435} ;
3536
36- export function syncPackageJson (
37+ export async function syncPackageJson (
3738 renderMap : RenderMap < Fragment > ,
39+ formatCode : CodeFormatter ,
3840 options : Pick <
3941 RenderOptions ,
4042 'dependencyMap' | 'dependencyVersions' | 'packageFolder' | 'syncPackageJson' | 'useGranularImports'
4143 > ,
42- ) : void {
44+ ) : Promise < void > {
4345 const shouldSyncPackageJson = options . syncPackageJson ?? false ;
4446 const packageFolder = options . packageFolder ;
4547
@@ -72,10 +74,10 @@ export function syncPackageJson(
7274
7375 if ( fileExists ( packageJsonPath ) ) {
7476 const packageJson = updateExistingPackageJson ( readJson ( packageJsonPath ) , usedDependencies ) ;
75- writeFile ( packageJsonPath , JSON . stringify ( packageJson , null , 2 ) + '\n' ) ;
77+ await writePackageJson ( packageJson , packageJsonPath , formatCode ) ;
7678 } else {
7779 const packageJson = createNewPackageJson ( usedDependencies ) ;
78- writeFile ( packageJsonPath , JSON . stringify ( packageJson , null , 2 ) + '\n' ) ;
80+ await writePackageJson ( packageJson , packageJsonPath , formatCode ) ;
7981 }
8082}
8183
@@ -235,3 +237,13 @@ function updateDependency(dependencyGroup: Record<string, string>, dependency: s
235237 if ( ! shouldUpdateRange ( dependency , currentRange , requiredRange ) ) return ;
236238 dependencyGroup [ dependency ] = requiredRange ;
237239}
240+
241+ async function writePackageJson (
242+ packageJson : PackageJson ,
243+ packageJsonPath : string ,
244+ formatCode : CodeFormatter ,
245+ ) : Promise < void > {
246+ const packageJsonContent = JSON . stringify ( packageJson , null , 2 ) + '\n' ;
247+ const formattedContent = await formatCode ( packageJsonContent , packageJsonPath ) ;
248+ writeFile ( packageJsonPath , formattedContent ) ;
249+ }
0 commit comments