@ykdz/template 0.0.1 → 0.0.2
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/dist/cli.js +66 -89
- package/dist/declarations.js +1 -1
- package/dist/devcontainer.d.ts +17 -0
- package/dist/devcontainer.d.ts.map +1 -0
- package/dist/devcontainer.js +23 -0
- package/dist/generation-context.d.ts +24 -0
- package/dist/generation-context.d.ts.map +1 -0
- package/dist/generation-context.js +12 -0
- package/dist/hono-api.d.ts +1 -0
- package/dist/hono-api.d.ts.map +1 -1
- package/dist/hono-api.js +55 -53
- package/dist/module-graph.d.ts +45 -0
- package/dist/module-graph.d.ts.map +1 -0
- package/dist/module-graph.js +187 -0
- package/dist/next-step-instructions.d.ts +22 -0
- package/dist/next-step-instructions.d.ts.map +1 -0
- package/dist/next-step-instructions.js +99 -0
- package/dist/project-github.d.ts +36 -0
- package/dist/project-github.d.ts.map +1 -0
- package/dist/project-github.js +96 -0
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +0 -3
- package/dist/rust-bin.d.ts +7 -1
- package/dist/rust-bin.d.ts.map +1 -1
- package/dist/rust-bin.js +70 -36
- package/dist/toolchain-resolution.d.ts +35 -0
- package/dist/toolchain-resolution.d.ts.map +1 -0
- package/dist/toolchain-resolution.js +192 -0
- package/dist/ts-lib.d.ts +7 -1
- package/dist/ts-lib.d.ts.map +1 -1
- package/dist/ts-lib.js +87 -54
- package/dist/vue-app.d.ts +1 -0
- package/dist/vue-app.d.ts.map +1 -1
- package/dist/vue-app.js +70 -68
- package/dist/vue-hono-app.d.ts +3 -0
- package/dist/vue-hono-app.d.ts.map +1 -1
- package/dist/vue-hono-app.js +111 -107
- package/package.json +2 -1
- package/templates/rust-bin/.github/dependabot.yml +4 -0
- package/templates/rust-bin/.github/workflows/check.yml +6 -1
- package/dist/post-commands.d.ts +0 -40
- package/dist/post-commands.d.ts.map +0 -1
- package/dist/post-commands.js +0 -154
package/dist/vue-hono-app.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { nodePnpmDevcontainer } from "./devcontainer.js";
|
|
4
|
+
import { planNodeChecks, planNodeFixes, renderFixCommand, renderRootCheckCommand, } from "./module-graph.js";
|
|
5
|
+
import { projectPresetDependabotConfig, projectPresetGithubCheckWorkflow } from "./project-github.js";
|
|
3
6
|
import { renderNewProject } from "./renderer.js";
|
|
4
7
|
const features = [
|
|
5
8
|
"pnpm-catalog",
|
|
@@ -9,12 +12,12 @@ const features = [
|
|
|
9
12
|
"fix-command",
|
|
10
13
|
"devcontainer",
|
|
11
14
|
"github-actions",
|
|
12
|
-
"dependabot"
|
|
15
|
+
"dependabot",
|
|
13
16
|
];
|
|
14
17
|
const generatedBy = {
|
|
15
18
|
packageName: "@ykdz/template",
|
|
16
19
|
version: "0.0.0",
|
|
17
|
-
command: "template init --preset vue-hono-app"
|
|
20
|
+
command: "template init --preset vue-hono-app",
|
|
18
21
|
};
|
|
19
22
|
function projectNameFromDir(targetDir) {
|
|
20
23
|
return path.basename(path.resolve(targetDir));
|
|
@@ -22,8 +25,43 @@ function projectNameFromDir(targetDir) {
|
|
|
22
25
|
function packageName(packageScope, leaf) {
|
|
23
26
|
return `@${packageScope}/${leaf}`;
|
|
24
27
|
}
|
|
25
|
-
function
|
|
26
|
-
return
|
|
28
|
+
export function projectVueHonoRootPackageScripts() {
|
|
29
|
+
return {
|
|
30
|
+
check: renderRootCheckCommand(planNodeChecks("vue-hono-root")),
|
|
31
|
+
dev: "turbo run dev --parallel",
|
|
32
|
+
fix: renderFixCommand(planNodeFixes("vue-hono-root")),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function projectVueHonoApiPackageScripts() {
|
|
36
|
+
return {
|
|
37
|
+
build: "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
38
|
+
check: renderRootCheckCommand(planNodeChecks("vue-hono-api")),
|
|
39
|
+
dev: "tsx watch src/server.ts",
|
|
40
|
+
fix: renderFixCommand(planNodeFixes("vue-hono-api")),
|
|
41
|
+
"format:check": "oxfmt --check .",
|
|
42
|
+
"format:write": "oxfmt --write .",
|
|
43
|
+
lint: "oxlint . --deny-warnings",
|
|
44
|
+
"lint:fix": "oxlint . --fix --deny-warnings",
|
|
45
|
+
start: "node dist/server.js",
|
|
46
|
+
test: "vitest run",
|
|
47
|
+
typecheck: "tsc -p tsconfig.json --noEmit",
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function projectVueHonoWebPackageScripts() {
|
|
51
|
+
return {
|
|
52
|
+
build: "vite build",
|
|
53
|
+
check: renderRootCheckCommand(planNodeChecks("vue-hono-web")),
|
|
54
|
+
dev: "vite",
|
|
55
|
+
fix: renderFixCommand(planNodeFixes("vue-hono-web")),
|
|
56
|
+
"format:check": "oxfmt --check .",
|
|
57
|
+
"format:write": "oxfmt --write .",
|
|
58
|
+
lint: "oxlint . --deny-warnings",
|
|
59
|
+
"lint:fix": "oxlint . --fix --deny-warnings",
|
|
60
|
+
preview: "vite preview",
|
|
61
|
+
test: "vitest run",
|
|
62
|
+
"test:e2e": "pnpm run build && playwright test",
|
|
63
|
+
typecheck: "vue-tsc --build",
|
|
64
|
+
};
|
|
27
65
|
}
|
|
28
66
|
function rootPackageJson(projectName) {
|
|
29
67
|
return {
|
|
@@ -31,18 +69,14 @@ function rootPackageJson(projectName) {
|
|
|
31
69
|
version: "0.0.0",
|
|
32
70
|
private: true,
|
|
33
71
|
type: "module",
|
|
34
|
-
scripts:
|
|
35
|
-
check: "turbo run check",
|
|
36
|
-
dev: "turbo run dev --parallel",
|
|
37
|
-
fix: "turbo run fix"
|
|
38
|
-
},
|
|
72
|
+
scripts: projectVueHonoRootPackageScripts(),
|
|
39
73
|
devDependencies: {
|
|
40
|
-
turbo: "catalog:"
|
|
74
|
+
turbo: "catalog:",
|
|
41
75
|
},
|
|
42
76
|
engines: {
|
|
43
|
-
node: "22"
|
|
77
|
+
node: "22",
|
|
44
78
|
},
|
|
45
|
-
packageManager: "pnpm@10.0.0"
|
|
79
|
+
packageManager: "pnpm@10.0.0",
|
|
46
80
|
};
|
|
47
81
|
}
|
|
48
82
|
function apiPackageJson(packageScope) {
|
|
@@ -53,24 +87,12 @@ function apiPackageJson(packageScope) {
|
|
|
53
87
|
type: "module",
|
|
54
88
|
types: "./dist/index.d.ts",
|
|
55
89
|
exports: {
|
|
56
|
-
".": "./dist/index.js"
|
|
57
|
-
},
|
|
58
|
-
scripts: {
|
|
59
|
-
build: "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
60
|
-
check: "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test",
|
|
61
|
-
dev: "tsx watch src/server.ts",
|
|
62
|
-
fix: "pnpm run format:write && pnpm run lint:fix",
|
|
63
|
-
"format:check": "oxfmt --check .",
|
|
64
|
-
"format:write": "oxfmt --write .",
|
|
65
|
-
lint: "oxlint . --deny-warnings",
|
|
66
|
-
"lint:fix": "oxlint . --fix --deny-warnings",
|
|
67
|
-
start: "node dist/server.js",
|
|
68
|
-
test: "vitest run",
|
|
69
|
-
typecheck: "tsc -p tsconfig.json --noEmit"
|
|
90
|
+
".": "./dist/index.js",
|
|
70
91
|
},
|
|
92
|
+
scripts: projectVueHonoApiPackageScripts(),
|
|
71
93
|
dependencies: {
|
|
72
94
|
"@hono/node-server": "catalog:",
|
|
73
|
-
hono: "catalog:"
|
|
95
|
+
hono: "catalog:",
|
|
74
96
|
},
|
|
75
97
|
devDependencies: {
|
|
76
98
|
"@types/node": "catalog:",
|
|
@@ -79,11 +101,11 @@ function apiPackageJson(packageScope) {
|
|
|
79
101
|
"tsc-alias": "catalog:",
|
|
80
102
|
tsx: "catalog:",
|
|
81
103
|
typescript: "catalog:",
|
|
82
|
-
vitest: "catalog:"
|
|
104
|
+
vitest: "catalog:",
|
|
83
105
|
},
|
|
84
106
|
engines: {
|
|
85
|
-
node: "22"
|
|
86
|
-
}
|
|
107
|
+
node: "22",
|
|
108
|
+
},
|
|
87
109
|
};
|
|
88
110
|
}
|
|
89
111
|
function webPackageJson(packageScope) {
|
|
@@ -92,26 +114,13 @@ function webPackageJson(packageScope) {
|
|
|
92
114
|
version: "0.0.0",
|
|
93
115
|
private: true,
|
|
94
116
|
type: "module",
|
|
95
|
-
scripts:
|
|
96
|
-
build: "vite build",
|
|
97
|
-
check: "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test && pnpm run test:e2e",
|
|
98
|
-
dev: "vite",
|
|
99
|
-
fix: "pnpm run format:write && pnpm run lint:fix",
|
|
100
|
-
"format:check": "oxfmt --check .",
|
|
101
|
-
"format:write": "oxfmt --write .",
|
|
102
|
-
lint: "oxlint . --deny-warnings",
|
|
103
|
-
"lint:fix": "oxlint . --fix --deny-warnings",
|
|
104
|
-
preview: "vite preview",
|
|
105
|
-
test: "vitest run",
|
|
106
|
-
"test:e2e": "pnpm run build && playwright test",
|
|
107
|
-
typecheck: "vue-tsc --build"
|
|
108
|
-
},
|
|
117
|
+
scripts: projectVueHonoWebPackageScripts(),
|
|
109
118
|
dependencies: {
|
|
110
119
|
[packageName(packageScope, "api")]: "workspace:*",
|
|
111
120
|
"@vueuse/core": "catalog:",
|
|
112
121
|
hono: "catalog:",
|
|
113
122
|
pinia: "catalog:",
|
|
114
|
-
vue: "catalog:"
|
|
123
|
+
vue: "catalog:",
|
|
115
124
|
},
|
|
116
125
|
devDependencies: {
|
|
117
126
|
"@playwright/test": "catalog:",
|
|
@@ -126,17 +135,16 @@ function webPackageJson(packageScope) {
|
|
|
126
135
|
typescript: "catalog:",
|
|
127
136
|
vite: "catalog:",
|
|
128
137
|
vitest: "catalog:",
|
|
129
|
-
"vue-tsc": "catalog:"
|
|
138
|
+
"vue-tsc": "catalog:",
|
|
130
139
|
},
|
|
131
140
|
engines: {
|
|
132
|
-
node: "22"
|
|
133
|
-
}
|
|
141
|
+
node: "22",
|
|
142
|
+
},
|
|
134
143
|
};
|
|
135
144
|
}
|
|
136
145
|
function operationsForVueHonoApp(projectName, packageScope) {
|
|
137
146
|
const apiName = packageName(packageScope, "api");
|
|
138
147
|
const webName = packageName(packageScope, "web");
|
|
139
|
-
const webFilter = workspacePackageFilter(packageScope, "web");
|
|
140
148
|
return [
|
|
141
149
|
{ kind: "writeJson", to: "package.json", value: rootPackageJson(projectName) },
|
|
142
150
|
{
|
|
@@ -171,8 +179,8 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
171
179
|
" vitest: ^4.1.9",
|
|
172
180
|
" vue: ^3.5.26",
|
|
173
181
|
" vue-tsc: ^3.1.8",
|
|
174
|
-
""
|
|
175
|
-
].join("\n")
|
|
182
|
+
"",
|
|
183
|
+
].join("\n"),
|
|
176
184
|
},
|
|
177
185
|
{
|
|
178
186
|
kind: "writeJson",
|
|
@@ -181,20 +189,20 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
181
189
|
tasks: {
|
|
182
190
|
build: {
|
|
183
191
|
dependsOn: ["^build"],
|
|
184
|
-
outputs: ["dist/**"]
|
|
192
|
+
outputs: ["dist/**"],
|
|
185
193
|
},
|
|
186
194
|
check: {
|
|
187
|
-
dependsOn: ["^build"]
|
|
195
|
+
dependsOn: ["^build"],
|
|
188
196
|
},
|
|
189
197
|
dev: {
|
|
190
198
|
cache: false,
|
|
191
|
-
persistent: true
|
|
199
|
+
persistent: true,
|
|
192
200
|
},
|
|
193
201
|
fix: {
|
|
194
|
-
cache: false
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
202
|
+
cache: false,
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
},
|
|
198
206
|
},
|
|
199
207
|
{
|
|
200
208
|
kind: "writeJson",
|
|
@@ -205,9 +213,9 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
205
213
|
{ path: "./apps/api/tsconfig.json" },
|
|
206
214
|
{ path: "./apps/web/tsconfig.app.json" },
|
|
207
215
|
{ path: "./apps/web/tsconfig.test.json" },
|
|
208
|
-
{ path: "./apps/web/tsconfig.node.json" }
|
|
209
|
-
]
|
|
210
|
-
}
|
|
216
|
+
{ path: "./apps/web/tsconfig.node.json" },
|
|
217
|
+
],
|
|
218
|
+
},
|
|
211
219
|
},
|
|
212
220
|
{
|
|
213
221
|
kind: "writeJson",
|
|
@@ -220,43 +228,39 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
220
228
|
features,
|
|
221
229
|
packages: [
|
|
222
230
|
{ name: webName, path: "apps/web" },
|
|
223
|
-
{ name: apiName, path: "apps/api" }
|
|
224
|
-
]
|
|
225
|
-
}
|
|
231
|
+
{ name: apiName, path: "apps/api" },
|
|
232
|
+
],
|
|
233
|
+
},
|
|
226
234
|
},
|
|
227
235
|
{
|
|
228
236
|
kind: "writeJson",
|
|
229
237
|
to: ".project-kit/generated-by.json",
|
|
230
|
-
value: generatedBy
|
|
238
|
+
value: generatedBy,
|
|
231
239
|
},
|
|
232
240
|
{
|
|
233
241
|
kind: "writeJson",
|
|
234
242
|
to: ".devcontainer/devcontainer.json",
|
|
235
|
-
value: {
|
|
243
|
+
value: nodePnpmDevcontainer({
|
|
236
244
|
name: `${projectName} full-stack development`,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
extensions: ["Vue.volar", "oxc.oxc-vscode"]
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
+
nodeVersion: "22",
|
|
246
|
+
packageManagerPin: "pnpm@10.0.0",
|
|
247
|
+
extensions: ["Vue.volar", "oxc.oxc-vscode"],
|
|
248
|
+
}),
|
|
245
249
|
},
|
|
246
250
|
{
|
|
247
251
|
kind: "writeText",
|
|
248
252
|
to: ".gitignore",
|
|
249
|
-
text: ["node_modules", "dist", "playwright-report", "test-results", ".env", ""].join("\n")
|
|
253
|
+
text: ["node_modules", "dist", "playwright-report", "test-results", ".env", ""].join("\n"),
|
|
250
254
|
},
|
|
251
255
|
{
|
|
252
|
-
kind: "
|
|
253
|
-
from: ".github/workflows/check.yml",
|
|
256
|
+
kind: "writeText",
|
|
254
257
|
to: ".github/workflows/check.yml",
|
|
258
|
+
text: projectPresetGithubCheckWorkflow("vue-hono-app"),
|
|
255
259
|
},
|
|
256
260
|
{
|
|
257
|
-
kind: "
|
|
258
|
-
from: ".github/dependabot.yml",
|
|
261
|
+
kind: "writeText",
|
|
259
262
|
to: ".github/dependabot.yml",
|
|
263
|
+
text: projectPresetDependabotConfig("vue-hono-app"),
|
|
260
264
|
},
|
|
261
265
|
{ kind: "writeJson", to: "apps/api/package.json", value: apiPackageJson(packageScope) },
|
|
262
266
|
{
|
|
@@ -271,15 +275,15 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
271
275
|
moduleResolution: "NodeNext",
|
|
272
276
|
noEmitOnError: true,
|
|
273
277
|
paths: {
|
|
274
|
-
"@/*": ["./src/*"]
|
|
278
|
+
"@/*": ["./src/*"],
|
|
275
279
|
},
|
|
276
280
|
skipLibCheck: false,
|
|
277
281
|
strict: true,
|
|
278
282
|
target: "ES2022",
|
|
279
|
-
types: ["node", "vitest/globals"]
|
|
283
|
+
types: ["node", "vitest/globals"],
|
|
280
284
|
},
|
|
281
|
-
include: ["src/**/*.ts", "test/**/*.ts", "vitest.config.ts"]
|
|
282
|
-
}
|
|
285
|
+
include: ["src/**/*.ts", "test/**/*.ts", "vitest.config.ts"],
|
|
286
|
+
},
|
|
283
287
|
},
|
|
284
288
|
{
|
|
285
289
|
kind: "writeJson",
|
|
@@ -289,22 +293,22 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
289
293
|
compilerOptions: {
|
|
290
294
|
outDir: "dist",
|
|
291
295
|
rootDir: "src",
|
|
292
|
-
types: ["node"]
|
|
296
|
+
types: ["node"],
|
|
293
297
|
},
|
|
294
|
-
include: ["src/**/*.ts"]
|
|
295
|
-
}
|
|
298
|
+
include: ["src/**/*.ts"],
|
|
299
|
+
},
|
|
296
300
|
},
|
|
297
301
|
{
|
|
298
302
|
kind: "copyFile",
|
|
299
303
|
sourceRoot: "sharedOxc",
|
|
300
304
|
from: "node/oxlint.config.ts",
|
|
301
|
-
to: "apps/api/oxlint.config.ts"
|
|
305
|
+
to: "apps/api/oxlint.config.ts",
|
|
302
306
|
},
|
|
303
307
|
{
|
|
304
308
|
kind: "copyFile",
|
|
305
309
|
sourceRoot: "sharedOxc",
|
|
306
310
|
from: "oxfmt.config.ts",
|
|
307
|
-
to: "apps/api/oxfmt.config.ts"
|
|
311
|
+
to: "apps/api/oxfmt.config.ts",
|
|
308
312
|
},
|
|
309
313
|
{ kind: "copyFile", from: "api/src/index.ts", to: "apps/api/src/index.ts" },
|
|
310
314
|
{ kind: "copyFile", from: "api/src/runtime.ts", to: "apps/api/src/runtime.ts" },
|
|
@@ -320,9 +324,9 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
320
324
|
references: [
|
|
321
325
|
{ path: "./tsconfig.app.json" },
|
|
322
326
|
{ path: "./tsconfig.test.json" },
|
|
323
|
-
{ path: "./tsconfig.node.json" }
|
|
324
|
-
]
|
|
325
|
-
}
|
|
327
|
+
{ path: "./tsconfig.node.json" },
|
|
328
|
+
],
|
|
329
|
+
},
|
|
326
330
|
},
|
|
327
331
|
{
|
|
328
332
|
kind: "writeJson",
|
|
@@ -337,17 +341,17 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
337
341
|
noEmitOnError: true,
|
|
338
342
|
paths: {
|
|
339
343
|
"@/*": ["./src/*"],
|
|
340
|
-
[apiName]: ["../api/src/index.ts"]
|
|
344
|
+
[apiName]: ["../api/src/index.ts"],
|
|
341
345
|
},
|
|
342
346
|
skipLibCheck: false,
|
|
343
347
|
strict: true,
|
|
344
348
|
target: "ES2022",
|
|
345
349
|
tsBuildInfoFile: "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
346
|
-
types: ["web-bluetooth"]
|
|
350
|
+
types: ["web-bluetooth"],
|
|
347
351
|
},
|
|
348
352
|
include: ["env.d.ts", "src/**/*.ts", "src/**/*.vue"],
|
|
349
|
-
references: [{ path: "../api/tsconfig.build.json" }]
|
|
350
|
-
}
|
|
353
|
+
references: [{ path: "../api/tsconfig.build.json" }],
|
|
354
|
+
},
|
|
351
355
|
},
|
|
352
356
|
{
|
|
353
357
|
kind: "writeJson",
|
|
@@ -357,11 +361,11 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
357
361
|
compilerOptions: {
|
|
358
362
|
lib: ["ESNext", "DOM", "DOM.Iterable"],
|
|
359
363
|
tsBuildInfoFile: "./node_modules/.tmp/tsconfig.test.tsbuildinfo",
|
|
360
|
-
types: ["node", "vitest/globals", "web-bluetooth"]
|
|
364
|
+
types: ["node", "vitest/globals", "web-bluetooth"],
|
|
361
365
|
},
|
|
362
366
|
include: ["env.d.ts", "src/**/*.ts", "src/**/*.vue", "test/**/*.ts"],
|
|
363
|
-
references: [{ path: "../api/tsconfig.build.json" }]
|
|
364
|
-
}
|
|
367
|
+
references: [{ path: "../api/tsconfig.build.json" }],
|
|
368
|
+
},
|
|
365
369
|
},
|
|
366
370
|
{
|
|
367
371
|
kind: "writeJson",
|
|
@@ -378,22 +382,22 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
378
382
|
strict: true,
|
|
379
383
|
target: "ES2022",
|
|
380
384
|
tsBuildInfoFile: "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
381
|
-
types: ["node"]
|
|
385
|
+
types: ["node"],
|
|
382
386
|
},
|
|
383
|
-
include: ["playwright.config.ts", "vite.config.ts", "vitest.config.ts"]
|
|
384
|
-
}
|
|
387
|
+
include: ["playwright.config.ts", "vite.config.ts", "vitest.config.ts"],
|
|
388
|
+
},
|
|
385
389
|
},
|
|
386
390
|
{
|
|
387
391
|
kind: "copyFile",
|
|
388
392
|
sourceRoot: "sharedOxc",
|
|
389
393
|
from: "vue/oxlint.config.ts",
|
|
390
|
-
to: "apps/web/oxlint.config.ts"
|
|
394
|
+
to: "apps/web/oxlint.config.ts",
|
|
391
395
|
},
|
|
392
396
|
{
|
|
393
397
|
kind: "copyFile",
|
|
394
398
|
sourceRoot: "sharedOxc",
|
|
395
399
|
from: "oxfmt.config.ts",
|
|
396
|
-
to: "apps/web/oxfmt.config.ts"
|
|
400
|
+
to: "apps/web/oxfmt.config.ts",
|
|
397
401
|
},
|
|
398
402
|
{ kind: "copyFile", from: "web/env.d.ts", to: "apps/web/env.d.ts" },
|
|
399
403
|
{ kind: "copyFile", from: "web/index.html", to: "apps/web/index.html" },
|
|
@@ -407,15 +411,15 @@ function operationsForVueHonoApp(projectName, packageScope) {
|
|
|
407
411
|
language: "typescript",
|
|
408
412
|
replacements: {
|
|
409
413
|
"api-type-import-start": `import type { AppType } from "${apiName}";\nimport { hc } from "hono/client";\n/*`,
|
|
410
|
-
"api-type-import-end": "*/"
|
|
411
|
-
}
|
|
414
|
+
"api-type-import-end": "*/",
|
|
415
|
+
},
|
|
412
416
|
},
|
|
413
417
|
{ kind: "copyFile", from: "web/src/App.vue", to: "apps/web/src/App.vue" },
|
|
414
418
|
{ kind: "copyFile", from: "web/src/main.ts", to: "apps/web/src/main.ts" },
|
|
415
419
|
{ kind: "copyFile", from: "web/src/style.css", to: "apps/web/src/style.css" },
|
|
416
420
|
{ kind: "copyFile", from: "web/src/stores/counter.ts", to: "apps/web/src/stores/counter.ts" },
|
|
417
421
|
{ kind: "copyFile", from: "web/test/app.test.ts", to: "apps/web/test/app.test.ts" },
|
|
418
|
-
{ kind: "copyFile", from: "web/test/e2e/app.spec.ts", to: "apps/web/test/e2e/app.spec.ts" }
|
|
422
|
+
{ kind: "copyFile", from: "web/test/e2e/app.spec.ts", to: "apps/web/test/e2e/app.spec.ts" },
|
|
419
423
|
];
|
|
420
424
|
}
|
|
421
425
|
function templateSourceRoot() {
|
|
@@ -431,6 +435,6 @@ export async function initVueHonoAppProject(targetDir, options = {}) {
|
|
|
431
435
|
sourceRoot: templateSourceRoot(),
|
|
432
436
|
sourceRoots: { sharedOxc: sharedOxcSourceRoot() },
|
|
433
437
|
targetRoot: targetDir,
|
|
434
|
-
operations: operationsForVueHonoApp(projectName, packageScope)
|
|
438
|
+
operations: operationsForVueHonoApp(projectName, packageScope),
|
|
435
439
|
});
|
|
436
440
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ykdz/template",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Project template generator for YKDZ starter projects.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"check": "pnpm run typecheck && pnpm run test && pnpm run check:templates && pnpm run check:fixtures",
|
|
52
52
|
"check:fixtures": "tsx scripts/check-fixtures.ts",
|
|
53
53
|
"check:templates": "pnpm run check:templates:shared-oxc && pnpm run check:templates:github-yaml && pnpm run check:templates:static-source",
|
|
54
|
+
"check:toolchain:online": "tsx scripts/check-online-toolchain-resolution-contract.ts",
|
|
54
55
|
"check:templates:github-yaml": "tsx scripts/check-template-github-yaml.ts",
|
|
55
56
|
"check:templates:shared-oxc": "pnpm --dir templates/shared/oxc run check",
|
|
56
57
|
"check:templates:static-source": "oxfmt --check --config templates/shared/oxc/oxfmt.config.ts templates && rustfmt --check templates/rust-bin/src/main.rs",
|
|
@@ -11,8 +11,13 @@ jobs:
|
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
12
|
steps:
|
|
13
13
|
- uses: actions/checkout@v6
|
|
14
|
+
- uses: actions/setup-node@v6
|
|
15
|
+
with:
|
|
16
|
+
node-version-file: package.json
|
|
17
|
+
- run: corepack enable
|
|
14
18
|
- uses: dtolnay/rust-toolchain@stable
|
|
15
19
|
with:
|
|
16
20
|
components: rustfmt, clippy
|
|
17
21
|
- uses: Swatinem/rust-cache@v2
|
|
18
|
-
- run:
|
|
22
|
+
- run: pnpm install
|
|
23
|
+
- run: pnpm run check
|
package/dist/post-commands.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { PresetName } from "./declarations.js";
|
|
2
|
-
export type PostCommand = {
|
|
3
|
-
id: string;
|
|
4
|
-
label: string;
|
|
5
|
-
command: string;
|
|
6
|
-
args: readonly string[];
|
|
7
|
-
cwd: string;
|
|
8
|
-
};
|
|
9
|
-
export type PlanPostCommandsOptions = {
|
|
10
|
-
preset: PresetName;
|
|
11
|
-
targetDir: string;
|
|
12
|
-
};
|
|
13
|
-
declare const postCommandPlanBrand: unique symbol;
|
|
14
|
-
export type PostCommandPlan = {
|
|
15
|
-
readonly preset: PresetName;
|
|
16
|
-
readonly targetDir: string;
|
|
17
|
-
readonly commands: readonly PostCommand[];
|
|
18
|
-
readonly [postCommandPlanBrand]: true;
|
|
19
|
-
};
|
|
20
|
-
export type PostCommandExecution = {
|
|
21
|
-
command: PostCommand;
|
|
22
|
-
status: "run";
|
|
23
|
-
exitCode: 0;
|
|
24
|
-
} | {
|
|
25
|
-
command: PostCommand;
|
|
26
|
-
status: "failed";
|
|
27
|
-
exitCode: number | null;
|
|
28
|
-
error: string;
|
|
29
|
-
};
|
|
30
|
-
export type PostCommandExecutor = (command: PostCommand) => Promise<{
|
|
31
|
-
exitCode: number;
|
|
32
|
-
}>;
|
|
33
|
-
export type RunPostCommandsOptions = {
|
|
34
|
-
plan: PostCommandPlan;
|
|
35
|
-
executor?: PostCommandExecutor;
|
|
36
|
-
};
|
|
37
|
-
export declare function planPostCommands(options: PlanPostCommandsOptions): PostCommandPlan;
|
|
38
|
-
export declare function runPostCommands(options: RunPostCommandsOptions): Promise<PostCommandExecution[]>;
|
|
39
|
-
export {};
|
|
40
|
-
//# sourceMappingURL=post-commands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"post-commands.d.ts","sourceRoot":"","sources":["../src/post-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAAkC,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC;CACb,GACD;IACE,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAmEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,eAAe,CAalF;AAoED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAqCjC"}
|