@ooneex/seeds 1.7.0 → 1.8.0
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/index.d.ts +4 -2
- package/dist/index.js +34 -18
- package/dist/index.js.map +7 -6
- package/package.json +4 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { EContainerScope } from "@ooneex/container";
|
|
2
|
+
import { Environment } from "@ooneex/app-env";
|
|
2
3
|
type SeedClassType = new (...args: any[]) => ISeed;
|
|
3
4
|
interface ISeed {
|
|
4
5
|
run: <T = unknown>(data?: unknown[]) => Promise<T> | T;
|
|
5
6
|
isActive: () => Promise<boolean> | boolean;
|
|
6
7
|
getDependencies: () => Promise<SeedClassType[]> | SeedClassType[];
|
|
8
|
+
getEnv: () => Promise<Environment[]> | Environment[];
|
|
7
9
|
}
|
|
8
10
|
declare const decorator: {
|
|
9
11
|
seed: (scope?: EContainerScope) => (target: SeedClassType) => void;
|
|
10
12
|
};
|
|
11
|
-
declare const getSeeds: () => ISeed[]
|
|
13
|
+
declare const getSeeds: () => Promise<ISeed[]>;
|
|
12
14
|
declare const run: () => Promise<void>;
|
|
13
15
|
declare const seedCreate: (config: {
|
|
14
16
|
name: string;
|
|
@@ -25,4 +27,4 @@ declare const seedTestCreate: (config: {
|
|
|
25
27
|
testsDir: string;
|
|
26
28
|
module?: string;
|
|
27
29
|
}) => Promise<string>;
|
|
28
|
-
export { seedTestCreate, seedCreate, run, getSeeds, decorator, SeedClassType, ISeed };
|
|
30
|
+
export { seedTestCreate, seedCreate, run, getSeeds, decorator, SeedClassType, ISeed, Environment };
|
package/dist/index.js
CHANGED
|
@@ -16,11 +16,19 @@ var decorator = {
|
|
|
16
16
|
};
|
|
17
17
|
// src/getSeeds.ts
|
|
18
18
|
import { container as container2 } from "@ooneex/container";
|
|
19
|
-
var getSeeds = () => {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
var getSeeds = async () => {
|
|
20
|
+
const currentEnv = Bun.env.APP_ENV;
|
|
21
|
+
const seeds = [];
|
|
22
|
+
for (const SeedClass of SEEDS_CONTAINER) {
|
|
23
|
+
const seed = container2.get(SeedClass);
|
|
24
|
+
if (!await seed.isActive())
|
|
25
|
+
continue;
|
|
26
|
+
const allowedEnvs = await seed.getEnv();
|
|
27
|
+
if (allowedEnvs.length > 0 && currentEnv && !allowedEnvs.includes(currentEnv))
|
|
28
|
+
continue;
|
|
29
|
+
seeds.push(seed);
|
|
30
|
+
}
|
|
31
|
+
return seeds;
|
|
24
32
|
};
|
|
25
33
|
// src/run.ts
|
|
26
34
|
import { parseArgs } from "util";
|
|
@@ -46,7 +54,7 @@ var run = async () => {
|
|
|
46
54
|
strict: false,
|
|
47
55
|
allowPositionals: true
|
|
48
56
|
});
|
|
49
|
-
const seeds = getSeeds();
|
|
57
|
+
const seeds = await getSeeds();
|
|
50
58
|
const logger = new TerminalLogger;
|
|
51
59
|
if (seeds.length === 0) {
|
|
52
60
|
logger.info(`No seeds found
|
|
@@ -77,15 +85,6 @@ var run = async () => {
|
|
|
77
85
|
});
|
|
78
86
|
for (const seed of seeds) {
|
|
79
87
|
const seedName = seed.constructor.name;
|
|
80
|
-
if (!seed.isActive()) {
|
|
81
|
-
logger.warn(`Seed ${seedName} is inactive
|
|
82
|
-
`, undefined, {
|
|
83
|
-
showTimestamp: false,
|
|
84
|
-
showArrow: false,
|
|
85
|
-
useSymbol: true
|
|
86
|
-
});
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
88
|
try {
|
|
90
89
|
await runSeed(seed);
|
|
91
90
|
logger.success(`Seed ${seedName} completed
|
|
@@ -143,6 +142,16 @@ describe("{{NAME}}Seed", () => {
|
|
|
143
142
|
expect(typeof {{NAME}}Seed.prototype.getDependencies).toBe("function");
|
|
144
143
|
});
|
|
145
144
|
|
|
145
|
+
test("should have 'getEnv' method", () => {
|
|
146
|
+
expect({{NAME}}Seed.prototype.getEnv).toBeDefined();
|
|
147
|
+
expect(typeof {{NAME}}Seed.prototype.getEnv).toBe("function");
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
test("should return empty array from 'getEnv' by default", () => {
|
|
151
|
+
const seed = new {{NAME}}Seed();
|
|
152
|
+
expect(seed.getEnv()).toEqual([]);
|
|
153
|
+
});
|
|
154
|
+
|
|
146
155
|
test("should have a data yml file", async () => {
|
|
147
156
|
const dataFile = Bun.file(join(import.meta.dir, "../../src/seeds/{{DATA_FILE}}.yml"));
|
|
148
157
|
expect(await dataFile.exists()).toBe(true);
|
|
@@ -161,7 +170,7 @@ describe("{{NAME}}Seed", () => {
|
|
|
161
170
|
`;
|
|
162
171
|
|
|
163
172
|
// src/seed.txt
|
|
164
|
-
var seed_default = `import { decorator, type ISeed, type SeedClassType } from "@ooneex/seeds";
|
|
173
|
+
var seed_default = `import { decorator, Environment, type ISeed, type SeedClassType } from "@ooneex/seeds";
|
|
165
174
|
import data from "./{{ dataFile }}.yml";
|
|
166
175
|
|
|
167
176
|
@decorator.seed()
|
|
@@ -180,6 +189,10 @@ export class {{ name }} implements ISeed {
|
|
|
180
189
|
public async getDependencies(): Promise<SeedClassType[]> {
|
|
181
190
|
return [];
|
|
182
191
|
}
|
|
192
|
+
|
|
193
|
+
public getEnv(): Environment[] {
|
|
194
|
+
return [];
|
|
195
|
+
}
|
|
183
196
|
}
|
|
184
197
|
`;
|
|
185
198
|
|
|
@@ -226,12 +239,15 @@ var seedTestCreate = async (config) => {
|
|
|
226
239
|
await Bun.write(testPath, content);
|
|
227
240
|
return testPath;
|
|
228
241
|
};
|
|
242
|
+
// src/types.ts
|
|
243
|
+
import { Environment } from "@ooneex/app-env";
|
|
229
244
|
export {
|
|
230
245
|
seedTestCreate,
|
|
231
246
|
seedCreate,
|
|
232
247
|
run,
|
|
233
248
|
getSeeds,
|
|
234
|
-
decorator
|
|
249
|
+
decorator,
|
|
250
|
+
Environment
|
|
235
251
|
};
|
|
236
252
|
|
|
237
|
-
//# debugId=
|
|
253
|
+
//# debugId=DB624239BB3885A664756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["src/decorators.ts", "src/container.ts", "src/getSeeds.ts", "src/run.ts", "src/seedCreate.ts", "src/seedTestCreate.ts"],
|
|
3
|
+
"sources": ["src/decorators.ts", "src/container.ts", "src/getSeeds.ts", "src/run.ts", "src/seedCreate.ts", "src/seedTestCreate.ts", "src/types.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { container, EContainerScope } from \"@ooneex/container\";\nimport { SEEDS_CONTAINER } from \"./container\";\nimport type { SeedClassType } from \"./types\";\n\nexport const decorator = {\n seed: (scope: EContainerScope = EContainerScope.Singleton) => {\n return (target: SeedClassType): void => {\n container.add(target, scope);\n SEEDS_CONTAINER.push(target);\n };\n },\n};\n",
|
|
6
6
|
"import type { SeedClassType } from \"./types\";\n\nexport const SEEDS_CONTAINER: SeedClassType[] = [];\n",
|
|
7
|
-
"import { container } from \"@ooneex/container\";\nimport { SEEDS_CONTAINER } from \"./container\";\nimport type { ISeed } from \"./types\";\n\nexport const getSeeds = (): ISeed[] => {\n const
|
|
8
|
-
"import { parseArgs } from \"node:util\";\nimport { container } from \"@ooneex/container\";\nimport type { IException } from \"@ooneex/exception\";\nimport { TerminalLogger } from \"@ooneex/logger\";\nimport { getSeeds } from \"./getSeeds\";\nimport type { ISeed } from \"./types\";\n\nconst runSeed = async (seed: ISeed): Promise<void> => {\n const data = [];\n\n const dependencies = await seed.getDependencies();\n\n for (const dependency of dependencies) {\n const dep = container.get(dependency);\n data.push(await runSeed(dep));\n }\n\n await seed.run(data);\n};\n\nexport const run = async (): Promise<void> => {\n const { values } = parseArgs({\n args: Bun.argv,\n options: {\n drop: {\n type: \"boolean\",\n },\n },\n strict: false,\n allowPositionals: true,\n });\n\n const seeds = getSeeds();\n const logger = new TerminalLogger();\n\n if (seeds.length === 0) {\n logger.info(\"No seeds found\\n\", undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n return;\n }\n\n if (values.drop) {\n const database = container.getConstant<{ drop: () => Promise<void> }>(\"database\");\n if (database) {\n await database.drop();\n logger.info(\"Database dropped\\n\", undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n }\n }\n\n logger.info(`Running ${seeds.length} seed(s)...\\n`, undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n\n for (const seed of seeds) {\n const seedName = seed.constructor.name;\n\n
|
|
7
|
+
"import { container } from \"@ooneex/container\";\nimport { SEEDS_CONTAINER } from \"./container\";\nimport type { Environment, ISeed } from \"./types\";\n\nexport const getSeeds = async (): Promise<ISeed[]> => {\n const currentEnv = Bun.env.APP_ENV as Environment | undefined;\n const seeds: ISeed[] = [];\n\n for (const SeedClass of SEEDS_CONTAINER) {\n const seed = container.get(SeedClass);\n if (!(await seed.isActive())) continue;\n\n const allowedEnvs = await seed.getEnv();\n if (allowedEnvs.length > 0 && currentEnv && !allowedEnvs.includes(currentEnv)) continue;\n\n seeds.push(seed);\n }\n\n return seeds;\n};\n",
|
|
8
|
+
"import { parseArgs } from \"node:util\";\nimport { container } from \"@ooneex/container\";\nimport type { IException } from \"@ooneex/exception\";\nimport { TerminalLogger } from \"@ooneex/logger\";\nimport { getSeeds } from \"./getSeeds\";\nimport type { ISeed } from \"./types\";\n\nconst runSeed = async (seed: ISeed): Promise<void> => {\n const data = [];\n\n const dependencies = await seed.getDependencies();\n\n for (const dependency of dependencies) {\n const dep = container.get(dependency);\n data.push(await runSeed(dep));\n }\n\n await seed.run(data);\n};\n\nexport const run = async (): Promise<void> => {\n const { values } = parseArgs({\n args: Bun.argv,\n options: {\n drop: {\n type: \"boolean\",\n },\n },\n strict: false,\n allowPositionals: true,\n });\n\n const seeds = await getSeeds();\n const logger = new TerminalLogger();\n\n if (seeds.length === 0) {\n logger.info(\"No seeds found\\n\", undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n return;\n }\n\n if (values.drop) {\n const database = container.getConstant<{ drop: () => Promise<void> }>(\"database\");\n if (database) {\n await database.drop();\n logger.info(\"Database dropped\\n\", undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n }\n }\n\n logger.info(`Running ${seeds.length} seed(s)...\\n`, undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n\n for (const seed of seeds) {\n const seedName = seed.constructor.name;\n\n try {\n await runSeed(seed);\n logger.success(`Seed ${seedName} completed\\n`, undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n } catch (error) {\n logger.error(`Seed ${seedName} failed\\n`, undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n logger.error(error as IException);\n process.exit(1);\n }\n }\n\n try {\n const database = container.getConstant<{ close: () => Promise<void> }>(\"database\");\n if (database) {\n await database.close();\n }\n } catch {\n // No database constant registered — nothing to close\n }\n};\n",
|
|
9
9
|
"import { join } from \"node:path\";\nimport { toKebabCase, toPascalCase } from \"@ooneex/utils\";\nimport { Glob } from \"bun\";\nimport testTemplate from \"./seed.test.txt\";\nimport template from \"./seed.txt\";\n\nexport const seedCreate = async (config: {\n name: string;\n seedsDir?: string;\n testsDir?: string;\n module?: string;\n}): Promise<{ seedPath: string; testPath: string; dataPath: string }> => {\n const name = toPascalCase(config.name).replace(/Seed$/, \"\");\n const seedName = `${name}Seed`;\n const dataFile = toKebabCase(seedName);\n const seedsDir = config.seedsDir || \"seeds\";\n const testsDir = config.testsDir || join(\"tests\", \"seeds\");\n\n const seedContent = template.replaceAll(\"{{ name }}\", seedName).replaceAll(\"{{ dataFile }}\", dataFile);\n await Bun.write(join(process.cwd(), seedsDir, `${seedName}.ts`), seedContent);\n\n await Bun.write(join(process.cwd(), seedsDir, `${dataFile}.yml`), \"# Seed data\\n\");\n\n const testContent = testTemplate\n .replace(/\\{\\{NAME\\}\\}/g, name)\n .replace(/\\{\\{DATA_FILE\\}\\}/g, dataFile)\n .replace(/\\{\\{MODULE\\}\\}/g, config.module ?? \"\");\n await Bun.write(join(process.cwd(), testsDir, `${seedName}.spec.ts`), testContent);\n\n const imports: string[] = [];\n const glob = new Glob(\"**/*Seed.ts\");\n for await (const file of glob.scan(join(process.cwd(), seedsDir))) {\n const seedClassName = file.replace(/\\.ts$/, \"\");\n imports.push(`export { ${seedClassName} } from './${seedClassName}';`);\n }\n\n await Bun.write(join(process.cwd(), seedsDir, \"seeds.ts\"), `${imports.sort().join(\"\\n\")}\\n`);\n\n return {\n seedPath: join(seedsDir, `${seedName}.ts`),\n testPath: join(testsDir, `${seedName}.spec.ts`),\n dataPath: join(seedsDir, `${dataFile}.yml`),\n };\n};\n",
|
|
10
|
-
"import { join } from \"node:path\";\nimport { toKebabCase } from \"@ooneex/utils\";\nimport testTemplate from \"./seed.test.txt\";\n\nexport const seedTestCreate = async (config: {\n name: string;\n testsDir: string;\n module?: string;\n}): Promise<string> => {\n const { name, testsDir, module } = config;\n const testPath = join(process.cwd(), testsDir, `${name}.spec.ts`);\n\n const testFile = Bun.file(testPath);\n if (await testFile.exists()) return testPath;\n\n const baseName = name.replace(/Seed$/, \"\");\n const dataFile = toKebabCase(name);\n\n const content = testTemplate\n .replace(/\\{\\{NAME\\}\\}/g, baseName)\n .replace(/\\{\\{DATA_FILE\\}\\}/g, dataFile)\n .replace(/\\{\\{MODULE\\}\\}/g, module ?? \"\");\n await Bun.write(testPath, content);\n\n return testPath;\n};\n"
|
|
10
|
+
"import { join } from \"node:path\";\nimport { toKebabCase } from \"@ooneex/utils\";\nimport testTemplate from \"./seed.test.txt\";\n\nexport const seedTestCreate = async (config: {\n name: string;\n testsDir: string;\n module?: string;\n}): Promise<string> => {\n const { name, testsDir, module } = config;\n const testPath = join(process.cwd(), testsDir, `${name}.spec.ts`);\n\n const testFile = Bun.file(testPath);\n if (await testFile.exists()) return testPath;\n\n const baseName = name.replace(/Seed$/, \"\");\n const dataFile = toKebabCase(name);\n\n const content = testTemplate\n .replace(/\\{\\{NAME\\}\\}/g, baseName)\n .replace(/\\{\\{DATA_FILE\\}\\}/g, dataFile)\n .replace(/\\{\\{MODULE\\}\\}/g, module ?? \"\");\n await Bun.write(testPath, content);\n\n return testPath;\n};\n",
|
|
11
|
+
"import { Environment } from \"@ooneex/app-env\";\nexport { Environment };\n\n// biome-ignore lint/suspicious/noExplicitAny: trust me\nexport type SeedClassType = new (...args: any[]) => ISeed;\n\nexport interface ISeed {\n run: <T = unknown>(data?: unknown[]) => Promise<T> | T;\n isActive: () => Promise<boolean> | boolean;\n getDependencies: () => Promise<SeedClassType[]> | SeedClassType[];\n getEnv: () => Promise<Environment[]> | Environment[];\n}\n"
|
|
11
12
|
],
|
|
12
|
-
"mappings": ";;AAAA;;;ACEO,IAAM,kBAAmC,CAAC;;;ADE1C,IAAM,YAAY;AAAA,EACvB,MAAM,CAAC,QAAyB,gBAAgB,cAAc;AAAA,IAC5D,OAAO,CAAC,WAAgC;AAAA,MACtC,UAAU,IAAI,QAAQ,KAAK;AAAA,MAC3B,gBAAgB,KAAK,MAAM;AAAA;AAAA;AAGjC;;AEXA,sBAAS;AAIF,IAAM,WAAW,
|
|
13
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "DB624239BB3885A664756E2164756E21",
|
|
14
15
|
"names": []
|
|
15
16
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ooneex/seeds",
|
|
3
3
|
"description": "Database seeding framework for populating initial data, fixtures, and test datasets with execution logging and idempotent operations",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -30,10 +30,11 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@ooneex/container": "^1.5.1",
|
|
32
32
|
"@ooneex/logger": "^1.3.5",
|
|
33
|
-
"@ooneex/utils": "^0.4.
|
|
33
|
+
"@ooneex/utils": "^0.4.12"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@ooneex/exception": "^1.2.10"
|
|
36
|
+
"@ooneex/exception": "^1.2.10",
|
|
37
|
+
"@ooneex/app-env": "^1.9.0"
|
|
37
38
|
},
|
|
38
39
|
"keywords": [
|
|
39
40
|
"bun",
|