@breadstone-infrastructure/prisma-seeds 0.0.231
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/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +284 -0
- package/ai/AISeedGenerator.d.ts +127 -0
- package/ai/AISeedGenerator.d.ts.map +1 -0
- package/ai/AISeedGenerator.js +438 -0
- package/ai/AISeedGenerator.js.map +1 -0
- package/ai/AISeedTypes.d.ts +138 -0
- package/ai/AISeedTypes.d.ts.map +1 -0
- package/ai/AISeedTypes.js +3 -0
- package/ai/AISeedTypes.js.map +1 -0
- package/ai/PrismaModelAnalyzer.d.ts +36 -0
- package/ai/PrismaModelAnalyzer.d.ts.map +1 -0
- package/ai/PrismaModelAnalyzer.js +110 -0
- package/ai/PrismaModelAnalyzer.js.map +1 -0
- package/ai/PrismaTypeSchemaGenerator.d.ts +38 -0
- package/ai/PrismaTypeSchemaGenerator.d.ts.map +1 -0
- package/ai/PrismaTypeSchemaGenerator.js +71 -0
- package/ai/PrismaTypeSchemaGenerator.js.map +1 -0
- package/ai/createAISeeder.d.ts +11 -0
- package/ai/createAISeeder.d.ts.map +1 -0
- package/ai/createAISeeder.js +72 -0
- package/ai/createAISeeder.js.map +1 -0
- package/ai/index.d.ts +6 -0
- package/ai/index.d.ts.map +1 -0
- package/ai/index.js +5 -0
- package/ai/index.js.map +1 -0
- package/assets/AssetManager.d.ts +213 -0
- package/assets/AssetManager.d.ts.map +1 -0
- package/assets/AssetManager.js +460 -0
- package/assets/AssetManager.js.map +1 -0
- package/assets/IImageTransformOptions.d.ts +42 -0
- package/assets/IImageTransformOptions.d.ts.map +1 -0
- package/assets/IImageTransformOptions.js +22 -0
- package/assets/IImageTransformOptions.js.map +1 -0
- package/assets/adapters/BlobAdapterFactory.d.ts +21 -0
- package/assets/adapters/BlobAdapterFactory.d.ts.map +1 -0
- package/assets/adapters/BlobAdapterFactory.js +3 -0
- package/assets/adapters/BlobAdapterFactory.js.map +1 -0
- package/assets/adapters/CloudflareR2BlobAdapter.d.ts +97 -0
- package/assets/adapters/CloudflareR2BlobAdapter.d.ts.map +1 -0
- package/assets/adapters/CloudflareR2BlobAdapter.js +265 -0
- package/assets/adapters/CloudflareR2BlobAdapter.js.map +1 -0
- package/assets/adapters/EmptyBlobAdapter.d.ts +42 -0
- package/assets/adapters/EmptyBlobAdapter.d.ts.map +1 -0
- package/assets/adapters/EmptyBlobAdapter.js +65 -0
- package/assets/adapters/EmptyBlobAdapter.js.map +1 -0
- package/assets/adapters/LocalFileAdapter.d.ts +34 -0
- package/assets/adapters/LocalFileAdapter.d.ts.map +1 -0
- package/assets/adapters/LocalFileAdapter.js +74 -0
- package/assets/adapters/LocalFileAdapter.js.map +1 -0
- package/assets/adapters/VercelBlobAdapter.d.ts +73 -0
- package/assets/adapters/VercelBlobAdapter.d.ts.map +1 -0
- package/assets/adapters/VercelBlobAdapter.js +168 -0
- package/assets/adapters/VercelBlobAdapter.js.map +1 -0
- package/assets/adapters/abstracts/BlobAdapterBase.d.ts +62 -0
- package/assets/adapters/abstracts/BlobAdapterBase.d.ts.map +1 -0
- package/assets/adapters/abstracts/BlobAdapterBase.js +58 -0
- package/assets/adapters/abstracts/BlobAdapterBase.js.map +1 -0
- package/assets/adapters/abstracts/HttpBlobAdapterBase.d.ts +43 -0
- package/assets/adapters/abstracts/HttpBlobAdapterBase.d.ts.map +1 -0
- package/assets/adapters/abstracts/HttpBlobAdapterBase.js +88 -0
- package/assets/adapters/abstracts/HttpBlobAdapterBase.js.map +1 -0
- package/assets/adapters/createBlobAdapter.d.ts +47 -0
- package/assets/adapters/createBlobAdapter.d.ts.map +1 -0
- package/assets/adapters/createBlobAdapter.js +63 -0
- package/assets/adapters/createBlobAdapter.js.map +1 -0
- package/assets/adapters/index.d.ts +11 -0
- package/assets/adapters/index.d.ts.map +1 -0
- package/assets/adapters/index.js +7 -0
- package/assets/adapters/index.js.map +1 -0
- package/assets/adapters/interfaces/IBlobAdapter.d.ts +41 -0
- package/assets/adapters/interfaces/IBlobAdapter.d.ts.map +1 -0
- package/assets/adapters/interfaces/IBlobAdapter.js +3 -0
- package/assets/adapters/interfaces/IBlobAdapter.js.map +1 -0
- package/assets/adapters/interfaces/IBlobAdapterConfig.d.ts +16 -0
- package/assets/adapters/interfaces/IBlobAdapterConfig.d.ts.map +1 -0
- package/assets/adapters/interfaces/IBlobAdapterConfig.js +2 -0
- package/assets/adapters/interfaces/IBlobAdapterConfig.js.map +1 -0
- package/assets/adapters/interfaces/IBlobUploadResult.d.ts +24 -0
- package/assets/adapters/interfaces/IBlobUploadResult.d.ts.map +1 -0
- package/assets/adapters/interfaces/IBlobUploadResult.js +2 -0
- package/assets/adapters/interfaces/IBlobUploadResult.js.map +1 -0
- package/base/BaseSeeder.d.ts +21 -0
- package/base/BaseSeeder.d.ts.map +1 -0
- package/base/BaseSeeder.js +45 -0
- package/base/BaseSeeder.js.map +1 -0
- package/base/functionalSeeder.d.ts +31 -0
- package/base/functionalSeeder.d.ts.map +1 -0
- package/base/functionalSeeder.js +33 -0
- package/base/functionalSeeder.js.map +1 -0
- package/cli/Cli.d.ts +2 -0
- package/cli/Cli.d.ts.map +1 -0
- package/cli/Cli.js +32 -0
- package/cli/Cli.js.map +1 -0
- package/cli/CliArgs.d.ts +2 -0
- package/cli/CliArgs.d.ts.map +1 -0
- package/cli/CliArgs.js +133 -0
- package/cli/CliArgs.js.map +1 -0
- package/cli/CliArgsConfig.d.ts +2 -0
- package/cli/CliArgsConfig.d.ts.map +1 -0
- package/cli/CliArgsConfig.js +15 -0
- package/cli/CliArgsConfig.js.map +1 -0
- package/cli/CliRun.d.ts +2 -0
- package/cli/CliRun.d.ts.map +1 -0
- package/cli/CliRun.js +34 -0
- package/cli/CliRun.js.map +1 -0
- package/cli/commands/SeedCommand.d.ts +2 -0
- package/cli/commands/SeedCommand.d.ts.map +1 -0
- package/cli/commands/SeedCommand.js +73 -0
- package/cli/commands/SeedCommand.js.map +1 -0
- package/cli/commands/SeedCommandArgsConfig.d.ts +2 -0
- package/cli/commands/SeedCommandArgsConfig.d.ts.map +1 -0
- package/cli/commands/SeedCommandArgsConfig.js +31 -0
- package/cli/commands/SeedCommandArgsConfig.js.map +1 -0
- package/cli/seed.d.ts +2 -0
- package/cli/seed.d.ts.map +1 -0
- package/cli/seed.js +42 -0
- package/cli/seed.js.map +1 -0
- package/config/IAssetConfig.d.ts +36 -0
- package/config/IAssetConfig.d.ts.map +1 -0
- package/config/IAssetConfig.js +3 -0
- package/config/IAssetConfig.js.map +1 -0
- package/config/IComposedSeedConfig.d.ts +32 -0
- package/config/IComposedSeedConfig.d.ts.map +1 -0
- package/config/IComposedSeedConfig.js +3 -0
- package/config/IComposedSeedConfig.js.map +1 -0
- package/config/ISeedConfig.d.ts +75 -0
- package/config/ISeedConfig.d.ts.map +1 -0
- package/config/ISeedConfig.js +3 -0
- package/config/ISeedConfig.js.map +1 -0
- package/config/ISeedContext.d.ts +92 -0
- package/config/ISeedContext.d.ts.map +1 -0
- package/config/ISeedContext.js +3 -0
- package/config/ISeedContext.js.map +1 -0
- package/config/ISeedDefinition.d.ts +38 -0
- package/config/ISeedDefinition.d.ts.map +1 -0
- package/config/ISeedDefinition.js +3 -0
- package/config/ISeedDefinition.js.map +1 -0
- package/config/ISeedFactory.d.ts +15 -0
- package/config/ISeedFactory.d.ts.map +1 -0
- package/config/ISeedFactory.js +3 -0
- package/config/ISeedFactory.js.map +1 -0
- package/config/ISeedOptions.d.ts +44 -0
- package/config/ISeedOptions.d.ts.map +1 -0
- package/config/ISeedOptions.js +2 -0
- package/config/ISeedOptions.js.map +1 -0
- package/config/ISeedResult.d.ts +44 -0
- package/config/ISeedResult.d.ts.map +1 -0
- package/config/ISeedResult.js +2 -0
- package/config/ISeedResult.js.map +1 -0
- package/config/ISeeder.d.ts +37 -0
- package/config/ISeeder.d.ts.map +1 -0
- package/config/ISeeder.js +3 -0
- package/config/ISeeder.js.map +1 -0
- package/config/createAdapter.d.ts +13 -0
- package/config/createAdapter.d.ts.map +1 -0
- package/config/createAdapter.js +16 -0
- package/config/createAdapter.js.map +1 -0
- package/config/createSeed.d.ts +6 -0
- package/config/createSeed.d.ts.map +1 -0
- package/config/createSeed.js +16 -0
- package/config/createSeed.js.map +1 -0
- package/config/defineConfig.d.ts +27 -0
- package/config/defineConfig.d.ts.map +1 -0
- package/config/defineConfig.js +35 -0
- package/config/defineConfig.js.map +1 -0
- package/discovery/SeedConfigDiscovery.d.ts +16 -0
- package/discovery/SeedConfigDiscovery.d.ts.map +1 -0
- package/discovery/SeedConfigDiscovery.js +137 -0
- package/discovery/SeedConfigDiscovery.js.map +1 -0
- package/index.d.ts +32 -0
- package/index.d.ts.map +1 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/json/JsonReferenceResolver.d.ts +23 -0
- package/json/JsonReferenceResolver.d.ts.map +1 -0
- package/json/JsonReferenceResolver.js +99 -0
- package/json/JsonReferenceResolver.js.map +1 -0
- package/json/JsonSchemaValidator.d.ts +23 -0
- package/json/JsonSchemaValidator.d.ts.map +1 -0
- package/json/JsonSchemaValidator.js +98 -0
- package/json/JsonSchemaValidator.js.map +1 -0
- package/json/JsonSeedLoader.d.ts +33 -0
- package/json/JsonSeedLoader.d.ts.map +1 -0
- package/json/JsonSeedLoader.js +176 -0
- package/json/JsonSeedLoader.js.map +1 -0
- package/json/JsonSeedTypes.d.ts +204 -0
- package/json/JsonSeedTypes.d.ts.map +1 -0
- package/json/JsonSeedTypes.js +3 -0
- package/json/JsonSeedTypes.js.map +1 -0
- package/json/createJsonSeeder.d.ts +13 -0
- package/json/createJsonSeeder.d.ts.map +1 -0
- package/json/createJsonSeeder.js +240 -0
- package/json/createJsonSeeder.js.map +1 -0
- package/json/index.d.ts +6 -0
- package/json/index.d.ts.map +1 -0
- package/json/index.js +7 -0
- package/json/index.js.map +1 -0
- package/logging/ISeedLogger.d.ts +55 -0
- package/logging/ISeedLogger.d.ts.map +1 -0
- package/logging/ISeedLogger.js +3 -0
- package/logging/ISeedLogger.js.map +1 -0
- package/logging/LogLevel.d.ts +30 -0
- package/logging/LogLevel.d.ts.map +1 -0
- package/logging/LogLevel.js +37 -0
- package/logging/LogLevel.js.map +1 -0
- package/logging/SeedLogger.d.ts +24 -0
- package/logging/SeedLogger.d.ts.map +1 -0
- package/logging/SeedLogger.js +94 -0
- package/logging/SeedLogger.js.map +1 -0
- package/orchestration/SeedOrchestrator.d.ts +30 -0
- package/orchestration/SeedOrchestrator.d.ts.map +1 -0
- package/orchestration/SeedOrchestrator.js +262 -0
- package/orchestration/SeedOrchestrator.js.map +1 -0
- package/package.json +27 -0
- package/resolvers/EntityResolver.d.ts +43 -0
- package/resolvers/EntityResolver.d.ts.map +1 -0
- package/resolvers/EntityResolver.js +95 -0
- package/resolvers/EntityResolver.js.map +1 -0
- package/utils/AssetReferenceResolver.d.ts +49 -0
- package/utils/AssetReferenceResolver.d.ts.map +1 -0
- package/utils/AssetReferenceResolver.js +62 -0
- package/utils/AssetReferenceResolver.js.map +1 -0
- package/utils/EntityLookupCache.d.ts +47 -0
- package/utils/EntityLookupCache.d.ts.map +1 -0
- package/utils/EntityLookupCache.js +64 -0
- package/utils/EntityLookupCache.js.map +1 -0
- package/utils/ISeedRandom.d.ts +70 -0
- package/utils/ISeedRandom.d.ts.map +1 -0
- package/utils/ISeedRandom.js +3 -0
- package/utils/ISeedRandom.js.map +1 -0
- package/utils/LocalizationToolkit.d.ts +125 -0
- package/utils/LocalizationToolkit.d.ts.map +1 -0
- package/utils/LocalizationToolkit.js +131 -0
- package/utils/LocalizationToolkit.js.map +1 -0
- package/utils/SeededRandom.d.ts +15 -0
- package/utils/SeededRandom.d.ts.map +1 -0
- package/utils/SeededRandom.js +56 -0
- package/utils/SeededRandom.js.map +1 -0
- package/utils/StringArrayToolkit.d.ts +25 -0
- package/utils/StringArrayToolkit.d.ts.map +1 -0
- package/utils/StringArrayToolkit.js +56 -0
- package/utils/StringArrayToolkit.js.map +1 -0
- package/utils/StringValueGuard.d.ts +24 -0
- package/utils/StringValueGuard.d.ts.map +1 -0
- package/utils/StringValueGuard.js +46 -0
- package/utils/StringValueGuard.js.map +1 -0
- package/utils/WarningCollector.d.ts +40 -0
- package/utils/WarningCollector.d.ts.map +1 -0
- package/utils/WarningCollector.js +83 -0
- package/utils/WarningCollector.js.map +1 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
import { Path } from '@breadstone-infrastructure/utilities';
|
|
4
|
+
import { createFunctionalSeeder } from '../base/functionalSeeder.js';
|
|
5
|
+
import { JsonSeedLoader } from './JsonSeedLoader.js';
|
|
6
|
+
import { JsonReferenceResolver } from './JsonReferenceResolver.js';
|
|
7
|
+
// #endregion
|
|
8
|
+
/**
|
|
9
|
+
* Create a JSON-based seeder that loads data from JSON files.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
* @template TJson The type of the JSON data
|
|
13
|
+
* @template TPrisma The type of the Prisma input
|
|
14
|
+
* @param config JSON seed configuration
|
|
15
|
+
* @returns A functional seeder that uses JSON files
|
|
16
|
+
*/
|
|
17
|
+
export function createJsonSeeder(config) {
|
|
18
|
+
const resolveBasePath = (seedContext) => {
|
|
19
|
+
if (seedContext.seedConfigPath) {
|
|
20
|
+
return dirname(seedContext.seedConfigPath);
|
|
21
|
+
}
|
|
22
|
+
return process.cwd();
|
|
23
|
+
};
|
|
24
|
+
return createFunctionalSeeder({
|
|
25
|
+
name: config.name,
|
|
26
|
+
run: async (context, utilities) => {
|
|
27
|
+
const loader = new JsonSeedLoader(context.logger);
|
|
28
|
+
const basePath = resolveBasePath(context);
|
|
29
|
+
const wrapperKeys = config.wrapperKey
|
|
30
|
+
? Array.isArray(config.wrapperKey)
|
|
31
|
+
? config.wrapperKey
|
|
32
|
+
: [config.wrapperKey]
|
|
33
|
+
: undefined;
|
|
34
|
+
const loadOptions = wrapperKeys && wrapperKeys.length > 0 ? { wrapperKeys } : undefined;
|
|
35
|
+
context.logger.info(`Loading JSON data from: ${JSON.stringify(config.sources)}`);
|
|
36
|
+
const validationResult = config.schema
|
|
37
|
+
? await loader.loadWithSchema(config.sources, config.schema, basePath, loadOptions)
|
|
38
|
+
: {
|
|
39
|
+
isValid: true,
|
|
40
|
+
errors: [],
|
|
41
|
+
data: await loader.load(config.sources, basePath, loadOptions)
|
|
42
|
+
};
|
|
43
|
+
if (!validationResult.isValid) {
|
|
44
|
+
context.logger.error(`JSON validation failed: ${validationResult.errors.join(', ')}`);
|
|
45
|
+
return utilities.createSeedResult(0, 0, validationResult.errors);
|
|
46
|
+
}
|
|
47
|
+
let items = validationResult.data;
|
|
48
|
+
if (!Array.isArray(items)) {
|
|
49
|
+
items = [items];
|
|
50
|
+
}
|
|
51
|
+
context.logger.info(`Loaded ${items.length} items from JSON files`);
|
|
52
|
+
// Resolve references if configured
|
|
53
|
+
if (config.references) {
|
|
54
|
+
const resolver = new JsonReferenceResolver(config.references);
|
|
55
|
+
items = (await resolver.resolve(items, context));
|
|
56
|
+
context.logger.debug('Resolved all references');
|
|
57
|
+
}
|
|
58
|
+
// Apply mapper pre-processing FIRST
|
|
59
|
+
if (config.mapper?.preProcess) {
|
|
60
|
+
items = await Promise.all(items.map((item) => {
|
|
61
|
+
if (config.mapper?.preProcess) {
|
|
62
|
+
return config.mapper.preProcess(item, context);
|
|
63
|
+
}
|
|
64
|
+
return item;
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
// Store unique field values by index AFTER preprocessing
|
|
68
|
+
const uniqueFieldsByIndex = [];
|
|
69
|
+
if (config.upsert) {
|
|
70
|
+
const uniqueFields = Array.isArray(config.upsert.uniqueFields)
|
|
71
|
+
? config.upsert.uniqueFields
|
|
72
|
+
: [config.upsert.uniqueFields];
|
|
73
|
+
for (let idx = 0; idx < items.length; idx++) {
|
|
74
|
+
const item = items[idx];
|
|
75
|
+
const metadata = {};
|
|
76
|
+
for (const field of uniqueFields) {
|
|
77
|
+
metadata[field] = item[field];
|
|
78
|
+
}
|
|
79
|
+
uniqueFieldsByIndex.push(metadata);
|
|
80
|
+
}
|
|
81
|
+
} // Persist to database
|
|
82
|
+
const { result, duration } = await utilities.measureExecutionTime(async () => {
|
|
83
|
+
let created = 0;
|
|
84
|
+
let updated = 0;
|
|
85
|
+
const errors = [];
|
|
86
|
+
const modelName = config.model.charAt(0).toLowerCase() + config.model.slice(1);
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
+
const prismaRecord = context.prisma;
|
|
89
|
+
const modelDelegate = prismaRecord[modelName];
|
|
90
|
+
if (!modelDelegate) {
|
|
91
|
+
throw new Error(`Prisma model "${config.model}" not found`);
|
|
92
|
+
}
|
|
93
|
+
const batchSize = config.batch?.size ?? items.length; // Process all items at once if no batch size specified
|
|
94
|
+
const useTransaction = config.batch?.useTransaction ?? false;
|
|
95
|
+
for (let i = 0; i < items.length; i += batchSize) {
|
|
96
|
+
const batch = items.slice(i, i + batchSize);
|
|
97
|
+
const processBatch = async () => {
|
|
98
|
+
for (let batchIndex = 0; batchIndex < batch.length; batchIndex++) {
|
|
99
|
+
const item = batch[batchIndex];
|
|
100
|
+
const itemIndex = i + batchIndex;
|
|
101
|
+
try {
|
|
102
|
+
// Handle upsert or create
|
|
103
|
+
if (config.upsert) {
|
|
104
|
+
const uniqueFields = Array.isArray(config.upsert.uniqueFields)
|
|
105
|
+
? config.upsert.uniqueFields
|
|
106
|
+
: [config.upsert.uniqueFields];
|
|
107
|
+
// Build where clause from preserved original unique fields by index
|
|
108
|
+
const whereClause = {};
|
|
109
|
+
const originalFields = uniqueFieldsByIndex[itemIndex];
|
|
110
|
+
if (originalFields) {
|
|
111
|
+
Object.assign(whereClause, originalFields);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
for (const field of uniqueFields) {
|
|
115
|
+
whereClause[field] = item[field];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Map to Prisma input after building where clause
|
|
119
|
+
const createInput = config.mapper
|
|
120
|
+
? await config.mapper.mapToCreate(item, context)
|
|
121
|
+
: item;
|
|
122
|
+
const existing = await modelDelegate.findFirst({
|
|
123
|
+
where: whereClause
|
|
124
|
+
});
|
|
125
|
+
if (existing && config.upsert.updateExisting) {
|
|
126
|
+
const updateInput = config.mapper?.mapToUpdate
|
|
127
|
+
? await config.mapper.mapToUpdate(item, existing, context)
|
|
128
|
+
: createInput;
|
|
129
|
+
// Use id if available and not null, otherwise use compound format for composite keys
|
|
130
|
+
let updateWhere;
|
|
131
|
+
if (existing.id !== undefined && existing.id !== null) {
|
|
132
|
+
updateWhere = { id: existing.id };
|
|
133
|
+
}
|
|
134
|
+
else if (uniqueFields.length > 1) {
|
|
135
|
+
// Composite key: format as fieldA_fieldB: { fieldA, fieldB }
|
|
136
|
+
const compoundKey = uniqueFields.join('_');
|
|
137
|
+
updateWhere = { [compoundKey]: whereClause };
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
updateWhere = whereClause;
|
|
141
|
+
}
|
|
142
|
+
await modelDelegate.update({
|
|
143
|
+
where: updateWhere,
|
|
144
|
+
data: updateInput
|
|
145
|
+
});
|
|
146
|
+
updated += 1;
|
|
147
|
+
}
|
|
148
|
+
else if (!existing) {
|
|
149
|
+
await modelDelegate.create({
|
|
150
|
+
data: createInput
|
|
151
|
+
});
|
|
152
|
+
created += 1;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// No upsert, just create - map input here
|
|
157
|
+
const createInput = config.mapper
|
|
158
|
+
? await config.mapper.mapToCreate(item, context)
|
|
159
|
+
: item;
|
|
160
|
+
await modelDelegate.create({
|
|
161
|
+
data: createInput
|
|
162
|
+
});
|
|
163
|
+
created += 1;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
const errorMsg = `Failed to process item: ${error}`;
|
|
168
|
+
context.logger.error(errorMsg);
|
|
169
|
+
errors.push(errorMsg);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
if (useTransaction) {
|
|
174
|
+
await context.prisma.$transaction(async () => {
|
|
175
|
+
await processBatch();
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
await processBatch();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
created,
|
|
184
|
+
updated,
|
|
185
|
+
errors
|
|
186
|
+
};
|
|
187
|
+
});
|
|
188
|
+
if (result.created > 0 || result.updated > 0) {
|
|
189
|
+
context.logger.summary(`${result.created} created, ${result.updated} updated (${duration}ms)`);
|
|
190
|
+
}
|
|
191
|
+
// Log warning summary if any warnings were collected
|
|
192
|
+
if (context.warnings?.hasWarnings()) {
|
|
193
|
+
context.warnings.logSummary(5); // Show top 5 unique warnings
|
|
194
|
+
}
|
|
195
|
+
return utilities.createSeedResult(result.created + result.updated, duration, result.errors, [], {
|
|
196
|
+
created: result.created,
|
|
197
|
+
updated: result.updated
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
validate: async (context) => {
|
|
201
|
+
if (!config.enabled) {
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
// Check if model exists
|
|
205
|
+
const modelName = config.model.charAt(0).toLowerCase() + config.model.slice(1);
|
|
206
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
207
|
+
const prismaRecord = context.prisma;
|
|
208
|
+
const modelDelegate = prismaRecord[modelName];
|
|
209
|
+
if (!modelDelegate) {
|
|
210
|
+
context.logger.warn(`Prisma model "${config.model}" not found`);
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
// Check if source files exist
|
|
214
|
+
const basePath = resolveBasePath(context);
|
|
215
|
+
const sources = Array.isArray(config.sources) ? config.sources : [config.sources];
|
|
216
|
+
for (const source of sources) {
|
|
217
|
+
const absoluteSource = Path.isAbsolute(source) ? source : Path.resolve(basePath, source);
|
|
218
|
+
const files = Path.glob(absoluteSource);
|
|
219
|
+
if (files.length === 0) {
|
|
220
|
+
context.logger.warn(`No JSON files found matching: ${source}`);
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return true;
|
|
225
|
+
},
|
|
226
|
+
cleanup: async (context) => {
|
|
227
|
+
if (config.enabled) {
|
|
228
|
+
const modelName = config.model.charAt(0).toLowerCase() + config.model.slice(1);
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
230
|
+
const prismaRecord = context.prisma;
|
|
231
|
+
const modelDelegate = prismaRecord[modelName];
|
|
232
|
+
if (modelDelegate) {
|
|
233
|
+
context.logger.debug(`Cleaning up JSON-seeded ${config.model} data...`);
|
|
234
|
+
await modelDelegate.deleteMany({});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=createJsonSeeder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createJsonSeeder.js","sourceRoot":"","sources":["../../src/json/createJsonSeeder.ts"],"names":[],"mappings":"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"}
|
package/json/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { IJsonSeedConfig, IJsonSeedMapper, IJsonReferenceConfig, IJsonReferenceResolver, IJsonValidationResult, IJsonSeedLoadOptions } from './JsonSeedTypes.js';
|
|
2
|
+
export { JsonSeedLoader } from './JsonSeedLoader.js';
|
|
3
|
+
export { JsonSchemaValidator } from './JsonSchemaValidator.js';
|
|
4
|
+
export { JsonReferenceResolver } from './JsonReferenceResolver.js';
|
|
5
|
+
export { createJsonSeeder } from './createJsonSeeder.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/json/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACR,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/json/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// #region Exports
|
|
2
|
+
export { JsonSeedLoader } from './JsonSeedLoader.js';
|
|
3
|
+
export { JsonSchemaValidator } from './JsonSchemaValidator.js';
|
|
4
|
+
export { JsonReferenceResolver } from './JsonReferenceResolver.js';
|
|
5
|
+
export { createJsonSeeder } from './createJsonSeeder.js';
|
|
6
|
+
// #endregion
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/json/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAUlB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,aAAa"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger interface for seeding operations.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export interface ISeedLogger {
|
|
7
|
+
/**
|
|
8
|
+
* Log an informational message.
|
|
9
|
+
*
|
|
10
|
+
* @param message The message to log.
|
|
11
|
+
*/
|
|
12
|
+
info(message: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Log a warning message.
|
|
15
|
+
*
|
|
16
|
+
* @param message The message to log.
|
|
17
|
+
*/
|
|
18
|
+
warn(message: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Log an error message.
|
|
21
|
+
*
|
|
22
|
+
* @param message The message to log.
|
|
23
|
+
*/
|
|
24
|
+
error(message: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Log a debug message.
|
|
27
|
+
*
|
|
28
|
+
* @param message The message to log.
|
|
29
|
+
*/
|
|
30
|
+
debug(message: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Start a log group with a title.
|
|
33
|
+
* Subsequent logs will be indented until endGroup() is called.
|
|
34
|
+
*
|
|
35
|
+
* @param title The group title.
|
|
36
|
+
*/
|
|
37
|
+
startGroup(title: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* End the current log group and restore previous indentation.
|
|
40
|
+
*/
|
|
41
|
+
endGroup(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Log a success message.
|
|
44
|
+
*
|
|
45
|
+
* @param message The message to log.
|
|
46
|
+
*/
|
|
47
|
+
success(message: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* Log a summary line (typically used for aggregated information).
|
|
50
|
+
*
|
|
51
|
+
* @param message The message to log.
|
|
52
|
+
*/
|
|
53
|
+
summary(message: string): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ISeedLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISeedLogger.d.ts","sourceRoot":"","sources":["../../src/logging/ISeedLogger.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAIxB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAIlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISeedLogger.js","sourceRoot":"","sources":["../../src/logging/ISeedLogger.ts"],"names":[],"mappings":"AAAA,mCAAmC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available log types.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type LogType = 'error' | 'warn' | 'info' | 'debug' | 'success' | 'summary';
|
|
7
|
+
/**
|
|
8
|
+
* Log level configuration.
|
|
9
|
+
* Defines which log types should be displayed.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export type LogLevel = LogType | 'silent';
|
|
14
|
+
/**
|
|
15
|
+
* Default log level.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_LOG_LEVEL: LogLevel;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a log type should be displayed based on the configured log level.
|
|
22
|
+
*
|
|
23
|
+
* @param logType The type of log message
|
|
24
|
+
* @param configuredLevel The configured log level
|
|
25
|
+
* @returns True if the log should be displayed
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export declare function shouldLog(logType: LogType, configuredLevel: LogLevel): boolean;
|
|
30
|
+
//# sourceMappingURL=LogLevel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogLevel.d.ts","sourceRoot":"","sources":["../../src/logging/LogLevel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAElF;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAiB,CAAC;AAgBlD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,GAAG,OAAO,CAS9E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default log level.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_LOG_LEVEL = 'info';
|
|
7
|
+
/**
|
|
8
|
+
* Log level hierarchy (lower number = higher priority).
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export const LOG_LEVEL_PRIORITY = {
|
|
13
|
+
error: 0,
|
|
14
|
+
warn: 1,
|
|
15
|
+
info: 2,
|
|
16
|
+
success: 2,
|
|
17
|
+
summary: 2,
|
|
18
|
+
debug: 3
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Check if a log type should be displayed based on the configured log level.
|
|
22
|
+
*
|
|
23
|
+
* @param logType The type of log message
|
|
24
|
+
* @param configuredLevel The configured log level
|
|
25
|
+
* @returns True if the log should be displayed
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export function shouldLog(logType, configuredLevel) {
|
|
30
|
+
if (configuredLevel === 'silent') {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const configuredPriority = LOG_LEVEL_PRIORITY[configuredLevel];
|
|
34
|
+
const logTypePriority = LOG_LEVEL_PRIORITY[logType];
|
|
35
|
+
return logTypePriority <= configuredPriority;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=LogLevel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogLevel.js","sourceRoot":"","sources":["../../src/logging/LogLevel.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa,MAAM,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA4B;IACvD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;CACX,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,eAAyB;IACjE,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,eAA0B,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEpD,OAAO,eAAe,IAAI,kBAAkB,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ISeedLogger } from './ISeedLogger.js';
|
|
2
|
+
import { ConsoleLogger } from '@breadstone-infrastructure/utilities';
|
|
3
|
+
import type { LogLevel } from './LogLevel.js';
|
|
4
|
+
/**
|
|
5
|
+
* The `SeedLogger` class with support for grouped/hierarchical logging.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare class SeedLogger extends ConsoleLogger implements ISeedLogger {
|
|
10
|
+
private _groupStack;
|
|
11
|
+
private _isGroupActive;
|
|
12
|
+
private readonly _logLevel;
|
|
13
|
+
constructor(logLevel?: LogLevel);
|
|
14
|
+
info(message: string): void;
|
|
15
|
+
warn(message: string): void;
|
|
16
|
+
error(message: string): void;
|
|
17
|
+
debug(message: string): void;
|
|
18
|
+
success(message: string): void;
|
|
19
|
+
summary(message: string): void;
|
|
20
|
+
startGroup(title: string): void;
|
|
21
|
+
endGroup(): void;
|
|
22
|
+
private _getIndent;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=SeedLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeedLogger.d.ts","sourceRoot":"","sources":["../../src/logging/SeedLogger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAQ,aAAa,EAA8G,MAAM,sCAAsC,CAAC;AACvL,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,aAAc,YAAW,WAAW;IAIhE,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;gBAMlB,QAAQ,GAAE,QAA4B;IASzC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQrC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgB/B,QAAQ,IAAI,IAAI;IAUvB,OAAO,CAAC,UAAU;CAWrB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { blue, ConsoleLogger, magenta, red, yellow, t, bgBlue, bgYellow, bgRed, bgMagenta, bold, white, black, green, bgGreen, gray, dim } from '@breadstone-infrastructure/utilities';
|
|
3
|
+
import { DEFAULT_LOG_LEVEL, shouldLog } from './LogLevel.js';
|
|
4
|
+
// #endregion
|
|
5
|
+
/**
|
|
6
|
+
* The `SeedLogger` class with support for grouped/hierarchical logging.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export class SeedLogger extends ConsoleLogger {
|
|
11
|
+
// #region Fields
|
|
12
|
+
_groupStack = [];
|
|
13
|
+
_isGroupActive = false;
|
|
14
|
+
_logLevel;
|
|
15
|
+
// #endregion
|
|
16
|
+
// #region Ctor
|
|
17
|
+
constructor(logLevel = DEFAULT_LOG_LEVEL) {
|
|
18
|
+
super();
|
|
19
|
+
this._logLevel = logLevel;
|
|
20
|
+
}
|
|
21
|
+
// #endregion
|
|
22
|
+
// #region Methods
|
|
23
|
+
info(message) {
|
|
24
|
+
if (!shouldLog('info', this._logLevel)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const indent = this._getIndent();
|
|
28
|
+
super.info(t `${indent}${bgBlue(bold(white(' info ')))} ${blue(message)}`);
|
|
29
|
+
}
|
|
30
|
+
warn(message) {
|
|
31
|
+
if (!shouldLog('warn', this._logLevel)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const indent = this._getIndent();
|
|
35
|
+
super.warn(t `${indent}${bgYellow(bold(black(' warn ')))} ${yellow(message)}`);
|
|
36
|
+
}
|
|
37
|
+
error(message) {
|
|
38
|
+
if (!shouldLog('error', this._logLevel)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const indent = this._getIndent();
|
|
42
|
+
super.error(t `${indent}${bgRed(bold(black(' error ')))} ${red(message)}`);
|
|
43
|
+
}
|
|
44
|
+
debug(message) {
|
|
45
|
+
if (!shouldLog('debug', this._logLevel)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const indent = this._getIndent();
|
|
49
|
+
super.debug(t `${indent}${bgMagenta(bold(black(' debug ')))} ${magenta(message)}`);
|
|
50
|
+
}
|
|
51
|
+
success(message) {
|
|
52
|
+
if (!shouldLog('success', this._logLevel)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const indent = this._getIndent();
|
|
56
|
+
super.info(t `${indent}${bgGreen(bold(black(' ✓ ')))} ${green(message)}`);
|
|
57
|
+
}
|
|
58
|
+
summary(message) {
|
|
59
|
+
if (!shouldLog('summary', this._logLevel)) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const indent = this._getIndent();
|
|
63
|
+
super.info(t `${indent}${dim(gray(' ╰─'))} ${gray(message)}`);
|
|
64
|
+
}
|
|
65
|
+
startGroup(title) {
|
|
66
|
+
if (!shouldLog('info', this._logLevel)) {
|
|
67
|
+
// Still track group stack even if not logging
|
|
68
|
+
this._groupStack.push(title);
|
|
69
|
+
this._isGroupActive = true;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const indent = this._getIndent();
|
|
73
|
+
this._groupStack.push(title);
|
|
74
|
+
this._isGroupActive = true;
|
|
75
|
+
const prefix = this._groupStack.length === 1 ? '┌' : '├';
|
|
76
|
+
super.info(t `${indent}${dim(gray(` ${prefix}─`))} ${bold(white(title))}`);
|
|
77
|
+
}
|
|
78
|
+
endGroup() {
|
|
79
|
+
if (this._groupStack.length > 0) {
|
|
80
|
+
this._groupStack.pop();
|
|
81
|
+
}
|
|
82
|
+
if (this._groupStack.length === 0) {
|
|
83
|
+
this._isGroupActive = false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
_getIndent() {
|
|
87
|
+
if (this._groupStack.length === 0) {
|
|
88
|
+
return ' ';
|
|
89
|
+
}
|
|
90
|
+
// Each group level adds 2 spaces of indentation
|
|
91
|
+
return ' ' + ' '.repeat(this._groupStack.length);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=SeedLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeedLogger.js","sourceRoot":"","sources":["../../src/logging/SeedLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ISeedOptions } from '../config/ISeedOptions.js';
|
|
2
|
+
import type { ISeedResult } from '../config/ISeedResult.js';
|
|
3
|
+
export interface ISeedOrchestrationResult {
|
|
4
|
+
readonly success: boolean;
|
|
5
|
+
readonly totalItemsCreated: number;
|
|
6
|
+
readonly totalDuration: number;
|
|
7
|
+
readonly seedResults: Array<{
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly result: ISeedResult;
|
|
10
|
+
}>;
|
|
11
|
+
readonly errors: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class SeedOrchestrator {
|
|
14
|
+
private readonly _discovery;
|
|
15
|
+
private _logger;
|
|
16
|
+
constructor();
|
|
17
|
+
/**
|
|
18
|
+
* @description Discovers seed configs and merges runtime options.
|
|
19
|
+
* Config file `options` are the defaults, NX executor overrides take priority.
|
|
20
|
+
* This follows the Vite pattern: config file is primary, executor options override.
|
|
21
|
+
*/
|
|
22
|
+
executeWithOverrides(rootPath: string, overrides: Partial<ISeedOptions>): Promise<ISeedOrchestrationResult>;
|
|
23
|
+
/**
|
|
24
|
+
* @description Runs seeding with explicit options (no config file merging).
|
|
25
|
+
*/
|
|
26
|
+
execute(rootPath: string, options: ISeedOptions): Promise<ISeedOrchestrationResult>;
|
|
27
|
+
private _executeWithComposedConfig;
|
|
28
|
+
private createContext;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=SeedOrchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeedOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestration/SeedOrchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAU5D,MAAM,WAAW,wBAAwB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;KAChC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,OAAO,CAAc;;IAgB7B;;;;OAIG;IACU,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmBxH;;OAEG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,wBAAwB,CAAC;YASlF,0BAA0B;YA8G1B,aAAa;CAkJ9B"}
|