@ykdz/template 0.0.3 → 0.0.4
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/dist/src/cli.d.ts +0 -1
- package/dist/src/cli.js +14 -2
- package/dist/src/declarations.d.ts +2 -3
- package/dist/src/declarations.js +46 -36
- package/dist/src/dependency-catalog.d.ts +9 -1
- package/dist/src/dependency-catalog.js +69 -0
- package/dist/src/devcontainer.d.ts +49 -9
- package/dist/src/devcontainer.js +192 -14
- package/dist/src/editor-customization.d.ts +0 -1
- package/dist/src/editor-customization.js +54 -47
- package/dist/src/generation-context.d.ts +0 -1
- package/dist/src/generation-context.js +4 -1
- package/dist/src/module-graph.d.ts +8 -5
- package/dist/src/module-graph.js +10 -0
- package/dist/src/next-step-instructions.d.ts +0 -1
- package/dist/src/next-step-instructions.js +35 -0
- package/dist/src/package-addition.d.ts +1 -1
- package/dist/src/package-addition.js +170 -15
- package/dist/src/preset-projection.d.ts +1 -1
- package/dist/src/project-github.d.ts +3 -2
- package/dist/src/project-github.js +24 -6
- package/dist/src/renderer.d.ts +16 -2
- package/dist/src/renderer.js +95 -12
- package/dist/src/runtime-paths.d.ts +0 -1
- package/dist/src/template-boundary-check.d.ts +34 -0
- package/dist/src/template-boundary-check.js +448 -0
- package/dist/src/toolchain-resolution.d.ts +0 -1
- package/dist/templates/hono-api/projection.d.ts +2 -3
- package/dist/templates/hono-api/projection.js +230 -69
- package/dist/templates/projection-plans.d.ts +0 -1
- package/dist/templates/registry.d.ts +0 -1
- package/dist/templates/registry.js +2 -2
- package/dist/templates/rust-bin/projection.d.ts +2 -3
- package/dist/templates/rust-bin/projection.js +161 -53
- package/dist/templates/ts-lib/projection.d.ts +2 -3
- package/dist/templates/ts-lib/projection.js +215 -64
- package/dist/templates/vue-app/projection.d.ts +2 -3
- package/dist/templates/vue-app/projection.js +246 -83
- package/dist/templates/vue-hono-app/projection.d.ts +0 -1
- package/dist/templates/vue-hono-app/projection.js +191 -87
- package/package.json +10 -5
- package/pnpm-workspace.yaml +1 -0
- package/templates/hono-api/.github/dependabot.yml +13 -0
- package/templates/rust-bin/.github/dependabot.yml +18 -1
- package/templates/rust-bin/rust-toolchain.toml +3 -0
- package/templates/rust-bin/rustfmt.toml +2 -0
- package/templates/shared/devcontainer/browser-test.Dockerfile +2 -0
- package/templates/shared/devcontainer/node-pnpm.Dockerfile +6 -0
- package/templates/shared/devcontainer/rust.Dockerfile +16 -0
- package/templates/shared/editor-customization/capabilities.json +56 -0
- package/templates/ts-lib/.github/dependabot.yml +13 -0
- package/templates/ts-lib/src/index.ts +5 -1
- package/templates/vue-app/.github/dependabot.yml +13 -0
- package/templates/vue-app/.github/workflows/check.yml +1 -1
- package/templates/vue-hono-app/.github/dependabot.yml +13 -0
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/declarations.d.ts.map +0 -1
- package/dist/src/dependency-catalog.d.ts.map +0 -1
- package/dist/src/devcontainer.d.ts.map +0 -1
- package/dist/src/editor-customization.d.ts.map +0 -1
- package/dist/src/generation-context.d.ts.map +0 -1
- package/dist/src/module-graph.d.ts.map +0 -1
- package/dist/src/next-step-instructions.d.ts.map +0 -1
- package/dist/src/package-addition.d.ts.map +0 -1
- package/dist/src/preset-projection.d.ts.map +0 -1
- package/dist/src/project-github.d.ts.map +0 -1
- package/dist/src/renderer.d.ts.map +0 -1
- package/dist/src/runtime-paths.d.ts.map +0 -1
- package/dist/src/toolchain-resolution.d.ts.map +0 -1
- package/dist/templates/hono-api/projection.d.ts.map +0 -1
- package/dist/templates/projection-plans.d.ts.map +0 -1
- package/dist/templates/registry.d.ts.map +0 -1
- package/dist/templates/rust-bin/projection.d.ts.map +0 -1
- package/dist/templates/ts-lib/projection.d.ts.map +0 -1
- package/dist/templates/vue-app/projection.d.ts.map +0 -1
- package/dist/templates/vue-hono-app/projection.d.ts.map +0 -1
- package/templates/hono-api/projection.ts +0 -453
- package/templates/projection-plans.ts +0 -135
- package/templates/registry.ts +0 -59
- package/templates/rust-bin/projection.ts +0 -346
- package/templates/ts-lib/projection.ts +0 -454
- package/templates/vue-app/projection.ts +0 -687
- package/templates/vue-hono-app/projection.ts +0 -669
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { renderGeneratedPnpmWorkspaceYaml } from "../../src/dependency-catalog.js";
|
|
5
|
-
import {
|
|
4
|
+
import { collectGeneratedManifestCatalogDependencies, renderGeneratedPnpmWorkspaceYaml, } from "../../src/dependency-catalog.js";
|
|
5
|
+
import { checkedDockerfileFirstNodePnpmDevcontainer, nodePnpmToolLayer, } from "../../src/devcontainer.js";
|
|
6
6
|
import { editorCustomizationForCapabilities } from "../../src/editor-customization.js";
|
|
7
7
|
import { renderFixCommand, renderRootCheckCommand, } from "../../src/module-graph.js";
|
|
8
|
-
import { projectCheckWorkflow, projectDependabotConfig, } from "../../src/project-github.js";
|
|
9
8
|
import { renderNewProject } from "../../src/renderer.js";
|
|
10
|
-
import { planNodeChecks, planNodeFixes } from "../projection-plans.js";
|
|
11
9
|
const generatedBy = {
|
|
12
10
|
packageName: "@ykdz/template",
|
|
13
11
|
version: "0.0.0",
|
|
@@ -16,10 +14,10 @@ const generatedBy = {
|
|
|
16
14
|
export const honoApiPresetMetadata = {
|
|
17
15
|
name: "hono-api",
|
|
18
16
|
title: "Hono API",
|
|
19
|
-
description: "
|
|
17
|
+
description: "Hono Node API workspace with strict TypeScript tooling.",
|
|
20
18
|
generation: "supported",
|
|
21
19
|
supportedPackageManagers: ["pnpm"],
|
|
22
|
-
supportedProjectKinds: ["
|
|
20
|
+
supportedProjectKinds: ["multi-package"],
|
|
23
21
|
features: [
|
|
24
22
|
"pnpm-catalog",
|
|
25
23
|
"oxc-format-lint",
|
|
@@ -32,39 +30,136 @@ export const honoApiPresetMetadata = {
|
|
|
32
30
|
],
|
|
33
31
|
};
|
|
34
32
|
const dependencyMaintenancePolicy = {
|
|
35
|
-
ecosystems: ["npm", "github-actions"],
|
|
33
|
+
ecosystems: ["npm", "github-actions", "docker"],
|
|
36
34
|
interval: "weekly",
|
|
37
35
|
};
|
|
38
|
-
|
|
36
|
+
const apiPackageBoundary = {
|
|
37
|
+
kind: "package-boundary",
|
|
38
|
+
path: ".",
|
|
39
|
+
};
|
|
40
|
+
const rootBoundary = {
|
|
41
|
+
kind: "workspace-orchestration",
|
|
42
|
+
path: ".",
|
|
43
|
+
};
|
|
44
|
+
const workspacePackageBoundary = {
|
|
45
|
+
kind: "package-boundary",
|
|
46
|
+
path: "apps/*",
|
|
47
|
+
};
|
|
48
|
+
function planHonoApiPackageChecks() {
|
|
49
|
+
return {
|
|
50
|
+
components: [
|
|
51
|
+
{ kind: "oxc-format-check", owner: apiPackageBoundary },
|
|
52
|
+
{ kind: "oxc-lint", owner: apiPackageBoundary },
|
|
53
|
+
{ kind: "typescript-typecheck", owner: apiPackageBoundary },
|
|
54
|
+
{ kind: "build", owner: apiPackageBoundary },
|
|
55
|
+
{ kind: "unit-test", owner: apiPackageBoundary },
|
|
56
|
+
],
|
|
57
|
+
environmentNeeds: [],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function planHonoApiRootChecks() {
|
|
61
|
+
return {
|
|
62
|
+
components: [
|
|
63
|
+
{ kind: "oxc-format-check", owner: rootBoundary },
|
|
64
|
+
{ kind: "oxc-lint", owner: rootBoundary },
|
|
65
|
+
{ kind: "typescript-typecheck", owner: rootBoundary },
|
|
66
|
+
{ kind: "turbo-package-check", owner: workspacePackageBoundary },
|
|
67
|
+
],
|
|
68
|
+
environmentNeeds: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function planHonoApiPackageFixes() {
|
|
72
|
+
return {
|
|
73
|
+
components: [
|
|
74
|
+
{ kind: "oxc-format-write", owner: apiPackageBoundary },
|
|
75
|
+
{ kind: "oxc-lint-fix", owner: apiPackageBoundary },
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function planHonoApiRootFixes() {
|
|
80
|
+
return {
|
|
81
|
+
components: [
|
|
82
|
+
{ kind: "oxc-format-write", owner: rootBoundary },
|
|
83
|
+
{ kind: "oxc-lint-fix", owner: rootBoundary },
|
|
84
|
+
{ kind: "turbo-package-fix", owner: workspacePackageBoundary },
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function projectNameFromDir(targetDir) {
|
|
89
|
+
return path.basename(path.resolve(targetDir));
|
|
90
|
+
}
|
|
91
|
+
function packageScopeFromOptions(options) {
|
|
92
|
+
return options.scope ?? projectNameFromDir(options.targetDir);
|
|
93
|
+
}
|
|
94
|
+
function packageName(packageScope) {
|
|
95
|
+
return `@${packageScope}/api`;
|
|
96
|
+
}
|
|
97
|
+
export function honoApiBlueprint(options = { targetDir: process.cwd() }) {
|
|
98
|
+
const packageScope = packageScopeFromOptions(options);
|
|
39
99
|
return {
|
|
40
100
|
schemaVersion: 1,
|
|
41
101
|
preset: "hono-api",
|
|
42
102
|
packageManager: "pnpm",
|
|
43
|
-
projectKind: "
|
|
103
|
+
projectKind: "multi-package",
|
|
44
104
|
features: [...honoApiPresetMetadata.features],
|
|
105
|
+
packages: [{ name: packageName(packageScope), path: "apps/api" }],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function projectHonoApiRootPackageScripts() {
|
|
109
|
+
return {
|
|
110
|
+
check: renderRootCheckCommand(planHonoApiRootChecks()),
|
|
111
|
+
fix: renderFixCommand(planHonoApiRootFixes()),
|
|
112
|
+
"format:check": "oxfmt --check --config oxfmt.config.ts oxlint.config.ts oxfmt.config.ts",
|
|
113
|
+
"format:write": "oxfmt --write --config oxfmt.config.ts oxlint.config.ts oxfmt.config.ts",
|
|
114
|
+
lint: "oxlint --config oxlint.config.ts oxlint.config.ts oxfmt.config.ts --deny-warnings",
|
|
115
|
+
"lint:fix": "oxlint --config oxlint.config.ts oxlint.config.ts oxfmt.config.ts --fix --deny-warnings",
|
|
116
|
+
typecheck: "tsc -p tsconfig.config.json --noEmit",
|
|
45
117
|
};
|
|
46
118
|
}
|
|
47
119
|
export function projectHonoApiPackageScripts() {
|
|
48
120
|
return {
|
|
49
121
|
build: "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
50
|
-
check: renderRootCheckCommand(
|
|
51
|
-
fix: renderFixCommand(
|
|
52
|
-
"format:check": "oxfmt --check .",
|
|
53
|
-
"format:write": "oxfmt --write .",
|
|
54
|
-
lint: "oxlint . --deny-warnings",
|
|
55
|
-
"lint:fix": "oxlint . --fix --deny-warnings",
|
|
122
|
+
check: renderRootCheckCommand(planHonoApiPackageChecks()),
|
|
123
|
+
fix: renderFixCommand(planHonoApiPackageFixes()),
|
|
124
|
+
"format:check": "oxfmt --check --config ../../oxfmt.config.ts .",
|
|
125
|
+
"format:write": "oxfmt --write --config ../../oxfmt.config.ts .",
|
|
126
|
+
lint: "oxlint --config ../../oxlint.config.ts . --deny-warnings",
|
|
127
|
+
"lint:fix": "oxlint --config ../../oxlint.config.ts . --fix --deny-warnings",
|
|
56
128
|
start: "node dist/server.js",
|
|
57
129
|
test: "vitest run",
|
|
58
130
|
typecheck: "tsc -p tsconfig.json --noEmit",
|
|
59
131
|
};
|
|
60
132
|
}
|
|
61
|
-
function
|
|
133
|
+
function rootPackageJson(context, packageScripts) {
|
|
62
134
|
return {
|
|
63
135
|
name: context.projectName.value,
|
|
64
136
|
version: "0.0.0",
|
|
65
137
|
private: true,
|
|
66
138
|
type: "module",
|
|
67
139
|
scripts: packageScripts,
|
|
140
|
+
devDependencies: {
|
|
141
|
+
oxfmt: "catalog:",
|
|
142
|
+
oxlint: "catalog:",
|
|
143
|
+
turbo: "catalog:",
|
|
144
|
+
typescript: "catalog:",
|
|
145
|
+
},
|
|
146
|
+
engines: {
|
|
147
|
+
node: context.toolchain.nodeLtsMajor.value,
|
|
148
|
+
},
|
|
149
|
+
packageManager: context.toolchain.packageManagerPin.value,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function apiPackageName(context) {
|
|
153
|
+
const apiPackage = context.blueprint.packages?.find((pkg) => pkg.path === "apps/api");
|
|
154
|
+
return apiPackage?.name ?? packageName(context.projectName.value);
|
|
155
|
+
}
|
|
156
|
+
function apiPackageJson(context) {
|
|
157
|
+
return {
|
|
158
|
+
name: apiPackageName(context),
|
|
159
|
+
version: "0.0.0",
|
|
160
|
+
private: true,
|
|
161
|
+
type: "module",
|
|
162
|
+
scripts: projectHonoApiPackageScripts(),
|
|
68
163
|
dependencies: {
|
|
69
164
|
"@hono/node-server": "catalog:",
|
|
70
165
|
hono: "catalog:",
|
|
@@ -80,7 +175,6 @@ function packageJson(context, packageScripts) {
|
|
|
80
175
|
engines: {
|
|
81
176
|
node: context.toolchain.nodeLtsMajor.value,
|
|
82
177
|
},
|
|
83
|
-
packageManager: context.toolchain.packageManagerPin.value,
|
|
84
178
|
};
|
|
85
179
|
}
|
|
86
180
|
function generationRecord(context) {
|
|
@@ -98,33 +192,86 @@ function operationsForHonoApi(context, packageScripts, checkPlan) {
|
|
|
98
192
|
"oxc-format-lint",
|
|
99
193
|
"vitest",
|
|
100
194
|
]);
|
|
195
|
+
const developmentContainer = checkedDockerfileFirstNodePnpmDevcontainer({
|
|
196
|
+
name: context.projectName.value,
|
|
197
|
+
layer: nodePnpmToolLayer({
|
|
198
|
+
nodeVersion: context.toolchain.nodeLtsMajor.value,
|
|
199
|
+
packageManagerPin: context.toolchain.packageManagerPin.value,
|
|
200
|
+
}),
|
|
201
|
+
extensions: editorCustomization.extensions,
|
|
202
|
+
settings: editorCustomization.settings,
|
|
203
|
+
});
|
|
204
|
+
const rootManifest = rootPackageJson(context, packageScripts);
|
|
205
|
+
const apiManifest = apiPackageJson(context);
|
|
101
206
|
return [
|
|
102
207
|
{
|
|
103
208
|
kind: "writeJson",
|
|
104
209
|
to: "package.json",
|
|
105
|
-
value:
|
|
210
|
+
value: rootManifest,
|
|
106
211
|
},
|
|
107
212
|
{
|
|
108
213
|
kind: "writeText",
|
|
109
214
|
to: "pnpm-workspace.yaml",
|
|
110
215
|
text: renderGeneratedPnpmWorkspaceYaml({
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"oxlint",
|
|
117
|
-
"tsc-alias",
|
|
118
|
-
"typescript",
|
|
119
|
-
"vitest",
|
|
120
|
-
],
|
|
216
|
+
packages: ["apps/*"],
|
|
217
|
+
dependencies: collectGeneratedManifestCatalogDependencies([
|
|
218
|
+
rootManifest,
|
|
219
|
+
apiManifest,
|
|
220
|
+
]),
|
|
121
221
|
}),
|
|
122
222
|
},
|
|
223
|
+
{
|
|
224
|
+
kind: "writeJson",
|
|
225
|
+
to: "turbo.json",
|
|
226
|
+
value: {
|
|
227
|
+
tasks: {
|
|
228
|
+
build: {
|
|
229
|
+
dependsOn: ["^build"],
|
|
230
|
+
outputs: ["dist/**"],
|
|
231
|
+
},
|
|
232
|
+
check: {
|
|
233
|
+
dependsOn: ["^build"],
|
|
234
|
+
},
|
|
235
|
+
fix: {
|
|
236
|
+
cache: false,
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
},
|
|
123
241
|
{
|
|
124
242
|
kind: "writeJson",
|
|
125
243
|
to: "tsconfig.json",
|
|
244
|
+
value: {
|
|
245
|
+
files: [],
|
|
246
|
+
references: [{ path: "./apps/api/tsconfig.json" }],
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
kind: "writeJson",
|
|
251
|
+
to: "tsconfig.config.json",
|
|
252
|
+
value: {
|
|
253
|
+
compilerOptions: {
|
|
254
|
+
module: "NodeNext",
|
|
255
|
+
moduleResolution: "NodeNext",
|
|
256
|
+
noEmitOnError: true,
|
|
257
|
+
skipLibCheck: false,
|
|
258
|
+
strict: true,
|
|
259
|
+
target: "ES2022",
|
|
260
|
+
},
|
|
261
|
+
include: ["oxlint.config.ts", "oxfmt.config.ts"],
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
kind: "writeJson",
|
|
266
|
+
to: "apps/api/package.json",
|
|
267
|
+
value: apiManifest,
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
kind: "writeJson",
|
|
271
|
+
to: "apps/api/tsconfig.json",
|
|
126
272
|
value: {
|
|
127
273
|
compilerOptions: {
|
|
274
|
+
composite: true,
|
|
128
275
|
module: "NodeNext",
|
|
129
276
|
moduleResolution: "NodeNext",
|
|
130
277
|
noEmitOnError: true,
|
|
@@ -141,7 +288,7 @@ function operationsForHonoApi(context, packageScripts, checkPlan) {
|
|
|
141
288
|
},
|
|
142
289
|
{
|
|
143
290
|
kind: "writeJson",
|
|
144
|
-
to: "tsconfig.build.json",
|
|
291
|
+
to: "apps/api/tsconfig.build.json",
|
|
145
292
|
value: {
|
|
146
293
|
extends: "./tsconfig.json",
|
|
147
294
|
compilerOptions: {
|
|
@@ -167,32 +314,48 @@ function operationsForHonoApi(context, packageScripts, checkPlan) {
|
|
|
167
314
|
{
|
|
168
315
|
kind: "writeText",
|
|
169
316
|
to: ".gitignore",
|
|
170
|
-
text: [
|
|
317
|
+
text: [
|
|
318
|
+
"node_modules",
|
|
319
|
+
"dist",
|
|
320
|
+
".env",
|
|
321
|
+
".template/",
|
|
322
|
+
".pnpm-store/",
|
|
323
|
+
"",
|
|
324
|
+
].join("\n"),
|
|
325
|
+
},
|
|
326
|
+
{ kind: "copyFile", from: "src/app.ts", to: "apps/api/src/app.ts" },
|
|
327
|
+
{
|
|
328
|
+
kind: "copyFile",
|
|
329
|
+
from: "src/server.ts",
|
|
330
|
+
to: "apps/api/src/server.ts",
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
kind: "copyFile",
|
|
334
|
+
from: "test/app.test.ts",
|
|
335
|
+
to: "apps/api/test/app.test.ts",
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
kind: "copyFile",
|
|
339
|
+
from: "vitest.config.ts",
|
|
340
|
+
to: "apps/api/vitest.config.ts",
|
|
171
341
|
},
|
|
172
|
-
{ kind: "copyFile", from: "src/app.ts", to: "src/app.ts" },
|
|
173
|
-
{ kind: "copyFile", from: "src/server.ts", to: "src/server.ts" },
|
|
174
|
-
{ kind: "copyFile", from: "test/app.test.ts", to: "test/app.test.ts" },
|
|
175
|
-
{ kind: "copyFile", from: "vitest.config.ts", to: "vitest.config.ts" },
|
|
176
342
|
{
|
|
177
343
|
kind: "writeJson",
|
|
178
|
-
to: ".
|
|
179
|
-
value:
|
|
344
|
+
to: ".template/blueprint.json",
|
|
345
|
+
value: context.blueprint,
|
|
180
346
|
},
|
|
181
347
|
{
|
|
182
348
|
kind: "writeJson",
|
|
183
|
-
to: ".
|
|
349
|
+
to: ".template/generated-by.json",
|
|
184
350
|
value: generationRecord(context),
|
|
185
351
|
},
|
|
186
352
|
{
|
|
187
353
|
kind: "writeJson",
|
|
188
354
|
to: ".devcontainer/devcontainer.json",
|
|
189
|
-
value:
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
extensions: editorCustomization.extensions,
|
|
194
|
-
settings: editorCustomization.settings,
|
|
195
|
-
}),
|
|
355
|
+
value: developmentContainer.devcontainer,
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
...developmentContainer.dockerfileOperation,
|
|
196
359
|
},
|
|
197
360
|
{
|
|
198
361
|
kind: "writeJson",
|
|
@@ -208,14 +371,14 @@ function operationsForHonoApi(context, packageScripts, checkPlan) {
|
|
|
208
371
|
value: editorCustomization.settings,
|
|
209
372
|
},
|
|
210
373
|
{
|
|
211
|
-
kind: "
|
|
374
|
+
kind: "copyFile",
|
|
375
|
+
from: ".github/workflows/check.yml",
|
|
212
376
|
to: ".github/workflows/check.yml",
|
|
213
|
-
text: projectCheckWorkflow({ checkPlan }),
|
|
214
377
|
},
|
|
215
378
|
{
|
|
216
|
-
kind: "
|
|
379
|
+
kind: "copyFile",
|
|
380
|
+
from: ".github/dependabot.yml",
|
|
217
381
|
to: ".github/dependabot.yml",
|
|
218
|
-
text: projectDependabotConfig(dependencyMaintenancePolicy),
|
|
219
382
|
},
|
|
220
383
|
];
|
|
221
384
|
}
|
|
@@ -280,18 +443,6 @@ function packageAdditionOperations(packagePath, packageName, nodeVersion) {
|
|
|
280
443
|
include: ["src/**/*.ts"],
|
|
281
444
|
},
|
|
282
445
|
},
|
|
283
|
-
{
|
|
284
|
-
kind: "copyFile",
|
|
285
|
-
sourceRoot: "sharedOxc",
|
|
286
|
-
from: "node/oxlint.config.ts",
|
|
287
|
-
to: `${packagePath}/oxlint.config.ts`,
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
kind: "copyFile",
|
|
291
|
-
sourceRoot: "sharedOxc",
|
|
292
|
-
from: "oxfmt.config.ts",
|
|
293
|
-
to: `${packagePath}/oxfmt.config.ts`,
|
|
294
|
-
},
|
|
295
446
|
{ kind: "copyFile", from: "src/app.ts", to: `${packagePath}/src/app.ts` },
|
|
296
447
|
{
|
|
297
448
|
kind: "copyFile",
|
|
@@ -310,11 +461,11 @@ function packageAdditionOperations(packagePath, packageName, nodeVersion) {
|
|
|
310
461
|
},
|
|
311
462
|
];
|
|
312
463
|
}
|
|
313
|
-
function packageAdditionPlan(
|
|
314
|
-
const
|
|
464
|
+
function packageAdditionPlan(packageName, packagePath, nodeVersion) {
|
|
465
|
+
const [workspaceCollection] = packagePath.split("/");
|
|
315
466
|
return {
|
|
316
467
|
packagePath,
|
|
317
|
-
workspacePackageGlob:
|
|
468
|
+
workspacePackageGlob: `${workspaceCollection}/*`,
|
|
318
469
|
rootTsconfigReferences: [`./${packagePath}/tsconfig.json`],
|
|
319
470
|
sourceRoot: templateSourceRoot(),
|
|
320
471
|
sourceRoots: { sharedOxc: sharedOxcSourceRoot() },
|
|
@@ -335,23 +486,33 @@ function sharedOxcSourceRoot() {
|
|
|
335
486
|
? publishedSharedRoot
|
|
336
487
|
: path.join(projectionDir, "..", "shared", "oxc");
|
|
337
488
|
}
|
|
489
|
+
function sharedDevcontainerSourceRoot() {
|
|
490
|
+
const projectionDir = path.dirname(fileURLToPath(import.meta.url));
|
|
491
|
+
const publishedSharedRoot = path.join(projectionDir, "..", "..", "..", "templates", "shared", "devcontainer");
|
|
492
|
+
return existsSync(path.join(publishedSharedRoot, "node-pnpm.Dockerfile"))
|
|
493
|
+
? publishedSharedRoot
|
|
494
|
+
: path.join(projectionDir, "..", "shared", "devcontainer");
|
|
495
|
+
}
|
|
338
496
|
export const honoApiPresetProjection = {
|
|
339
497
|
metadata: honoApiPresetMetadata,
|
|
340
498
|
capabilities: {
|
|
341
499
|
packageAddition: {
|
|
342
|
-
planPackageAddition({
|
|
343
|
-
return packageAdditionPlan(
|
|
500
|
+
planPackageAddition({ packageName, packagePath, nodeVersion, }) {
|
|
501
|
+
return packageAdditionPlan(packageName, packagePath, nodeVersion);
|
|
344
502
|
},
|
|
345
503
|
},
|
|
346
504
|
},
|
|
347
505
|
blueprint: honoApiBlueprint,
|
|
348
506
|
project(context) {
|
|
349
|
-
const checkPlan =
|
|
350
|
-
const fixPlan =
|
|
351
|
-
const packageScripts =
|
|
507
|
+
const checkPlan = planHonoApiRootChecks();
|
|
508
|
+
const fixPlan = planHonoApiRootFixes();
|
|
509
|
+
const packageScripts = projectHonoApiRootPackageScripts();
|
|
352
510
|
return {
|
|
353
511
|
sourceRoot: templateSourceRoot(),
|
|
354
|
-
sourceRoots: {
|
|
512
|
+
sourceRoots: {
|
|
513
|
+
sharedDevcontainer: sharedDevcontainerSourceRoot(),
|
|
514
|
+
sharedOxc: sharedOxcSourceRoot(),
|
|
515
|
+
},
|
|
355
516
|
operations: operationsForHonoApi(context, packageScripts, checkPlan),
|
|
356
517
|
checkPlan,
|
|
357
518
|
fixPlan,
|
|
@@ -5,4 +5,3 @@ export declare function selectNodeCheckComponents(target: NodeCheckPlanTarget):
|
|
|
5
5
|
export declare function selectNodeFixComponents(target: NodeFixPlanTarget): FixComponent[];
|
|
6
6
|
export declare function planNodeChecks(target: NodeCheckPlanTarget): CheckPlan;
|
|
7
7
|
export declare function planNodeFixes(target: NodeFixPlanTarget): FixPlan;
|
|
8
|
-
//# sourceMappingURL=projection-plans.d.ts.map
|
|
@@ -5,4 +5,3 @@ export declare const builtInPresetProjections: readonly PresetProjection[];
|
|
|
5
5
|
export declare const builtInPresetMetadata: readonly BuiltInPreset[];
|
|
6
6
|
export declare function findBuiltInPresetProjection(name: string): PresetProjection | undefined;
|
|
7
7
|
export declare function projectPresetThroughRegistry(context: GenerationContext): PresetProjectionPlan | undefined;
|
|
8
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -10,7 +10,7 @@ const futurePresetMetadata = [
|
|
|
10
10
|
description: "Future application preset metadata.",
|
|
11
11
|
generation: "future",
|
|
12
12
|
supportedPackageManagers: ["pnpm"],
|
|
13
|
-
supportedProjectKinds: ["
|
|
13
|
+
supportedProjectKinds: ["multi-package"],
|
|
14
14
|
features: [],
|
|
15
15
|
},
|
|
16
16
|
{
|
|
@@ -19,7 +19,7 @@ const futurePresetMetadata = [
|
|
|
19
19
|
description: "Future command-line preset metadata.",
|
|
20
20
|
generation: "future",
|
|
21
21
|
supportedPackageManagers: ["pnpm"],
|
|
22
|
-
supportedProjectKinds: ["
|
|
22
|
+
supportedProjectKinds: ["multi-package"],
|
|
23
23
|
features: [],
|
|
24
24
|
},
|
|
25
25
|
];
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { BuiltInPreset, ProjectBlueprint } from "../../src/declarations.js";
|
|
2
2
|
import { type CheckPlan, type FixPlan } from "../../src/module-graph.js";
|
|
3
|
-
import type { PresetProjection } from "../../src/preset-projection.js";
|
|
3
|
+
import type { PresetBlueprintOptions, PresetProjection } from "../../src/preset-projection.js";
|
|
4
4
|
export declare const rustBinPresetMetadata: BuiltInPreset;
|
|
5
5
|
export declare function planRustBinChecks(): CheckPlan;
|
|
6
6
|
export declare function planRustBinFixes(): FixPlan;
|
|
7
|
-
export declare function rustBinBlueprint(): ProjectBlueprint;
|
|
7
|
+
export declare function rustBinBlueprint(options?: PresetBlueprintOptions): ProjectBlueprint;
|
|
8
8
|
export declare function projectRustBinPackageScripts(): Record<string, string>;
|
|
9
9
|
export declare const rustBinPresetProjection: PresetProjection;
|
|
10
|
-
//# sourceMappingURL=projection.d.ts.map
|