@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,11 +1,10 @@
|
|
|
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
9
|
const generatedBy = {
|
|
11
10
|
packageName: "@ykdz/template",
|
|
@@ -18,7 +17,7 @@ export const tsLibPresetMetadata = {
|
|
|
18
17
|
description: "Strict TypeScript package with pnpm catalog tooling.",
|
|
19
18
|
generation: "supported",
|
|
20
19
|
supportedPackageManagers: ["pnpm"],
|
|
21
|
-
supportedProjectKinds: ["
|
|
20
|
+
supportedProjectKinds: ["multi-package"],
|
|
22
21
|
features: [
|
|
23
22
|
"pnpm-catalog",
|
|
24
23
|
"oxc-format-lint",
|
|
@@ -31,24 +30,44 @@ export const tsLibPresetMetadata = {
|
|
|
31
30
|
],
|
|
32
31
|
};
|
|
33
32
|
const dependencyMaintenancePolicy = {
|
|
34
|
-
ecosystems: ["npm", "github-actions"],
|
|
33
|
+
ecosystems: ["npm", "github-actions", "docker"],
|
|
35
34
|
interval: "weekly",
|
|
36
35
|
};
|
|
37
36
|
const tsLibPackageBoundary = {
|
|
38
37
|
kind: "package-boundary",
|
|
39
38
|
path: ".",
|
|
40
39
|
};
|
|
41
|
-
|
|
40
|
+
const tsLibRootBoundary = {
|
|
41
|
+
kind: "workspace-orchestration",
|
|
42
|
+
path: ".",
|
|
43
|
+
};
|
|
44
|
+
const tsLibWorkspacePackageBoundary = {
|
|
45
|
+
kind: "package-boundary",
|
|
46
|
+
path: "packages/*",
|
|
47
|
+
};
|
|
48
|
+
function planTsLibPackageChecks() {
|
|
42
49
|
return {
|
|
43
50
|
components: [
|
|
44
51
|
{ kind: "typescript-typecheck", owner: tsLibPackageBoundary },
|
|
45
52
|
{ kind: "oxc-lint", owner: tsLibPackageBoundary },
|
|
46
53
|
{ kind: "oxc-format-check", owner: tsLibPackageBoundary },
|
|
54
|
+
{ kind: "build", owner: tsLibPackageBoundary },
|
|
47
55
|
],
|
|
48
56
|
environmentNeeds: [],
|
|
49
57
|
};
|
|
50
58
|
}
|
|
51
|
-
function
|
|
59
|
+
function planTsLibRootChecks() {
|
|
60
|
+
return {
|
|
61
|
+
components: [
|
|
62
|
+
{ kind: "oxc-format-check", owner: tsLibRootBoundary },
|
|
63
|
+
{ kind: "oxc-lint", owner: tsLibRootBoundary },
|
|
64
|
+
{ kind: "typescript-typecheck", owner: tsLibRootBoundary },
|
|
65
|
+
{ kind: "turbo-package-check", owner: tsLibWorkspacePackageBoundary },
|
|
66
|
+
],
|
|
67
|
+
environmentNeeds: [],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function planTsLibPackageFixes() {
|
|
52
71
|
return {
|
|
53
72
|
components: [
|
|
54
73
|
{ kind: "oxc-format-write", owner: tsLibPackageBoundary },
|
|
@@ -56,34 +75,98 @@ function planTsLibFixes() {
|
|
|
56
75
|
],
|
|
57
76
|
};
|
|
58
77
|
}
|
|
59
|
-
|
|
78
|
+
function planTsLibRootFixes() {
|
|
79
|
+
return {
|
|
80
|
+
components: [
|
|
81
|
+
{ kind: "oxc-format-write", owner: tsLibRootBoundary },
|
|
82
|
+
{ kind: "oxc-lint-fix", owner: tsLibRootBoundary },
|
|
83
|
+
{ kind: "turbo-package-fix", owner: tsLibWorkspacePackageBoundary },
|
|
84
|
+
],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function projectNameFromDir(targetDir) {
|
|
88
|
+
return path.basename(path.resolve(targetDir));
|
|
89
|
+
}
|
|
90
|
+
function packageScopeFromOptions(options) {
|
|
91
|
+
return options.scope ?? projectNameFromDir(options.targetDir);
|
|
92
|
+
}
|
|
93
|
+
function packageName(packageScope, packageLeafName) {
|
|
94
|
+
return `@${packageScope}/${packageLeafName}`;
|
|
95
|
+
}
|
|
96
|
+
export function tsLibBlueprint(options = { targetDir: process.cwd() }) {
|
|
97
|
+
const packageScope = packageScopeFromOptions(options);
|
|
98
|
+
const packageLeafName = projectNameFromDir(options.targetDir);
|
|
60
99
|
return {
|
|
61
100
|
schemaVersion: 1,
|
|
62
101
|
preset: "ts-lib",
|
|
63
102
|
packageManager: "pnpm",
|
|
64
|
-
projectKind: "
|
|
103
|
+
projectKind: "multi-package",
|
|
65
104
|
features: [...tsLibPresetMetadata.features],
|
|
105
|
+
packages: [
|
|
106
|
+
{
|
|
107
|
+
name: packageName(packageScope, packageLeafName),
|
|
108
|
+
path: `packages/${packageLeafName}`,
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function workspacePackagePath(context) {
|
|
114
|
+
return `packages/${context.projectName.value}`;
|
|
115
|
+
}
|
|
116
|
+
function workspacePackageName(context) {
|
|
117
|
+
const packageDefinition = context.blueprint.packages?.find((pkg) => pkg.path === workspacePackagePath(context));
|
|
118
|
+
return (packageDefinition?.name ??
|
|
119
|
+
packageName(context.projectName.value, context.projectName.value));
|
|
120
|
+
}
|
|
121
|
+
function projectTsLibRootPackageScripts() {
|
|
122
|
+
return {
|
|
123
|
+
check: renderRootCheckCommand(planTsLibRootChecks()),
|
|
124
|
+
fix: renderFixCommand(planTsLibRootFixes()),
|
|
125
|
+
"format:check": "oxfmt --check --config oxfmt.config.ts oxlint.config.ts oxfmt.config.ts",
|
|
126
|
+
"format:write": "oxfmt --write --config oxfmt.config.ts oxlint.config.ts oxfmt.config.ts",
|
|
127
|
+
lint: "oxlint --config oxlint.config.ts oxlint.config.ts oxfmt.config.ts --deny-warnings",
|
|
128
|
+
"lint:fix": "oxlint --config oxlint.config.ts oxlint.config.ts oxfmt.config.ts --fix --deny-warnings",
|
|
129
|
+
typecheck: "tsc -p tsconfig.config.json --noEmit",
|
|
66
130
|
};
|
|
67
131
|
}
|
|
68
132
|
export function projectTsLibPackageScripts() {
|
|
69
|
-
const checkPlan =
|
|
70
|
-
const fixPlan =
|
|
133
|
+
const checkPlan = planTsLibPackageChecks();
|
|
134
|
+
const fixPlan = planTsLibPackageFixes();
|
|
71
135
|
return {
|
|
72
136
|
build: "tsc -p tsconfig.json && tsc-alias -p tsconfig.json",
|
|
73
137
|
check: renderRootCheckCommand(checkPlan),
|
|
74
138
|
fix: renderFixCommand(fixPlan),
|
|
75
|
-
"format:check": "oxfmt --check .",
|
|
76
|
-
"format:write": "oxfmt --write .",
|
|
77
|
-
lint: "oxlint . --deny-warnings",
|
|
78
|
-
"lint:fix": "oxlint . --fix --deny-warnings",
|
|
139
|
+
"format:check": "oxfmt --check --config ../../oxfmt.config.ts .",
|
|
140
|
+
"format:write": "oxfmt --write --config ../../oxfmt.config.ts .",
|
|
141
|
+
lint: "oxlint --config ../../oxlint.config.ts . --deny-warnings",
|
|
142
|
+
"lint:fix": "oxlint --config ../../oxlint.config.ts . --fix --deny-warnings",
|
|
79
143
|
typecheck: "tsc -p tsconfig.json --noEmit",
|
|
80
144
|
};
|
|
81
145
|
}
|
|
82
|
-
function
|
|
146
|
+
function rootPackageJson(context, packageScripts) {
|
|
83
147
|
return {
|
|
84
148
|
name: context.projectName.value,
|
|
85
149
|
version: "0.0.0",
|
|
86
150
|
private: true,
|
|
151
|
+
type: "module",
|
|
152
|
+
scripts: packageScripts,
|
|
153
|
+
devDependencies: {
|
|
154
|
+
oxfmt: "catalog:",
|
|
155
|
+
oxlint: "catalog:",
|
|
156
|
+
turbo: "catalog:",
|
|
157
|
+
typescript: "catalog:",
|
|
158
|
+
},
|
|
159
|
+
engines: {
|
|
160
|
+
node: context.toolchain.nodeLtsMajor.value,
|
|
161
|
+
},
|
|
162
|
+
packageManager: context.toolchain.packageManagerPin.value,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
function libraryPackageJson(context) {
|
|
166
|
+
return {
|
|
167
|
+
name: workspacePackageName(context),
|
|
168
|
+
version: "0.0.0",
|
|
169
|
+
private: true,
|
|
87
170
|
files: ["dist"],
|
|
88
171
|
type: "module",
|
|
89
172
|
exports: {
|
|
@@ -92,7 +175,10 @@ function packageJson(context, packageScripts) {
|
|
|
92
175
|
types: "./dist/index.d.ts",
|
|
93
176
|
},
|
|
94
177
|
},
|
|
95
|
-
|
|
178
|
+
dependencies: {
|
|
179
|
+
valibot: "catalog:",
|
|
180
|
+
},
|
|
181
|
+
scripts: projectTsLibPackageScripts(),
|
|
96
182
|
devDependencies: {
|
|
97
183
|
"@types/node": "catalog:",
|
|
98
184
|
oxfmt: "catalog:",
|
|
@@ -103,7 +189,6 @@ function packageJson(context, packageScripts) {
|
|
|
103
189
|
engines: {
|
|
104
190
|
node: context.toolchain.nodeLtsMajor.value,
|
|
105
191
|
},
|
|
106
|
-
packageManager: context.toolchain.packageManagerPin.value,
|
|
107
192
|
};
|
|
108
193
|
}
|
|
109
194
|
function generationRecord(context) {
|
|
@@ -120,31 +205,89 @@ function operationsForTsLib(context, packageScripts, checkPlan) {
|
|
|
120
205
|
const editorCustomization = editorCustomizationForCapabilities([
|
|
121
206
|
"oxc-format-lint",
|
|
122
207
|
]);
|
|
208
|
+
const developmentContainer = checkedDockerfileFirstNodePnpmDevcontainer({
|
|
209
|
+
name: context.projectName.value,
|
|
210
|
+
layer: nodePnpmToolLayer({
|
|
211
|
+
nodeVersion: context.toolchain.nodeLtsMajor.value,
|
|
212
|
+
packageManagerPin: context.toolchain.packageManagerPin.value,
|
|
213
|
+
}),
|
|
214
|
+
extensions: editorCustomization.extensions,
|
|
215
|
+
settings: editorCustomization.settings,
|
|
216
|
+
});
|
|
217
|
+
const rootManifest = rootPackageJson(context, packageScripts);
|
|
218
|
+
const packageManifest = libraryPackageJson(context);
|
|
123
219
|
return [
|
|
124
220
|
{
|
|
125
221
|
kind: "writeJson",
|
|
126
222
|
to: "package.json",
|
|
127
|
-
value:
|
|
128
|
-
multilineArrays: ["files"],
|
|
223
|
+
value: rootManifest,
|
|
129
224
|
},
|
|
130
225
|
{
|
|
131
226
|
kind: "writeText",
|
|
132
227
|
to: "pnpm-workspace.yaml",
|
|
133
228
|
text: renderGeneratedPnpmWorkspaceYaml({
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"typescript",
|
|
140
|
-
],
|
|
229
|
+
packages: ["packages/*"],
|
|
230
|
+
dependencies: collectGeneratedManifestCatalogDependencies([
|
|
231
|
+
rootManifest,
|
|
232
|
+
packageManifest,
|
|
233
|
+
]),
|
|
141
234
|
}),
|
|
142
235
|
},
|
|
236
|
+
{
|
|
237
|
+
kind: "writeJson",
|
|
238
|
+
to: "turbo.json",
|
|
239
|
+
value: {
|
|
240
|
+
tasks: {
|
|
241
|
+
build: {
|
|
242
|
+
dependsOn: ["^build"],
|
|
243
|
+
outputs: ["dist/**"],
|
|
244
|
+
},
|
|
245
|
+
check: {
|
|
246
|
+
dependsOn: ["^build"],
|
|
247
|
+
},
|
|
248
|
+
fix: {
|
|
249
|
+
cache: false,
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
},
|
|
143
254
|
{
|
|
144
255
|
kind: "writeJson",
|
|
145
256
|
to: "tsconfig.json",
|
|
257
|
+
value: {
|
|
258
|
+
files: [],
|
|
259
|
+
references: [
|
|
260
|
+
{ path: `./${workspacePackagePath(context)}/tsconfig.json` },
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
kind: "writeJson",
|
|
266
|
+
to: "tsconfig.config.json",
|
|
267
|
+
value: {
|
|
268
|
+
compilerOptions: {
|
|
269
|
+
module: "NodeNext",
|
|
270
|
+
moduleResolution: "NodeNext",
|
|
271
|
+
noEmitOnError: true,
|
|
272
|
+
skipLibCheck: false,
|
|
273
|
+
strict: true,
|
|
274
|
+
target: "ES2022",
|
|
275
|
+
},
|
|
276
|
+
include: ["oxlint.config.ts", "oxfmt.config.ts"],
|
|
277
|
+
},
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
kind: "writeJson",
|
|
281
|
+
to: `${workspacePackagePath(context)}/package.json`,
|
|
282
|
+
value: packageManifest,
|
|
283
|
+
multilineArrays: ["files"],
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
kind: "writeJson",
|
|
287
|
+
to: `${workspacePackagePath(context)}/tsconfig.json`,
|
|
146
288
|
value: {
|
|
147
289
|
compilerOptions: {
|
|
290
|
+
composite: true,
|
|
148
291
|
declaration: true,
|
|
149
292
|
declarationMap: true,
|
|
150
293
|
module: "NodeNext",
|
|
@@ -178,33 +321,40 @@ function operationsForTsLib(context, packageScripts, checkPlan) {
|
|
|
178
321
|
{
|
|
179
322
|
kind: "writeText",
|
|
180
323
|
to: ".gitignore",
|
|
181
|
-
text: [
|
|
324
|
+
text: [
|
|
325
|
+
"node_modules",
|
|
326
|
+
"dist",
|
|
327
|
+
".env",
|
|
328
|
+
".template/",
|
|
329
|
+
".pnpm-store/",
|
|
330
|
+
"",
|
|
331
|
+
].join("\n"),
|
|
182
332
|
},
|
|
183
333
|
{
|
|
184
334
|
kind: "copyFile",
|
|
185
335
|
from: "src/index.ts",
|
|
186
|
-
to:
|
|
336
|
+
to: `${workspacePackagePath(context)}/src/index.ts`,
|
|
187
337
|
},
|
|
188
338
|
{
|
|
189
339
|
kind: "writeJson",
|
|
190
|
-
to: ".
|
|
191
|
-
value:
|
|
340
|
+
to: ".template/blueprint.json",
|
|
341
|
+
value: context.blueprint,
|
|
192
342
|
},
|
|
193
343
|
{
|
|
194
344
|
kind: "writeJson",
|
|
195
|
-
to: ".
|
|
345
|
+
to: ".template/generated-by.json",
|
|
196
346
|
value: generationRecord(context),
|
|
197
347
|
},
|
|
198
348
|
{
|
|
199
349
|
kind: "writeJson",
|
|
200
350
|
to: ".devcontainer/devcontainer.json",
|
|
201
|
-
value:
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
351
|
+
value: developmentContainer.devcontainer,
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
kind: "copyFile",
|
|
355
|
+
sourceRoot: "sharedDevcontainer",
|
|
356
|
+
from: "node-pnpm.Dockerfile",
|
|
357
|
+
to: ".devcontainer/Dockerfile",
|
|
208
358
|
},
|
|
209
359
|
{
|
|
210
360
|
kind: "writeJson",
|
|
@@ -220,14 +370,14 @@ function operationsForTsLib(context, packageScripts, checkPlan) {
|
|
|
220
370
|
value: editorCustomization.settings,
|
|
221
371
|
},
|
|
222
372
|
{
|
|
223
|
-
kind: "
|
|
373
|
+
kind: "copyFile",
|
|
374
|
+
from: ".github/workflows/check.yml",
|
|
224
375
|
to: ".github/workflows/check.yml",
|
|
225
|
-
text: projectCheckWorkflow({ checkPlan }),
|
|
226
376
|
},
|
|
227
377
|
{
|
|
228
|
-
kind: "
|
|
378
|
+
kind: "copyFile",
|
|
379
|
+
from: ".github/dependabot.yml",
|
|
229
380
|
to: ".github/dependabot.yml",
|
|
230
|
-
text: projectDependabotConfig(dependencyMaintenancePolicy),
|
|
231
381
|
},
|
|
232
382
|
];
|
|
233
383
|
}
|
|
@@ -248,6 +398,9 @@ function packageAdditionOperations(packagePath, packageName, nodeVersion) {
|
|
|
248
398
|
types: "./dist/index.d.ts",
|
|
249
399
|
},
|
|
250
400
|
},
|
|
401
|
+
dependencies: {
|
|
402
|
+
valibot: "catalog:",
|
|
403
|
+
},
|
|
251
404
|
scripts: projectTsLibPackageScripts(),
|
|
252
405
|
devDependencies: {
|
|
253
406
|
"@types/node": "catalog:",
|
|
@@ -286,18 +439,6 @@ function packageAdditionOperations(packagePath, packageName, nodeVersion) {
|
|
|
286
439
|
include: ["src/**/*.ts"],
|
|
287
440
|
},
|
|
288
441
|
},
|
|
289
|
-
{
|
|
290
|
-
kind: "copyFile",
|
|
291
|
-
sourceRoot: "sharedOxc",
|
|
292
|
-
from: "node/oxlint.config.ts",
|
|
293
|
-
to: `${packagePath}/oxlint.config.ts`,
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
kind: "copyFile",
|
|
297
|
-
sourceRoot: "sharedOxc",
|
|
298
|
-
from: "oxfmt.config.ts",
|
|
299
|
-
to: `${packagePath}/oxfmt.config.ts`,
|
|
300
|
-
},
|
|
301
442
|
{
|
|
302
443
|
kind: "copyFile",
|
|
303
444
|
from: "src/index.ts",
|
|
@@ -305,11 +446,11 @@ function packageAdditionOperations(packagePath, packageName, nodeVersion) {
|
|
|
305
446
|
},
|
|
306
447
|
];
|
|
307
448
|
}
|
|
308
|
-
function packageAdditionPlan(
|
|
309
|
-
const
|
|
449
|
+
function packageAdditionPlan(packageName, packagePath, nodeVersion) {
|
|
450
|
+
const [workspaceCollection] = packagePath.split("/");
|
|
310
451
|
return {
|
|
311
452
|
packagePath,
|
|
312
|
-
workspacePackageGlob:
|
|
453
|
+
workspacePackageGlob: `${workspaceCollection}/*`,
|
|
313
454
|
rootTsconfigReferences: [`./${packagePath}/tsconfig.json`],
|
|
314
455
|
sourceRoot: templateSourceRoot(),
|
|
315
456
|
sourceRoots: { sharedOxc: sharedOxcSourceRoot() },
|
|
@@ -330,23 +471,33 @@ function sharedOxcSourceRoot() {
|
|
|
330
471
|
? publishedSharedRoot
|
|
331
472
|
: path.join(projectionDir, "..", "shared", "oxc");
|
|
332
473
|
}
|
|
474
|
+
function sharedDevcontainerSourceRoot() {
|
|
475
|
+
const projectionDir = path.dirname(fileURLToPath(import.meta.url));
|
|
476
|
+
const publishedSharedRoot = path.join(projectionDir, "..", "..", "..", "templates", "shared", "devcontainer");
|
|
477
|
+
return existsSync(path.join(publishedSharedRoot, "node-pnpm.Dockerfile"))
|
|
478
|
+
? publishedSharedRoot
|
|
479
|
+
: path.join(projectionDir, "..", "shared", "devcontainer");
|
|
480
|
+
}
|
|
333
481
|
export const tsLibPresetProjection = {
|
|
334
482
|
metadata: tsLibPresetMetadata,
|
|
335
483
|
capabilities: {
|
|
336
484
|
packageAddition: {
|
|
337
|
-
planPackageAddition({
|
|
338
|
-
return packageAdditionPlan(
|
|
485
|
+
planPackageAddition({ packageName, packagePath, nodeVersion, }) {
|
|
486
|
+
return packageAdditionPlan(packageName, packagePath, nodeVersion);
|
|
339
487
|
},
|
|
340
488
|
},
|
|
341
489
|
},
|
|
342
490
|
blueprint: tsLibBlueprint,
|
|
343
491
|
project(context) {
|
|
344
|
-
const checkPlan =
|
|
345
|
-
const fixPlan =
|
|
346
|
-
const packageScripts =
|
|
492
|
+
const checkPlan = planTsLibRootChecks();
|
|
493
|
+
const fixPlan = planTsLibRootFixes();
|
|
494
|
+
const packageScripts = projectTsLibRootPackageScripts();
|
|
347
495
|
return {
|
|
348
496
|
sourceRoot: templateSourceRoot(),
|
|
349
|
-
sourceRoots: {
|
|
497
|
+
sourceRoots: {
|
|
498
|
+
sharedDevcontainer: sharedDevcontainerSourceRoot(),
|
|
499
|
+
sharedOxc: sharedOxcSourceRoot(),
|
|
500
|
+
},
|
|
350
501
|
operations: operationsForTsLib(context, packageScripts, checkPlan),
|
|
351
502
|
checkPlan,
|
|
352
503
|
fixPlan,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { BuiltInPreset, ProjectBlueprint } from "../../src/declarations.js";
|
|
2
|
-
import type { PresetProjection } from "../../src/preset-projection.js";
|
|
2
|
+
import type { PresetBlueprintOptions, PresetProjection } from "../../src/preset-projection.js";
|
|
3
3
|
export declare const vueAppPresetMetadata: BuiltInPreset;
|
|
4
|
-
export declare function vueAppBlueprint(): ProjectBlueprint;
|
|
4
|
+
export declare function vueAppBlueprint(options?: PresetBlueprintOptions): ProjectBlueprint;
|
|
5
5
|
export declare function projectVueAppPackageScripts(): Record<string, string>;
|
|
6
6
|
export declare const vueAppPresetProjection: PresetProjection;
|
|
7
|
-
//# sourceMappingURL=projection.d.ts.map
|