@baseplate-dev/project-builder-server 0.1.3 → 0.2.1
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/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/sync.d.ts +1 -0
- package/dist/api/sync.d.ts.map +1 -1
- package/dist/compiler/admin/crud/index.d.ts +1 -1
- package/dist/compiler/admin/crud/index.d.ts.map +1 -1
- package/dist/compiler/admin/crud/index.js.map +1 -1
- package/dist/compiler/admin/crud/inputs.d.ts +1 -1
- package/dist/compiler/admin/crud/inputs.d.ts.map +1 -1
- package/dist/compiler/admin/crud/inputs.js.map +1 -1
- package/dist/compiler/admin/index.d.ts.map +1 -1
- package/dist/compiler/admin/index.js +1 -3
- package/dist/compiler/admin/index.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/server/builder-service-manager.d.ts +8 -0
- package/dist/server/builder-service-manager.d.ts.map +1 -1
- package/dist/server/builder-service-manager.js +1 -0
- package/dist/server/builder-service-manager.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +8 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/plugin.d.ts.map +1 -1
- package/dist/server/plugin.js.map +1 -1
- package/dist/service/builder-service.d.ts +3 -1
- package/dist/service/builder-service.d.ts.map +1 -1
- package/dist/service/builder-service.js +4 -1
- package/dist/service/builder-service.js.map +1 -1
- package/dist/sync/build-project.d.ts +7 -2
- package/dist/sync/build-project.d.ts.map +1 -1
- package/dist/sync/build-project.js +8 -4
- package/dist/sync/build-project.js.map +1 -1
- package/dist/sync/file-id-map.d.ts +15 -0
- package/dist/sync/file-id-map.d.ts.map +1 -0
- package/dist/sync/file-id-map.js +36 -0
- package/dist/sync/file-id-map.js.map +1 -0
- package/dist/sync/generate-for-directory.d.ts.map +1 -1
- package/dist/sync/generate-for-directory.js +6 -43
- package/dist/sync/generate-for-directory.js.map +1 -1
- package/dist/sync/sync-metadata-controller.d.ts +1 -1
- package/dist/sync/sync-metadata-controller.d.ts.map +1 -1
- package/dist/sync/sync-metadata-controller.js +1 -1
- package/dist/sync/sync-metadata-controller.js.map +1 -1
- package/dist/sync/sync-metadata.d.ts +3 -0
- package/dist/sync/sync-metadata.d.ts.map +1 -1
- package/dist/sync/sync-metadata.js +1 -0
- package/dist/sync/sync-metadata.js.map +1 -1
- package/dist/template-extractor/delete-template.d.ts +25 -0
- package/dist/template-extractor/delete-template.d.ts.map +1 -0
- package/dist/template-extractor/delete-template.js +36 -0
- package/dist/template-extractor/delete-template.js.map +1 -0
- package/dist/template-extractor/discover-generators.d.ts +19 -0
- package/dist/template-extractor/discover-generators.d.ts.map +1 -0
- package/dist/template-extractor/discover-generators.js +63 -0
- package/dist/template-extractor/discover-generators.js.map +1 -0
- package/dist/template-extractor/index.d.ts +2 -0
- package/dist/template-extractor/index.d.ts.map +1 -1
- package/dist/template-extractor/index.js +2 -0
- package/dist/template-extractor/index.js.map +1 -1
- package/dist/template-extractor/run-template-extractor.d.ts +3 -3
- package/dist/template-extractor/run-template-extractor.d.ts.map +1 -1
- package/dist/template-extractor/run-template-extractor.js +29 -52
- package/dist/template-extractor/run-template-extractor.js.map +1 -1
- package/package.json +18 -10
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { buildGeneratorEntry, CancelledSyncError, createCodebaseFileReaderFromDirectory, deleteMetadataFiles, executeGeneratorEntry, writeGeneratorOutput,
|
|
2
|
-
import {
|
|
3
|
-
import { dirExists
|
|
1
|
+
import { buildGeneratorEntry, CancelledSyncError, createCodebaseFileReaderFromDirectory, deleteMetadataFiles, executeGeneratorEntry, writeGeneratorOutput, writeTemplateMetadata, } from '@baseplate-dev/sync';
|
|
2
|
+
import { randomKey } from '@baseplate-dev/utils';
|
|
3
|
+
import { dirExists } from '@baseplate-dev/utils/node';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import { mkdir, rename, rm } from 'node:fs/promises';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import {
|
|
7
|
+
import { getPreviousGeneratedFileIdMap, writeGeneratedFileIdMap, } from './file-id-map.js';
|
|
8
8
|
import { writeGeneratorSteps } from './generator-steps-writer.js';
|
|
9
9
|
const defaultGeneratorOperations = {
|
|
10
10
|
buildGeneratorEntry,
|
|
@@ -13,45 +13,11 @@ const defaultGeneratorOperations = {
|
|
|
13
13
|
writeGeneratorOutput,
|
|
14
14
|
writeMetadata: async (project, output, projectDirectory) => {
|
|
15
15
|
await deleteMetadataFiles(projectDirectory);
|
|
16
|
-
await writeGeneratorsMetadata(project, projectDirectory);
|
|
17
16
|
await writeTemplateMetadata(output.files, projectDirectory);
|
|
18
17
|
},
|
|
19
18
|
writeGeneratorSteps,
|
|
20
19
|
};
|
|
21
20
|
const GENERATED_DIRECTORY = 'baseplate/generated';
|
|
22
|
-
const FILE_ID_MAP_PATH = 'baseplate/file-id-map.json';
|
|
23
|
-
async function getPreviousGeneratedFileIdMap(projectDirectory) {
|
|
24
|
-
const generatedFileIdMapPath = path.join(projectDirectory, FILE_ID_MAP_PATH);
|
|
25
|
-
try {
|
|
26
|
-
const fileIdMap = await readJsonWithSchema(generatedFileIdMapPath, z.record(z.string(), z.string())).catch(handleFileNotFoundError);
|
|
27
|
-
if (!fileIdMap) {
|
|
28
|
-
return new Map();
|
|
29
|
-
}
|
|
30
|
-
return new Map(Object.entries(fileIdMap));
|
|
31
|
-
}
|
|
32
|
-
catch (err) {
|
|
33
|
-
throw enhanceErrorWithContext(err, `Failed to get previous generated file id map (${generatedFileIdMapPath})`);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
// TODO [>=0.2.0] Remove this once we've released a new major version.
|
|
37
|
-
async function migrateCleanDirectory(projectDirectory, logger) {
|
|
38
|
-
const oldDirectory = path.join(projectDirectory, 'baseplate/.clean');
|
|
39
|
-
const newDirectory = path.join(projectDirectory, GENERATED_DIRECTORY);
|
|
40
|
-
const oldDirectoryExists = await dirExists(oldDirectory);
|
|
41
|
-
const newDirectoryExists = await dirExists(newDirectory);
|
|
42
|
-
if (oldDirectoryExists) {
|
|
43
|
-
logger.info(`Migrating legacy .clean directory to ${newDirectory}...`);
|
|
44
|
-
// Create parent directory if it doesn't exist
|
|
45
|
-
await mkdir(path.dirname(newDirectory), { recursive: true });
|
|
46
|
-
if (newDirectoryExists) {
|
|
47
|
-
throw new Error(`New generated directory already exists: ${newDirectory}. Please remove either baseplate.clean or baseplate/generated.`);
|
|
48
|
-
}
|
|
49
|
-
// Rename directory
|
|
50
|
-
await rename(oldDirectory, newDirectory).catch((err) => {
|
|
51
|
-
throw new Error(`Failed to migrate .clean directory: ${err instanceof Error ? err.message : String(err)}`);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
21
|
async function getPreviousGeneratedPayload(projectDirectory) {
|
|
56
22
|
const generatedDirectory = path.join(projectDirectory, GENERATED_DIRECTORY);
|
|
57
23
|
const generatedDirectoryExists = await dirExists(generatedDirectory);
|
|
@@ -67,8 +33,6 @@ async function getPreviousGeneratedPayload(projectDirectory) {
|
|
|
67
33
|
export async function generateForDirectory({ baseDirectory, appEntry, logger, writeTemplateMetadataOptions, userConfig, previousPackageSyncResult, operations = defaultGeneratorOperations, abortSignal, skipCommands, }) {
|
|
68
34
|
const { appDirectory, name, generatorBundle } = appEntry;
|
|
69
35
|
const projectDirectory = path.join(baseDirectory, appDirectory);
|
|
70
|
-
// Migrate .clean directory if it exists
|
|
71
|
-
await migrateCleanDirectory(projectDirectory, logger);
|
|
72
36
|
logger.info(`Generating project ${name} in ${projectDirectory}...`);
|
|
73
37
|
const project = await operations.buildGeneratorEntry(generatorBundle);
|
|
74
38
|
const output = await operations.executeGeneratorEntry(project, {
|
|
@@ -110,8 +74,7 @@ export async function generateForDirectory({ baseDirectory, appEntry, logger, wr
|
|
|
110
74
|
}
|
|
111
75
|
await rename(generatedTemporaryDirectory, generatedDirectory);
|
|
112
76
|
// Write file ID map
|
|
113
|
-
|
|
114
|
-
await writeJson(path.join(projectDirectory, FILE_ID_MAP_PATH), fileIdMap);
|
|
77
|
+
await writeGeneratedFileIdMap(projectDirectory, fileIdToRelativePathMap);
|
|
115
78
|
// Write generator steps
|
|
116
79
|
if (userConfig.sync?.writeGeneratorStepsJson && output.metadata) {
|
|
117
80
|
await operations.writeGeneratorSteps(output.metadata, projectDirectory);
|
|
@@ -135,7 +98,7 @@ export async function generateForDirectory({ baseDirectory, appEntry, logger, wr
|
|
|
135
98
|
return {
|
|
136
99
|
filesWithConflicts,
|
|
137
100
|
failedCommands: failedCommands.map((c) => ({
|
|
138
|
-
id:
|
|
101
|
+
id: randomKey(),
|
|
139
102
|
command: c.command,
|
|
140
103
|
workingDir: c.workingDir,
|
|
141
104
|
output: c.output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-for-directory.js","sourceRoot":"","sources":["../../src/sync/generate-for-directory.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qCAAqC,EACrC,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"generate-for-directory.js","sourceRoot":"","sources":["../../src/sync/generate-for-directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Logger } from '@baseplate-dev/sync';
|
|
2
2
|
import { TypedEventEmitter } from '@baseplate-dev/utils';
|
|
3
|
-
import {
|
|
3
|
+
import type { PackageSyncInfo, SyncMetadata } from './sync-metadata.js';
|
|
4
4
|
/**
|
|
5
5
|
* Controller for getting updates about the latest sync metadata.
|
|
6
6
|
* Uses throttling to coalesce multiple write calls into a single save.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-metadata-controller.d.ts","sourceRoot":"","sources":["../../src/sync/sync-metadata-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAEL,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-metadata-controller.d.ts","sourceRoot":"","sources":["../../src/sync/sync-metadata-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAEL,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASxE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB,CAAC;IAC5D,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC;CACzC,CAAC;IAME,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IAC3C,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,OAAO,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE;IAPpD,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IAEjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;gBAG7C,gBAAgB,EAAE,MAAM,EACjC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO;IAiBzD,OAAO,CAAC,eAAe;IAIjB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB/C,aAAa,IAAI,MAAM,IAAI;IAyBrB,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAM1C,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAKzC,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,eAAe,GACrD,OAAO,CAAC,IAAI,CAAC;IAiBV,cAAc,CAClB,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,YAAY,GAC/C,OAAO,CAAC,IAAI,CAAC;CAKjB"}
|
|
@@ -3,7 +3,7 @@ import { watch } from 'chokidar';
|
|
|
3
3
|
import { isEqual, throttle } from 'es-toolkit';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { readSyncMetadata, SYNC_METADATA_PATH, writeSyncMetadata, } from './sync-metadata-service.js';
|
|
6
|
-
import { INITIAL_SYNC_METADATA
|
|
6
|
+
import { INITIAL_SYNC_METADATA } from './sync-metadata.js';
|
|
7
7
|
/**
|
|
8
8
|
* Controller for getting updates about the latest sync metadata.
|
|
9
9
|
* Uses throttling to coalesce multiple write calls into a single save.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-metadata-controller.js","sourceRoot":"","sources":["../../src/sync/sync-metadata-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-metadata-controller.js","sourceRoot":"","sources":["../../src/sync/sync-metadata-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,6 +239,7 @@ export declare const syncMetadataSchema: z.ZodObject<{
|
|
|
239
239
|
globalErrors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
240
240
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
241
241
|
completedAt: z.ZodOptional<z.ZodString>;
|
|
242
|
+
cliFilePath: z.ZodOptional<z.ZodString>;
|
|
242
243
|
packages: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
243
244
|
name: z.ZodString;
|
|
244
245
|
path: z.ZodString;
|
|
@@ -406,6 +407,7 @@ export declare const syncMetadataSchema: z.ZodObject<{
|
|
|
406
407
|
completedAt?: string | undefined;
|
|
407
408
|
globalErrors?: string[] | undefined;
|
|
408
409
|
startedAt?: string | undefined;
|
|
410
|
+
cliFilePath?: string | undefined;
|
|
409
411
|
}, {
|
|
410
412
|
status: "in-progress" | "success" | "cancelled" | "not-started" | "error";
|
|
411
413
|
packages: Record<string, {
|
|
@@ -437,6 +439,7 @@ export declare const syncMetadataSchema: z.ZodObject<{
|
|
|
437
439
|
completedAt?: string | undefined;
|
|
438
440
|
globalErrors?: string[] | undefined;
|
|
439
441
|
startedAt?: string | undefined;
|
|
442
|
+
cliFilePath?: string | undefined;
|
|
440
443
|
}>;
|
|
441
444
|
export type SyncMetadata = z.output<typeof syncMetadataSchema>;
|
|
442
445
|
export declare const INITIAL_SYNC_METADATA: SyncMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-metadata.d.ts","sourceRoot":"","sources":["../../src/sync/sync-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,uBAAuB,iHAe3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;EAW1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB,4EAW3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"sync-metadata.d.ts","sourceRoot":"","sources":["../../src/sync/sync-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,uBAAuB,iHAe3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;EAW1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB,4EAW3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/D,eAAO,MAAM,qBAAqB,EAAE,YAGnC,CAAC"}
|
|
@@ -71,6 +71,7 @@ export const syncMetadataSchema = z.object({
|
|
|
71
71
|
globalErrors: z.array(z.string()).optional(),
|
|
72
72
|
startedAt: z.string().optional(),
|
|
73
73
|
completedAt: z.string().optional(),
|
|
74
|
+
cliFilePath: z.string().optional(),
|
|
74
75
|
packages: z.record(z.string(), packageSyncInfoSchema),
|
|
75
76
|
});
|
|
76
77
|
export const INITIAL_SYNC_METADATA = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-metadata.js","sourceRoot":"","sources":["../../src/sync/sync-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,sCAAsC;IACtC,YAAY;IACZ,wCAAwC;IACxC,aAAa;IACb,sCAAsC;IACtC,SAAS;IACT,gDAAgD;IAChD,eAAe;IACf,4BAA4B;IAC5B,WAAW;IACX,8CAA8C;IAC9C,eAAe;IACf,yBAAyB;IACzB,WAAW;CACZ,CAAC,CAAC;AAIH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,6BAA6B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC;QACnB,gCAAgC;QAChC,gBAAgB;QAChB,sFAAsF;QACtF,iBAAiB;QACjB,0FAA0F;QAC1F,mBAAmB;KACpB,CAAC;CACH,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC9D,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC,CACH;SACA,QAAQ,EAAE;IACb,cAAc,EAAE,CAAC;SACd,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC,CACH;SACA,QAAQ,EAAE;IACb,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,uBAAuB;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,0BAA0B;IAC1B,aAAa;IACb,0BAA0B;IAC1B,aAAa;IACb,0BAA0B;IAC1B,SAAS;IACT,gCAAgC;IAChC,OAAO;IACP,yBAAyB;IACzB,WAAW;CACZ,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC;CACtD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"sync-metadata.js","sourceRoot":"","sources":["../../src/sync/sync-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { PluginMetadataWithPaths } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { Logger } from '@baseplate-dev/sync';
|
|
3
|
+
/**
|
|
4
|
+
* Options for the delete-template command
|
|
5
|
+
*/
|
|
6
|
+
interface DeleteTemplateOptions {
|
|
7
|
+
/**
|
|
8
|
+
* The default plugins to use
|
|
9
|
+
*/
|
|
10
|
+
defaultPlugins: PluginMetadataWithPaths[];
|
|
11
|
+
/**
|
|
12
|
+
* The directory to search for generators
|
|
13
|
+
*/
|
|
14
|
+
directory?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The logger to use
|
|
17
|
+
*/
|
|
18
|
+
logger: Logger;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Deletes a template from a generator extractor.json file
|
|
22
|
+
*/
|
|
23
|
+
export declare function deleteTemplate(generatorName: string, templateName: string, options: DeleteTemplateOptions): Promise<void>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=delete-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-template.d.ts","sourceRoot":"","sources":["../../src/template-extractor/delete-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAalD;;GAEG;AACH,UAAU,qBAAqB;IAC7B;;OAEG;IACH,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA0Df"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { extractorConfigSchema, parseGeneratorName } from '@baseplate-dev/sync';
|
|
2
|
+
import { stringifyPrettyCompact } from '@baseplate-dev/utils';
|
|
3
|
+
import { handleFileNotFoundError, readJsonWithSchema, } from '@baseplate-dev/utils/node';
|
|
4
|
+
import fs from 'node:fs/promises';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { discoverGenerators } from './discover-generators.js';
|
|
7
|
+
/**
|
|
8
|
+
* Deletes a template from a generator extractor.json file
|
|
9
|
+
*/
|
|
10
|
+
export async function deleteTemplate(generatorName, templateName, options) {
|
|
11
|
+
const generators = await discoverGenerators(options.directory, options.defaultPlugins, options.logger);
|
|
12
|
+
// Pull the generator config
|
|
13
|
+
const generator = generators.find((g) => {
|
|
14
|
+
const parsedGeneratorName = parseGeneratorName(g.name);
|
|
15
|
+
return (g.name === generatorName ||
|
|
16
|
+
parsedGeneratorName.generatorPath === generatorName);
|
|
17
|
+
});
|
|
18
|
+
if (!generator) {
|
|
19
|
+
throw new Error(`Generator '${generatorName}' not found`);
|
|
20
|
+
}
|
|
21
|
+
const extractorJsonPath = path.join(generator.generatorDirectory, 'extractor.json');
|
|
22
|
+
const templateExtractorJson = await readJsonWithSchema(extractorJsonPath, extractorConfigSchema);
|
|
23
|
+
const templatePath = Object.keys(templateExtractorJson.templates).find((templatePath) => generator.templates[templatePath].name === templateName);
|
|
24
|
+
if (!templatePath) {
|
|
25
|
+
throw new Error(`Template '${templateName}' not found in generator '${generatorName}'`);
|
|
26
|
+
}
|
|
27
|
+
const updatedTemplates = templateExtractorJson.templates;
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete -- easiest way of deleting without reordering the keys
|
|
29
|
+
delete updatedTemplates[templatePath];
|
|
30
|
+
// Write the updated configuration back to the extractor.json file
|
|
31
|
+
await fs.writeFile(extractorJsonPath, stringifyPrettyCompact(templateExtractorJson), 'utf8');
|
|
32
|
+
// Clean up the actual template file if it exists
|
|
33
|
+
const templateFilePath = path.join(generator.generatorDirectory, 'templates', templatePath);
|
|
34
|
+
await fs.unlink(templateFilePath).catch(handleFileNotFoundError);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=delete-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-template.js","sourceRoot":"","sources":["../../src/template-extractor/delete-template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAoB9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,YAAoB,EACpB,OAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,kBAAkB,CACzC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;IAEF,4BAA4B;IAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,aAAa;YACxB,mBAAmB,CAAC,aAAa,KAAK,aAAa,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,cAAc,aAAa,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,SAAS,CAAC,kBAAkB,EAC5B,gBAAgB,CACjB,CAAC;IAEF,MAAM,qBAAqB,GAAG,MAAM,kBAAkB,CACpD,iBAAiB,EACjB,qBAAqB,CACtB,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,CACpE,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAC1E,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,6BAA6B,aAAa,GAAG,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC;IACzD,uHAAuH;IACvH,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAEtC,kEAAkE;IAElE,MAAM,EAAE,CAAC,SAAS,CAChB,iBAAiB,EACjB,sBAAsB,CAAC,qBAAqB,CAAC,EAC7C,MAAM,CACP,CAAC;IAEF,iDAAiD;IACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,SAAS,CAAC,kBAAkB,EAC5B,WAAW,EACX,YAAY,CACb,CAAC;IACF,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PluginMetadataWithPaths } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { Logger, TemplateConfig } from '@baseplate-dev/sync';
|
|
3
|
+
export interface GeneratorInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
packageName: string;
|
|
6
|
+
packagePath: string;
|
|
7
|
+
generatorDirectory: string;
|
|
8
|
+
templates: Record<string, TemplateConfig>;
|
|
9
|
+
templateCount: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Build a map of generator package names to their file system paths
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildGeneratorPackageMap(availablePlugins: PluginMetadataWithPaths[]): Promise<Map<string, string>>;
|
|
15
|
+
/**
|
|
16
|
+
* Discover all available generators with extractor.json files
|
|
17
|
+
*/
|
|
18
|
+
export declare function discoverGenerators(directory: string | undefined, defaultPlugins: PluginMetadataWithPaths[], logger: Logger): Promise<GeneratorInfo[]>;
|
|
19
|
+
//# sourceMappingURL=discover-generators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-generators.d.ts","sourceRoot":"","sources":["../../src/template-extractor/discover-generators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAelE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,gBAAgB,EAAE,uBAAuB,EAAE,GAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8B9B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,oBAAM,EACf,cAAc,EAAE,uBAAuB,EAAE,EACzC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,EAAE,CAAC,CAyB1B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { indexTemplateConfigs } from '@baseplate-dev/sync';
|
|
2
|
+
import { findNearestPackageJson } from '@baseplate-dev/utils/node';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { discoverPlugins } from '#src/plugins/plugin-discovery.js';
|
|
6
|
+
const GENERATOR_PACKAGES = [
|
|
7
|
+
'@baseplate-dev/core-generators',
|
|
8
|
+
'@baseplate-dev/fastify-generators',
|
|
9
|
+
'@baseplate-dev/react-generators',
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Build a map of generator package names to their file system paths
|
|
13
|
+
*/
|
|
14
|
+
export async function buildGeneratorPackageMap(availablePlugins) {
|
|
15
|
+
const generatorPackageMap = new Map();
|
|
16
|
+
for (const plugin of availablePlugins) {
|
|
17
|
+
const nearestPackageJsonPath = await findNearestPackageJson({
|
|
18
|
+
cwd: plugin.pluginDirectory,
|
|
19
|
+
stopAtNodeModules: true,
|
|
20
|
+
});
|
|
21
|
+
if (!nearestPackageJsonPath) {
|
|
22
|
+
throw new Error(`Could not find package.json for ${plugin.packageName}`);
|
|
23
|
+
}
|
|
24
|
+
generatorPackageMap.set(plugin.packageName, path.dirname(nearestPackageJsonPath));
|
|
25
|
+
}
|
|
26
|
+
// Attach built-in generator packages
|
|
27
|
+
for (const packageName of GENERATOR_PACKAGES) {
|
|
28
|
+
const nearestPackageJsonPath = await findNearestPackageJson({
|
|
29
|
+
cwd: path.dirname(fileURLToPath(import.meta.resolve(packageName))),
|
|
30
|
+
stopAtNodeModules: true,
|
|
31
|
+
});
|
|
32
|
+
if (!nearestPackageJsonPath) {
|
|
33
|
+
throw new Error(`Could not find package.json for ${packageName}`);
|
|
34
|
+
}
|
|
35
|
+
generatorPackageMap.set(packageName, path.dirname(nearestPackageJsonPath));
|
|
36
|
+
}
|
|
37
|
+
return generatorPackageMap;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Discover all available generators with extractor.json files
|
|
41
|
+
*/
|
|
42
|
+
export async function discoverGenerators(directory = '.', defaultPlugins, logger) {
|
|
43
|
+
const availablePlugins = await discoverPlugins(directory, logger);
|
|
44
|
+
const generatorPackageMap = await buildGeneratorPackageMap([
|
|
45
|
+
...defaultPlugins,
|
|
46
|
+
...availablePlugins,
|
|
47
|
+
]);
|
|
48
|
+
// Index all template configs using the unified utility
|
|
49
|
+
const { extractorEntries } = await indexTemplateConfigs(generatorPackageMap);
|
|
50
|
+
// Convert to GeneratorInfo format
|
|
51
|
+
const generators = extractorEntries.map((entry) => ({
|
|
52
|
+
name: entry.generatorName,
|
|
53
|
+
packageName: entry.packageName,
|
|
54
|
+
packagePath: entry.packagePath,
|
|
55
|
+
generatorDirectory: entry.generatorDirectory,
|
|
56
|
+
templates: entry.config.templates,
|
|
57
|
+
templateCount: Object.keys(entry.config.templates).length,
|
|
58
|
+
}));
|
|
59
|
+
// Sort generators by name for consistent output
|
|
60
|
+
generators.sort((a, b) => a.name.localeCompare(b.name));
|
|
61
|
+
return generators;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=discover-generators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-generators.js","sourceRoot":"","sources":["../../src/template-extractor/discover-generators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template-extractor/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template-extractor/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template-extractor/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template-extractor/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Logger } from '@baseplate-dev/sync';
|
|
3
|
-
export declare function runTemplateExtractorsForProject(directory: string, app: string,
|
|
1
|
+
import type { PluginMetadataWithPaths } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { Logger, RunTemplateFileExtractorsOptions } from '@baseplate-dev/sync';
|
|
3
|
+
export declare function runTemplateExtractorsForProject(directory: string, app: string, defaultPlugins: PluginMetadataWithPaths[], logger: Logger, options?: RunTemplateFileExtractorsOptions): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=run-template-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-template-extractor.d.ts","sourceRoot":"","sources":["../../src/template-extractor/run-template-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"run-template-extractor.d.ts","sourceRoot":"","sources":["../../src/template-extractor/run-template-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EACV,MAAM,EACN,gCAAgC,EACjC,MAAM,qBAAqB,CAAC;AAqB7B,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,uBAAuB,EAAE,EACzC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
|
|
@@ -1,60 +1,37 @@
|
|
|
1
|
-
import { TsTemplateFileExtractor } from '@baseplate-dev/core-generators';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { RawTemplateFileExtractor, TextTemplateFileExtractor, TsTemplateFileExtractor, } from '@baseplate-dev/core-generators/extractors';
|
|
2
|
+
import { runTemplateFileExtractors } from '@baseplate-dev/sync';
|
|
3
|
+
import { discoverPlugins } from '#src/plugins/plugin-discovery.js';
|
|
4
|
+
import { getPreviousGeneratedFileIdMap } from '#src/sync/file-id-map.js';
|
|
5
|
+
import { readSyncMetadata } from '#src/sync/sync-metadata-service.js';
|
|
6
|
+
import { buildGeneratorPackageMap } from './discover-generators.js';
|
|
7
|
+
const TEMPLATE_EXTRACTORS = [
|
|
8
|
+
RawTemplateFileExtractor,
|
|
9
|
+
TextTemplateFileExtractor,
|
|
10
|
+
TsTemplateFileExtractor,
|
|
11
11
|
];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const generatorPackageMap = new Map();
|
|
19
|
-
for (const plugin of context.pluginStore.availablePlugins) {
|
|
20
|
-
const nearestPackageJsonPath = await findNearestPackageJson({
|
|
21
|
-
cwd: plugin.metadata.pluginDirectory,
|
|
22
|
-
stopAtNodeModules: true,
|
|
23
|
-
});
|
|
24
|
-
if (!nearestPackageJsonPath) {
|
|
25
|
-
throw new Error(`Could not find package.json for ${plugin.metadata.packageName}`);
|
|
26
|
-
}
|
|
27
|
-
generatorPackageMap.set(plugin.metadata.packageName, path.dirname(nearestPackageJsonPath));
|
|
28
|
-
}
|
|
29
|
-
// attach generator packages
|
|
30
|
-
for (const packageName of GENERATOR_PACKAGES) {
|
|
31
|
-
const nearestPackageJsonPath = await findNearestPackageJson({
|
|
32
|
-
cwd: path.dirname(fileURLToPath(import.meta.resolve(packageName))),
|
|
33
|
-
stopAtNodeModules: true,
|
|
34
|
-
});
|
|
35
|
-
if (!nearestPackageJsonPath) {
|
|
36
|
-
throw new Error(`Could not find package.json for ${packageName}`);
|
|
37
|
-
}
|
|
38
|
-
generatorPackageMap.set(packageName, path.dirname(nearestPackageJsonPath));
|
|
12
|
+
export async function runTemplateExtractorsForProject(directory, app, defaultPlugins, logger, options) {
|
|
13
|
+
const availablePlugins = await discoverPlugins(directory, logger);
|
|
14
|
+
const syncMetadata = await readSyncMetadata(directory);
|
|
15
|
+
if (syncMetadata.status === 'not-started' ||
|
|
16
|
+
Object.keys(syncMetadata.packages).length === 0) {
|
|
17
|
+
throw new Error(`No sync metadata found for ${directory}. Please run the sync command first.`);
|
|
39
18
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const generatorInfoFiles = await globby(path.join(directory, '**', '.generator-info.json'), { onlyFiles: true, absolute: true });
|
|
45
|
-
const generatorPackageMap = await buildGeneratorPackageMap(context);
|
|
19
|
+
const generatorPackageMap = await buildGeneratorPackageMap([
|
|
20
|
+
...defaultPlugins,
|
|
21
|
+
...availablePlugins,
|
|
22
|
+
]);
|
|
46
23
|
logger.info(`Running template extractors for ${directory}${app ? ` for app ${app}` : ''}...`);
|
|
47
|
-
const appDirectories =
|
|
48
|
-
.
|
|
49
|
-
.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return true;
|
|
54
|
-
});
|
|
24
|
+
const appDirectories = Object.values(syncMetadata.packages)
|
|
25
|
+
.filter((packageInfo) => packageInfo.name.includes(app))
|
|
26
|
+
.map((packageInfo) => packageInfo.path);
|
|
27
|
+
if (appDirectories.length === 0) {
|
|
28
|
+
throw new Error(`No app directories found for ${app}`);
|
|
29
|
+
}
|
|
55
30
|
if (appDirectories.length > 1) {
|
|
56
31
|
throw new Error(`Found multiple app directories for ${app}: ${appDirectories.join(', ')}`);
|
|
57
32
|
}
|
|
58
|
-
await
|
|
33
|
+
const fileIdMap = await getPreviousGeneratedFileIdMap(appDirectories[0]);
|
|
34
|
+
await runTemplateFileExtractors(TEMPLATE_EXTRACTORS, appDirectories[0], generatorPackageMap, logger, fileIdMap, options);
|
|
35
|
+
logger.info('Template extraction complete!');
|
|
59
36
|
}
|
|
60
37
|
//# sourceMappingURL=run-template-extractor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-template-extractor.js","sourceRoot":"","sources":["../../src/template-extractor/run-template-extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-template-extractor.js","sourceRoot":"","sources":["../../src/template-extractor/run-template-extractor.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,mBAAmB,GAAG;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;CACxB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,SAAiB,EACjB,GAAW,EACX,cAAyC,EACzC,MAAc,EACd,OAA0C;IAE1C,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEvD,IACE,YAAY,CAAC,MAAM,KAAK,aAAa;QACrC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8BAA8B,SAAS,sCAAsC,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,wBAAwB,CAAC;QACzD,GAAG,cAAc;QACjB,GAAG,gBAAgB;KACpB,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CACT,mCAAmC,SAAS,GAC1C,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,EAC5B,KAAK,CACN,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;SACxD,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACvD,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,6BAA6B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,yBAAyB,CAC7B,mBAAmB,EACnB,cAAc,CAAC,CAAC,CAAC,EACjB,mBAAmB,EACnB,MAAM,EACN,SAAS,EACT,OAAO,CACR,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baseplate-dev/project-builder-server",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Server for Project Builder using Baseplate generators",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"backend",
|
|
7
|
+
"baseplate",
|
|
8
|
+
"full-stack",
|
|
9
|
+
"typescript",
|
|
10
|
+
"code-generation"
|
|
11
|
+
],
|
|
5
12
|
"homepage": "https://www.baseplate.dev",
|
|
6
13
|
"repository": {
|
|
7
14
|
"type": "git",
|
|
@@ -16,7 +23,9 @@
|
|
|
16
23
|
"#src/*": "./dist/*"
|
|
17
24
|
},
|
|
18
25
|
"exports": {
|
|
19
|
-
".": "./dist/index.js"
|
|
26
|
+
".": "./dist/index.js",
|
|
27
|
+
"./template-extractor": "./dist/template-extractor/index.js",
|
|
28
|
+
"./plugins": "./dist/plugins/index.js"
|
|
20
29
|
},
|
|
21
30
|
"main": "dist/index.js",
|
|
22
31
|
"files": [
|
|
@@ -40,19 +49,18 @@
|
|
|
40
49
|
"fastify": "5.3.2",
|
|
41
50
|
"fastify-plugin": "5.0.1",
|
|
42
51
|
"fastify-type-provider-zod": "4.0.1",
|
|
43
|
-
"globby": "^14.0.2",
|
|
44
52
|
"immer": "10.1.1",
|
|
45
53
|
"inflection": "3.0.0",
|
|
46
54
|
"mime": "^4.0.3",
|
|
47
55
|
"open": "10.1.0",
|
|
48
56
|
"pino": "9.5.0",
|
|
49
57
|
"zod": "3.24.1",
|
|
50
|
-
"@baseplate-dev/core-generators": "0.1
|
|
51
|
-
"@baseplate-dev/fastify-generators": "0.1
|
|
52
|
-
"@baseplate-dev/project-builder-lib": "0.1
|
|
53
|
-
"@baseplate-dev/react-generators": "0.1
|
|
54
|
-
"@baseplate-dev/sync": "0.1
|
|
55
|
-
"@baseplate-dev/utils": "0.1
|
|
58
|
+
"@baseplate-dev/core-generators": "0.2.1",
|
|
59
|
+
"@baseplate-dev/fastify-generators": "0.2.1",
|
|
60
|
+
"@baseplate-dev/project-builder-lib": "0.2.1",
|
|
61
|
+
"@baseplate-dev/react-generators": "0.2.1",
|
|
62
|
+
"@baseplate-dev/sync": "0.2.1",
|
|
63
|
+
"@baseplate-dev/utils": "0.2.1"
|
|
56
64
|
},
|
|
57
65
|
"devDependencies": {
|
|
58
66
|
"@types/node": "^22.0.0",
|
|
@@ -61,7 +69,7 @@
|
|
|
61
69
|
"prettier": "3.5.3",
|
|
62
70
|
"typescript": "5.7.3",
|
|
63
71
|
"vitest": "3.0.7",
|
|
64
|
-
"@baseplate-dev/tools": "0.1
|
|
72
|
+
"@baseplate-dev/tools": "0.2.1"
|
|
65
73
|
},
|
|
66
74
|
"engines": {
|
|
67
75
|
"node": "^22.0.0"
|