MCPcopy Create free account
hub / github.com/TanStack/cli / createPackageJSON

Function createPackageJSON

packages/create/src/package-json.ts:59–163  ·  view source on GitHub ↗
(options: Options)

Source from the content-addressed store, hash-verified

57}
58
59export function createPackageJSON(options: Options) {
60 const packageManager = options.packageManager
61
62 function getPackageManagerExecuteScript(
63 pkg: string,
64 args: Array<string> = [],
65 ) {
66 return formatCommand(getPackageManagerExecuteCommand(packageManager, pkg, args))
67 }
68
69 let packageJSON = {
70 ...JSON.parse(JSON.stringify(options.framework.basePackageJSON)),
71 name: options.projectName,
72 }
73
74 const additions: Array<Record<string, any> | undefined> = [
75 options.framework.optionalPackages.typescript,
76 options.framework.optionalPackages.tailwindcss,
77 options.mode ? options.framework.optionalPackages[options.mode] : undefined,
78 ]
79 for (const addition of additions.filter(Boolean)) {
80 packageJSON = mergePackageJSON(packageJSON, addition)
81 }
82
83 for (const addOn of options.chosenAddOns) {
84 let addOnPackageJSON = addOn.packageAdditions
85
86 // Process EJS template if present
87 if (addOn.packageTemplate) {
88 const templateValues = {
89 packageManager: options.packageManager,
90 projectName: options.projectName,
91 typescript: true,
92 tailwind: true,
93 js: 'ts',
94 jsx: 'tsx',
95 fileRouter: options.mode === 'file-router',
96 codeRouter: options.mode === 'code-router',
97 routerOnly: options.routerOnly === true,
98 addOnEnabled: options.chosenAddOns.reduce<Record<string, boolean>>(
99 (acc, addon) => {
100 acc[addon.id] = true
101 return acc
102 },
103 {},
104 ),
105 addOnOption: options.addOnOptions,
106 addOns: options.chosenAddOns,
107 getPackageManagerExecuteScript,
108 }
109
110 try {
111 const renderedTemplate = render(addOn.packageTemplate, templateValues)
112 addOnPackageJSON = JSON.parse(renderedTemplate)
113 } catch (error) {
114 console.error(
115 `Error processing package.json.ejs for add-on ${addOn.id}:`,
116 error,

Callers 4

writeFilesFunction · 0.90
writeFilesFunction · 0.90

Calls 4

renderFunction · 0.85
errorMethod · 0.80
mergePackageJSONFunction · 0.70
sortObjectFunction · 0.70

Tested by

no test coverage detected