@baseplate-dev/project-builder-cli 0.4.2 → 0.4.3

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.
@@ -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.2",
3
+ "version": "0.4.3",
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.2",
50
- "@baseplate-dev/project-builder-lib": "0.4.2",
51
- "@baseplate-dev/project-builder-server": "0.4.2",
52
- "@baseplate-dev/project-builder-web": "0.4.2",
53
- "@baseplate-dev/utils": "0.4.2"
49
+ "@baseplate-dev/project-builder-common": "0.4.3",
50
+ "@baseplate-dev/project-builder-lib": "0.4.3",
51
+ "@baseplate-dev/project-builder-server": "0.4.3",
52
+ "@baseplate-dev/project-builder-web": "0.4.3",
53
+ "@baseplate-dev/utils": "0.4.3"
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.2"
65
+ "@baseplate-dev/tools": "0.4.3"
66
66
  },
67
67
  "engines": {
68
68
  "node": "^22.0.0"