create-vitnode-app 1.2.0-canary.52 → 1.2.0-canary.54
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.
- package/README.md +1 -1
- package/copy-of-vitnode-app/.vscode/settings.json +29 -0
- package/copy-of-vitnode-app/api/drizzle.config.ts +4 -4
- package/copy-of-vitnode-app/api/src/index.ts +7 -7
- package/copy-of-vitnode-app/api/src/vitnode.api.config.ts +8 -9
- package/copy-of-vitnode-app/api/tsconfig.json +1 -1
- package/copy-of-vitnode-app/api-bun/src/index.ts +4 -4
- package/copy-of-vitnode-app/api-single-app/drizzle.config.ts +4 -4
- package/copy-of-vitnode-app/api-single-app/src/app/api/[...route]/route.ts +5 -5
- package/copy-of-vitnode-app/api-single-app/src/vitnode.api.config.ts +6 -7
- package/copy-of-vitnode-app/biome/biome.json +5 -0
- package/copy-of-vitnode-app/monorepo/turbo.json +0 -13
- package/copy-of-vitnode-app/root/global.d.ts +2 -2
- package/copy-of-vitnode-app/root/next.config.ts +2 -2
- package/copy-of-vitnode-app/root/postcss.config.mjs +1 -1
- package/copy-of-vitnode-app/root/src/app/[locale]/(main)/[...rest]/page.tsx +1 -1
- package/copy-of-vitnode-app/root/src/app/[locale]/(main)/layout.tsx +3 -3
- package/copy-of-vitnode-app/root/src/app/[locale]/(main)/not-found.tsx +1 -1
- package/copy-of-vitnode-app/root/src/app/[locale]/(main)/page.tsx +11 -10
- package/copy-of-vitnode-app/root/src/app/[locale]/admin/(auth)/layout.tsx +2 -2
- package/copy-of-vitnode-app/root/src/app/[locale]/admin/page.tsx +1 -1
- package/copy-of-vitnode-app/root/src/app/[locale]/layout.tsx +9 -10
- package/copy-of-vitnode-app/root/src/app/global-error.tsx +8 -11
- package/copy-of-vitnode-app/root/src/app/global.css +4 -3
- package/copy-of-vitnode-app/root/src/app/layout.tsx +2 -2
- package/copy-of-vitnode-app/root/src/middleware.ts +5 -5
- package/copy-of-vitnode-app/root/src/vitnode.config.ts +8 -8
- package/copy-of-vitnode-app/root/tsconfig.json +1 -1
- package/dist/src/create/create-package-json.js +189 -201
- package/dist/src/create/create-vitnode.js +73 -73
- package/dist/src/helpers/get-available-package-managers.js +6 -6
- package/dist/src/helpers/get-package-json.js +2 -2
- package/dist/src/helpers/init-vitnode.js +7 -7
- package/dist/src/helpers/install-dependencies.js +35 -32
- package/dist/src/helpers/is-folder-empty.js +25 -26
- package/dist/src/helpers/is-online.js +16 -16
- package/dist/src/helpers/is-writeable.js +2 -2
- package/dist/src/helpers/validate-pkg.js +1 -1
- package/dist/src/index.js +28 -28
- package/dist/src/plugin/index.js +5 -5
- package/dist/src/prepare/prepare.js +5 -5
- package/dist/src/questions.js +29 -30
- package/dist/src/validation.js +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -8
- package/copy-of-vitnode-app/eslint/.prettierrc.mjs +0 -11
- package/copy-of-vitnode-app/eslint/eslint.config.mjs +0 -17
|
@@ -1,305 +1,293 @@
|
|
|
1
|
-
import { readFile, writeFile } from
|
|
2
|
-
import { dirname, join } from
|
|
3
|
-
import { fileURLToPath } from
|
|
4
|
-
import { getAvailablePackageManagers } from
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { getAvailablePackageManagers } from "../helpers/get-available-package-managers.js";
|
|
5
5
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = dirname(__filename);
|
|
7
7
|
const writeJson = async (path, data) => writeFile(path, JSON.stringify(data, null, 2));
|
|
8
8
|
const paths = (root) => ({
|
|
9
9
|
root,
|
|
10
|
-
api: join(root,
|
|
11
|
-
web: join(root,
|
|
10
|
+
api: join(root, "apps", "api"),
|
|
11
|
+
web: join(root, "apps", "web"),
|
|
12
12
|
});
|
|
13
13
|
const withIf = (cond, obj) => (cond ? obj : {});
|
|
14
14
|
const versions = {
|
|
15
|
-
typesNode:
|
|
16
|
-
typesReact:
|
|
17
|
-
typesReactDom:
|
|
18
|
-
typesMdx:
|
|
19
|
-
typesBun:
|
|
20
|
-
turbo:
|
|
21
|
-
typescript:
|
|
22
|
-
tsx:
|
|
23
|
-
tscAlias:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
babelReactCompiler: '19.1.0-rc.2',
|
|
53
|
-
cva: '^0.7.1',
|
|
15
|
+
typesNode: "^24",
|
|
16
|
+
typesReact: "^19.1",
|
|
17
|
+
typesReactDom: "^19.1",
|
|
18
|
+
typesMdx: "^2.0.13",
|
|
19
|
+
typesBun: "latest",
|
|
20
|
+
turbo: "^2.5.6",
|
|
21
|
+
typescript: "^5.9.2",
|
|
22
|
+
tsx: "^4.20.5",
|
|
23
|
+
tscAlias: "^1.8.16",
|
|
24
|
+
biome: "^2.2.3",
|
|
25
|
+
tailwind: "^4.1.12",
|
|
26
|
+
tailwindPostcss: "^4.1.13",
|
|
27
|
+
postcss: "^8.5.6",
|
|
28
|
+
twAnimateCssWeb: "^1.3.7",
|
|
29
|
+
twAnimateCssSingle: "^1.3.8",
|
|
30
|
+
react: "^19.1",
|
|
31
|
+
reactDom: "^19.1",
|
|
32
|
+
nextSingle: "^15.5.2",
|
|
33
|
+
nextWebInMonorepo: "^15.4.6",
|
|
34
|
+
nextIntl: "^4.3.6",
|
|
35
|
+
useIntl: "^4.3.6",
|
|
36
|
+
rhf: "^7.62.0",
|
|
37
|
+
rhfResolvers: "^5.1.1",
|
|
38
|
+
lucide: "^0.542.0",
|
|
39
|
+
sonner: "^2.0.7",
|
|
40
|
+
dotenv: "^17.2.2",
|
|
41
|
+
drizzleKitSingle: "^0.31.4",
|
|
42
|
+
drizzleKitApi: "^0.31.3",
|
|
43
|
+
drizzleOrm: "^0.44.5",
|
|
44
|
+
hono: "^4.9.6",
|
|
45
|
+
honoZodOpenapi: "^1.1.0",
|
|
46
|
+
honoZodValidator: "^0.7.2",
|
|
47
|
+
reactEmail: "^4.2.8",
|
|
48
|
+
reactEmailComponents: "^0.5.2",
|
|
49
|
+
zod: "^4.1.5",
|
|
50
|
+
babelReactCompiler: "^19.1.0-rc.3",
|
|
51
|
+
cva: "^0.7.1",
|
|
54
52
|
};
|
|
55
|
-
const
|
|
56
|
-
lint:
|
|
57
|
-
|
|
53
|
+
const biomeScripts = {
|
|
54
|
+
lint: "biome check",
|
|
55
|
+
"lint:fix": "biome check . --write",
|
|
58
56
|
};
|
|
59
57
|
const dockerDevScript = (appName) => `docker compose -f ./docker-compose.yml -p ${appName}-vitnode-dev up -d`;
|
|
60
|
-
const rootScripts = (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
...withIf(
|
|
68
|
-
...withIf(enableDocker, { 'docker:dev': dockerDevScript(appName) }),
|
|
58
|
+
const rootScripts = (enableBiome, enableDocker, appName) => ({
|
|
59
|
+
"db:migrate": "turbo db:migrate",
|
|
60
|
+
init: "turbo init",
|
|
61
|
+
dev: "turbo dev",
|
|
62
|
+
build: "turbo build",
|
|
63
|
+
start: "turbo start",
|
|
64
|
+
...withIf(enableBiome, biomeScripts),
|
|
65
|
+
...withIf(enableDocker, { "docker:dev": dockerDevScript(appName) }),
|
|
69
66
|
});
|
|
70
|
-
const apiScripts = (pm,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
...(pm === 'bun'
|
|
67
|
+
const apiScripts = (pm, biome, docker, onlyApi, appName) => ({
|
|
68
|
+
"db:migrate": "vitnode migrate",
|
|
69
|
+
init: "vitnode init --api",
|
|
70
|
+
...(pm === "bun"
|
|
75
71
|
? {
|
|
76
|
-
dev:
|
|
77
|
-
start:
|
|
72
|
+
dev: "vitnode init --api && bun run --hot src/index.ts",
|
|
73
|
+
start: "NODE_ENV=production bun run src/index.ts",
|
|
78
74
|
}
|
|
79
75
|
: {
|
|
80
|
-
dev:
|
|
81
|
-
build:
|
|
82
|
-
start:
|
|
76
|
+
dev: "vitnode init --api && tsx watch src/index.ts",
|
|
77
|
+
build: "tsc && tsc-alias -p tsconfig.json",
|
|
78
|
+
start: "node dist/index.js",
|
|
83
79
|
}),
|
|
84
|
-
|
|
85
|
-
...withIf(
|
|
86
|
-
...withIf(docker && onlyApi, {
|
|
87
|
-
|
|
80
|
+
"dev:email": "email dev --dir src/emails",
|
|
81
|
+
...withIf(biome, biomeScripts),
|
|
82
|
+
...withIf(docker && onlyApi, { "docker:dev": dockerDevScript(appName) }),
|
|
83
|
+
"drizzle-kit": "drizzle-kit",
|
|
88
84
|
});
|
|
89
|
-
const singleAppScripts = (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
dev:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
...withIf(
|
|
98
|
-
|
|
99
|
-
'drizzle-kit': 'drizzle-kit',
|
|
85
|
+
const singleAppScripts = (biome, docker, appName) => ({
|
|
86
|
+
"db:migrate": "vitnode migrate",
|
|
87
|
+
init: "vitnode init",
|
|
88
|
+
dev: "vitnode init && next dev --turbopack",
|
|
89
|
+
"dev:email": "email dev --dir src/emails",
|
|
90
|
+
build: "next build",
|
|
91
|
+
start: "next start",
|
|
92
|
+
...withIf(biome, biomeScripts),
|
|
93
|
+
...withIf(docker, { "docker:dev": dockerDevScript(appName) }),
|
|
94
|
+
"drizzle-kit": "drizzle-kit",
|
|
100
95
|
});
|
|
101
|
-
const webScripts = (
|
|
102
|
-
init:
|
|
103
|
-
dev:
|
|
104
|
-
build:
|
|
105
|
-
start:
|
|
106
|
-
...withIf(
|
|
96
|
+
const webScripts = (biome) => ({
|
|
97
|
+
init: "vitnode init --web",
|
|
98
|
+
dev: "vitnode init --web && next dev --turbopack",
|
|
99
|
+
build: "next build",
|
|
100
|
+
start: "next start",
|
|
101
|
+
...withIf(biome, biomeScripts),
|
|
107
102
|
});
|
|
108
|
-
const baseDevDeps = (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
...withIf(
|
|
112
|
-
|
|
113
|
-
...withIf(includePrettier, {
|
|
114
|
-
prettier: versions.prettier,
|
|
115
|
-
'prettier-plugin-tailwindcss': versions.prettierTailwind,
|
|
116
|
-
}),
|
|
103
|
+
const baseDevDeps = (biome) => ({
|
|
104
|
+
"@types/node": versions.typesNode,
|
|
105
|
+
"@vitnode/config": "",
|
|
106
|
+
...withIf(biome, {
|
|
107
|
+
"@biomejs/biome": versions.biome,
|
|
117
108
|
}),
|
|
118
109
|
});
|
|
119
|
-
const rootDevDeps = (
|
|
120
|
-
...baseDevDeps(
|
|
110
|
+
const rootDevDeps = (biome) => ({
|
|
111
|
+
...baseDevDeps(biome),
|
|
121
112
|
turbo: versions.turbo,
|
|
122
113
|
typescript: versions.typescript,
|
|
123
114
|
zod: versions.zod,
|
|
124
115
|
});
|
|
125
116
|
const apiDeps = {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
117
|
+
"@hono/zod-openapi": versions.honoZodOpenapi,
|
|
118
|
+
"@hono/zod-validator": versions.honoZodValidator,
|
|
119
|
+
"@react-email/components": versions.reactEmailComponents,
|
|
120
|
+
"@vitnode/core": "",
|
|
121
|
+
"drizzle-kit": versions.drizzleKitApi,
|
|
122
|
+
"drizzle-orm": versions.drizzleOrm,
|
|
132
123
|
hono: versions.hono,
|
|
133
|
-
|
|
124
|
+
"next-intl": versions.nextIntl,
|
|
134
125
|
react: versions.react,
|
|
135
|
-
|
|
136
|
-
|
|
126
|
+
"react-dom": versions.reactDom,
|
|
127
|
+
"use-intl": versions.useIntl,
|
|
137
128
|
zod: versions.zod,
|
|
138
129
|
};
|
|
139
|
-
const apiDevDeps = (pm,
|
|
140
|
-
|
|
141
|
-
...(pm ===
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
130
|
+
const apiDevDeps = (pm, biome) => ({
|
|
131
|
+
"@hono/node-server": "^1.19.1",
|
|
132
|
+
...(pm === "bun" ? { "@types/bun": versions.typesBun } : {}),
|
|
133
|
+
"@types/node": versions.typesNode,
|
|
134
|
+
"@types/react": versions.typesReact,
|
|
135
|
+
"@types/react-dom": versions.typesReactDom,
|
|
136
|
+
"@vitnode/config": "",
|
|
146
137
|
dotenv: versions.dotenv,
|
|
147
|
-
...withIf(
|
|
148
|
-
|
|
138
|
+
...withIf(biome, {
|
|
139
|
+
"@biomejs/biome": versions.biome,
|
|
149
140
|
}),
|
|
150
|
-
|
|
151
|
-
|
|
141
|
+
"react-email": versions.reactEmail,
|
|
142
|
+
"tsc-alias": versions.tscAlias,
|
|
152
143
|
tsx: versions.tsx,
|
|
153
144
|
typescript: versions.typescript,
|
|
154
145
|
});
|
|
155
146
|
const singleAppDeps = {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
147
|
+
"@hono/zod-openapi": versions.honoZodOpenapi,
|
|
148
|
+
"@hono/zod-validator": versions.honoZodValidator,
|
|
149
|
+
"@hookform/resolvers": versions.rhfResolvers,
|
|
150
|
+
"@react-email/components": versions.reactEmailComponents,
|
|
151
|
+
"@vitnode/core": "",
|
|
152
|
+
"babel-plugin-react-compiler": versions.babelReactCompiler,
|
|
153
|
+
"drizzle-kit": versions.drizzleKitSingle,
|
|
154
|
+
"drizzle-orm": versions.drizzleOrm,
|
|
164
155
|
hono: versions.hono,
|
|
165
|
-
|
|
156
|
+
"lucide-react": versions.lucide,
|
|
166
157
|
next: versions.nextSingle,
|
|
167
|
-
|
|
158
|
+
"next-intl": versions.nextIntl,
|
|
168
159
|
react: versions.react,
|
|
169
|
-
|
|
170
|
-
|
|
160
|
+
"react-dom": versions.reactDom,
|
|
161
|
+
"react-hook-form": versions.rhf,
|
|
171
162
|
sonner: versions.sonner,
|
|
172
|
-
|
|
163
|
+
"use-intl": versions.useIntl,
|
|
173
164
|
zod: versions.zod,
|
|
174
165
|
};
|
|
175
|
-
const singleAppDevDeps = (
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
...withIf(
|
|
182
|
-
|
|
183
|
-
prettier: versions.prettier,
|
|
184
|
-
'prettier-plugin-tailwindcss': versions.prettierTailwind,
|
|
166
|
+
const singleAppDevDeps = (biome) => ({
|
|
167
|
+
"@tailwindcss/postcss": versions.tailwindPostcss,
|
|
168
|
+
"@types/node": versions.typesNode,
|
|
169
|
+
"@types/react": versions.typesReact,
|
|
170
|
+
"@types/react-dom": versions.typesReactDom,
|
|
171
|
+
"@vitnode/config": "",
|
|
172
|
+
...withIf(biome, {
|
|
173
|
+
"@biomejs/biome": versions.biome,
|
|
185
174
|
}),
|
|
186
|
-
|
|
175
|
+
"react-email": versions.reactEmail,
|
|
187
176
|
turbo: versions.turbo,
|
|
188
177
|
tailwindcss: versions.tailwind,
|
|
189
|
-
|
|
178
|
+
"tw-animate-css": versions.twAnimateCssSingle,
|
|
190
179
|
typescript: versions.typescript,
|
|
191
180
|
});
|
|
192
181
|
const webDeps = {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
182
|
+
"@vitnode/core": "",
|
|
183
|
+
"babel-plugin-react-compiler": versions.babelReactCompiler,
|
|
184
|
+
"lucide-react": versions.lucide,
|
|
196
185
|
next: versions.nextWebInMonorepo,
|
|
197
|
-
|
|
186
|
+
"next-intl": versions.nextIntl,
|
|
198
187
|
react: versions.react,
|
|
199
|
-
|
|
200
|
-
|
|
188
|
+
"react-dom": versions.reactDom,
|
|
189
|
+
"react-hook-form": versions.rhf,
|
|
201
190
|
sonner: versions.sonner,
|
|
202
191
|
};
|
|
203
|
-
const webDevDeps = (
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
...withIf(
|
|
192
|
+
const webDevDeps = (biome) => ({
|
|
193
|
+
"@hookform/resolvers": versions.rhfResolvers,
|
|
194
|
+
"@tailwindcss/postcss": versions.tailwindPostcss,
|
|
195
|
+
"@types/mdx": versions.typesMdx,
|
|
196
|
+
"@types/node": versions.typesNode,
|
|
197
|
+
"@types/react": versions.typesReact,
|
|
198
|
+
"@types/react-dom": versions.typesReactDom,
|
|
199
|
+
"@vitnode/config": "",
|
|
200
|
+
"class-variance-authority": versions.cva,
|
|
201
|
+
...withIf(biome, { "@biomejs/biome": versions.biome }),
|
|
213
202
|
postcss: versions.postcss,
|
|
214
203
|
tailwindcss: versions.tailwind,
|
|
215
|
-
|
|
204
|
+
"tw-animate-css": versions.twAnimateCssWeb,
|
|
216
205
|
typescript: versions.typescript,
|
|
217
206
|
zod: versions.zod,
|
|
218
207
|
});
|
|
219
|
-
export const createPackageJSON = async ({ appName, packageManager, root,
|
|
220
|
-
const cliPkg = JSON.parse(await readFile(join(__dirname,
|
|
208
|
+
export const createPackageJSON = async ({ appName, packageManager, root, biome, docker, mode, monorepo, }) => {
|
|
209
|
+
const cliPkg = JSON.parse(await readFile(join(__dirname, "..", "..", "..", "package.json"), "utf-8"));
|
|
221
210
|
const vitnodeVersionRange = `^${cliPkg.version}`;
|
|
222
211
|
const pmVersions = await getAvailablePackageManagers();
|
|
223
212
|
const pmSpec = `${packageManager}@${pmVersions[packageManager]}`;
|
|
224
213
|
const p = paths(root);
|
|
225
|
-
const isApiMonorepo = mode ===
|
|
226
|
-
const isOnlyApi = mode ===
|
|
227
|
-
const isSingleApp = mode ===
|
|
214
|
+
const isApiMonorepo = mode === "apiMonorepo" || !!monorepo;
|
|
215
|
+
const isOnlyApi = mode === "onlyApi";
|
|
216
|
+
const isSingleApp = mode === "singleApp";
|
|
228
217
|
if (isApiMonorepo) {
|
|
229
218
|
const rootPkg = {
|
|
230
219
|
name: appName,
|
|
231
220
|
private: true,
|
|
232
|
-
scripts: rootScripts(
|
|
221
|
+
scripts: rootScripts(biome, !!docker, appName),
|
|
233
222
|
devDependencies: {
|
|
234
|
-
...rootDevDeps(
|
|
235
|
-
|
|
223
|
+
...rootDevDeps(biome),
|
|
224
|
+
"@vitnode/config": vitnodeVersionRange,
|
|
236
225
|
},
|
|
237
226
|
packageManager: pmSpec,
|
|
238
|
-
workspaces: [
|
|
227
|
+
workspaces: ["apps/*", "plugins/*"],
|
|
239
228
|
};
|
|
240
|
-
await writeJson(join(p.root,
|
|
229
|
+
await writeJson(join(p.root, "package.json"), rootPkg);
|
|
241
230
|
}
|
|
242
231
|
const apiPkg = {
|
|
243
|
-
name: isApiMonorepo ?
|
|
244
|
-
version:
|
|
232
|
+
name: isApiMonorepo ? "api" : appName,
|
|
233
|
+
version: "0.1.0",
|
|
245
234
|
private: true,
|
|
246
|
-
type:
|
|
247
|
-
scripts: apiScripts(packageManager,
|
|
235
|
+
type: "module",
|
|
236
|
+
scripts: apiScripts(packageManager, biome, !!docker, mode === "onlyApi", appName),
|
|
248
237
|
dependencies: {
|
|
249
238
|
...apiDeps,
|
|
250
|
-
|
|
239
|
+
"@vitnode/core": vitnodeVersionRange,
|
|
251
240
|
},
|
|
252
241
|
devDependencies: {
|
|
253
|
-
...apiDevDeps(packageManager,
|
|
254
|
-
|
|
255
|
-
...(
|
|
242
|
+
...apiDevDeps(packageManager, biome),
|
|
243
|
+
"@vitnode/config": vitnodeVersionRange,
|
|
244
|
+
...(biome && mode === "onlyApi"
|
|
256
245
|
? {
|
|
257
|
-
|
|
258
|
-
'prettier-plugin-tailwindcss': versions.prettierTailwind,
|
|
246
|
+
"@biomejs/biome": versions.biome,
|
|
259
247
|
}
|
|
260
248
|
: {}),
|
|
261
|
-
...(packageManager ===
|
|
249
|
+
...(packageManager === "bun" ? {} : {}),
|
|
262
250
|
},
|
|
263
251
|
};
|
|
264
252
|
if (isSingleApp) {
|
|
265
253
|
const singlePkg = {
|
|
266
|
-
name: monorepo ?
|
|
267
|
-
version:
|
|
254
|
+
name: monorepo ? "web" : appName,
|
|
255
|
+
version: "0.1.0",
|
|
268
256
|
private: true,
|
|
269
|
-
type:
|
|
270
|
-
scripts: singleAppScripts(
|
|
257
|
+
type: "module",
|
|
258
|
+
scripts: singleAppScripts(biome, !!docker, appName),
|
|
271
259
|
dependencies: {
|
|
272
260
|
...singleAppDeps,
|
|
273
|
-
|
|
261
|
+
"@vitnode/core": vitnodeVersionRange,
|
|
274
262
|
},
|
|
275
263
|
devDependencies: {
|
|
276
|
-
...singleAppDevDeps(
|
|
277
|
-
|
|
264
|
+
...singleAppDevDeps(biome),
|
|
265
|
+
"@vitnode/config": vitnodeVersionRange,
|
|
278
266
|
},
|
|
279
267
|
packageManager: pmSpec,
|
|
280
268
|
};
|
|
281
|
-
await writeJson(join(monorepo ? p.web : p.root,
|
|
269
|
+
await writeJson(join(monorepo ? p.web : p.root, "package.json"), singlePkg);
|
|
282
270
|
}
|
|
283
|
-
if (mode ===
|
|
284
|
-
await writeJson(join(p.api,
|
|
271
|
+
if (mode === "apiMonorepo") {
|
|
272
|
+
await writeJson(join(p.api, "package.json"), apiPkg);
|
|
285
273
|
const webPkg = {
|
|
286
|
-
name:
|
|
287
|
-
version:
|
|
274
|
+
name: "web",
|
|
275
|
+
version: "0.1.0",
|
|
288
276
|
private: true,
|
|
289
|
-
type:
|
|
290
|
-
scripts: webScripts(
|
|
277
|
+
type: "module",
|
|
278
|
+
scripts: webScripts(biome),
|
|
291
279
|
dependencies: {
|
|
292
280
|
...webDeps,
|
|
293
|
-
|
|
281
|
+
"@vitnode/core": vitnodeVersionRange,
|
|
294
282
|
},
|
|
295
283
|
devDependencies: {
|
|
296
|
-
...webDevDeps(
|
|
297
|
-
|
|
284
|
+
...webDevDeps(biome),
|
|
285
|
+
"@vitnode/config": vitnodeVersionRange,
|
|
298
286
|
},
|
|
299
287
|
};
|
|
300
|
-
await writeJson(join(p.web,
|
|
288
|
+
await writeJson(join(p.web, "package.json"), webPkg);
|
|
301
289
|
}
|
|
302
290
|
if (isOnlyApi) {
|
|
303
|
-
await writeJson(join(monorepo ? p.api : p.root,
|
|
291
|
+
await writeJson(join(monorepo ? p.api : p.root, "package.json"), apiPkg);
|
|
304
292
|
}
|
|
305
293
|
};
|