@baseplate-dev/project-builder-cli 0.4.2 → 0.4.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/dist/commands/templates.js +31 -0
- package/package.json +7 -7
|
@@ -45,6 +45,14 @@ export function addTemplatesCommand(program) {
|
|
|
45
45
|
.action(async (directory, options) => {
|
|
46
46
|
await handleGenerateTemplates(directory, options);
|
|
47
47
|
});
|
|
48
|
+
// Templates create subcommand
|
|
49
|
+
templatesCommand
|
|
50
|
+
.command('create <name> <directory>')
|
|
51
|
+
.description('Create a new generator with boilerplate code (e.g., "baseplate templates create email/sendgrid packages/fastify-generators/src/generators")')
|
|
52
|
+
.option('--no-include-templates', 'Skip creating placeholder template setup (generated/, extractor.json)')
|
|
53
|
+
.action(async (name, directory, options) => {
|
|
54
|
+
await handleCreateGenerator(name, directory, options);
|
|
55
|
+
});
|
|
48
56
|
}
|
|
49
57
|
async function handleListTemplates(directory, options) {
|
|
50
58
|
const { discoverGenerators } = await import('@baseplate-dev/project-builder-server/template-extractor');
|
|
@@ -134,3 +142,26 @@ async function handleGenerateTemplates(directory, options) {
|
|
|
134
142
|
skipClean: options.skipClean,
|
|
135
143
|
});
|
|
136
144
|
}
|
|
145
|
+
async function handleCreateGenerator(name, directory, options) {
|
|
146
|
+
const { createGenerator } = await import('@baseplate-dev/project-builder-server/actions');
|
|
147
|
+
const resolvedDirectory = expandPathWithTilde(directory);
|
|
148
|
+
try {
|
|
149
|
+
const result = createGenerator({
|
|
150
|
+
name,
|
|
151
|
+
directory: resolvedDirectory,
|
|
152
|
+
includeTemplates: options.includeTemplates ?? true,
|
|
153
|
+
});
|
|
154
|
+
console.info(`✅ ${result.message}`);
|
|
155
|
+
console.info(`📁 Generator path: ${result.generatorPath}`);
|
|
156
|
+
if (result.filesCreated.length > 0) {
|
|
157
|
+
console.info(`📄 Files created:`);
|
|
158
|
+
for (const file of result.filesCreated) {
|
|
159
|
+
console.info(` - ${file}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
logger.error(`Failed to create generator: ${error instanceof Error ? error.message : String(error)}`);
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baseplate-dev/project-builder-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Full-stack CLI builder using Baseplate generators",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -46,11 +46,11 @@
|
|
|
46
46
|
"pino-pretty": "13.0.0",
|
|
47
47
|
"pkg-dir": "^8.0.0",
|
|
48
48
|
"zod": "^4.1.13",
|
|
49
|
-
"@baseplate-dev/project-builder-common": "0.4.
|
|
50
|
-
"@baseplate-dev/project-builder-lib": "0.4.
|
|
51
|
-
"@baseplate-dev/project-builder-server": "0.4.
|
|
52
|
-
"@baseplate-dev/project-builder-web": "0.4.
|
|
53
|
-
"@baseplate-dev/utils": "0.4.
|
|
49
|
+
"@baseplate-dev/project-builder-common": "0.4.4",
|
|
50
|
+
"@baseplate-dev/project-builder-lib": "0.4.4",
|
|
51
|
+
"@baseplate-dev/project-builder-server": "0.4.4",
|
|
52
|
+
"@baseplate-dev/project-builder-web": "0.4.4",
|
|
53
|
+
"@baseplate-dev/utils": "0.4.4"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@playwright/test": "1.56.1",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"tsx": "4.20.6",
|
|
63
63
|
"typescript": "5.8.3",
|
|
64
64
|
"vitest": "3.2.4",
|
|
65
|
-
"@baseplate-dev/tools": "0.4.
|
|
65
|
+
"@baseplate-dev/tools": "0.4.4"
|
|
66
66
|
},
|
|
67
67
|
"engines": {
|
|
68
68
|
"node": "^22.0.0"
|