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

Function createPackageJSON

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

Source from the content-addressed store, hash-verified

95}
96
97export function createPackageJSON(options: Options) {
98 const packageManager = options.packageManager
99
100 function getPackageManagerExecuteScript(
101 pkg: string,
102 args: Array<string> = [],
103 ) {
104 return formatCommand(getPackageManagerExecuteCommand(packageManager, pkg, args))
105 }
106
107 let packageJSON: Record<string, unknown> = {
108 ...(JSON.parse(
109 JSON.stringify(options.framework.basePackageJSON),
110 ) as Record<string, unknown>),
111 name: options.projectName,
112 }
113
114 const additions: Array<Record<string, unknown> | undefined> = [
115 options.framework.optionalPackages.typescript,
116 options.framework.optionalPackages.tailwindcss,
117 options.mode ? options.framework.optionalPackages[options.mode] : undefined,
118 ]
119 for (const addition of additions.filter(
120 (addition): addition is Record<string, unknown> => Boolean(addition),
121 )) {
122 packageJSON = mergePackageJSON(packageJSON, addition)
123 }
124
125 for (const addOn of options.chosenAddOns) {
126 let addOnPackageJSON = addOn.packageAdditions as
127 | Record<string, unknown>
128 | undefined
129
130 if (addOn.packageTemplate) {
131 const templateValues = {
132 packageManager: options.packageManager,
133 projectName: options.projectName,
134 typescript: true,
135 tailwind: true,
136 js: 'ts',
137 jsx: 'tsx',
138 fileRouter: options.mode === 'file-router',
139 codeRouter: options.mode === 'code-router',
140 routerOnly: options.routerOnly === true,
141 addOnEnabled: options.chosenAddOns.reduce<Record<string, boolean>>(
142 (acc, addon) => {
143 acc[addon.id] = true
144 return acc
145 },
146 {},
147 ),
148 addOnOption: options.addOnOptions,
149 addOns: options.chosenAddOns,
150 getPackageManagerExecuteScript,
151 }
152
153 try {
154 addOnPackageJSON = JSON.parse(

Callers

nothing calls this directly

Calls 4

renderForOptionsFunction · 0.85
errorMethod · 0.80
mergePackageJSONFunction · 0.70
sortObjectFunction · 0.70

Tested by

no test coverage detected