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

Function mergePackageJSON

packages/create/src/package-json.ts:6–57  ·  view source on GitHub ↗
(
  packageJSON: Record<string, any>,
  overlayPackageJSON?: Record<string, any>,
)

Source from the content-addressed store, hash-verified

4import type { Options } from './types.js'
5
6export function mergePackageJSON(
7 packageJSON: Record<string, any>,
8 overlayPackageJSON?: Record<string, any>,
9) {
10 const mergedPackageJSON: Record<string, any> = {
11 ...packageJSON,
12 ...(overlayPackageJSON || {}),
13 dependencies: {
14 ...packageJSON.dependencies,
15 ...(overlayPackageJSON?.dependencies || {}),
16 },
17 devDependencies: {
18 ...packageJSON.devDependencies,
19 ...(overlayPackageJSON?.devDependencies || {}),
20 },
21 scripts: {
22 ...packageJSON.scripts,
23 ...(overlayPackageJSON?.scripts || {}),
24 },
25 }
26
27 const baseOnlyBuiltDependencies = Array.isArray(
28 packageJSON.pnpm?.onlyBuiltDependencies,
29 )
30 ? packageJSON.pnpm.onlyBuiltDependencies
31 : []
32 const overlayOnlyBuiltDependencies = Array.isArray(
33 overlayPackageJSON?.pnpm?.onlyBuiltDependencies,
34 )
35 ? overlayPackageJSON.pnpm.onlyBuiltDependencies
36 : []
37
38 const onlyBuiltDependencies = [
39 ...new Set([
40 ...baseOnlyBuiltDependencies,
41 ...overlayOnlyBuiltDependencies,
42 ]),
43 ]
44
45 if (packageJSON.pnpm || overlayPackageJSON?.pnpm) {
46 mergedPackageJSON.pnpm = {
47 ...packageJSON.pnpm,
48 ...overlayPackageJSON?.pnpm,
49 }
50
51 if (onlyBuiltDependencies.length) {
52 mergedPackageJSON.pnpm.onlyBuiltDependencies = onlyBuiltDependencies
53 }
54 }
55
56 return mergedPackageJSON
57}
58
59export function createPackageJSON(options: Options) {
60 const packageManager = options.packageManager

Callers 3

writeFilesFunction · 0.90
createPackageJSONFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected