@ooneex/seeds 1.3.0 → 1.4.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/README.md CHANGED
@@ -16,7 +16,7 @@ Database seeding framework for populating initial data, fixtures, and test datas
16
16
 
17
17
  ✅ **Active/Inactive Control** - Enable or disable individual seeds via the `isActive()` method
18
18
 
19
- ✅ **Seed Runner** - Execute all active seeds in order with terminal logging via `seedRun()`
19
+ ✅ **Seed Runner** - Execute all active seeds in order with terminal logging via `run()`
20
20
 
21
21
  ✅ **Seed Scaffolding** - Generate new seed files from a template with `seedCreate()`
22
22
 
@@ -95,9 +95,9 @@ export class UserSeed implements ISeed {
95
95
  ### Running Seeds
96
96
 
97
97
  ```typescript
98
- import { seedRun } from '@ooneex/seeds';
98
+ import { run } from '@ooneex/seeds';
99
99
 
100
- await seedRun();
100
+ await run();
101
101
  ```
102
102
 
103
103
  ### Creating a New Seed
@@ -136,7 +136,7 @@ interface ISeed {
136
136
 
137
137
  ### Functions
138
138
 
139
- #### `seedRun(): Promise<void>`
139
+ #### `run(): Promise<void>`
140
140
 
141
141
  Execute all active seeds with dependency resolution and terminal logging.
142
142
 
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ declare const decorator: {
9
9
  seed: (scope?: EContainerScope) => (target: SeedClassType) => void;
10
10
  };
11
11
  declare const getSeeds: () => ISeed[];
12
+ declare const run: () => Promise<void>;
12
13
  declare const seedCreate: (config: {
13
14
  name: string;
14
15
  seedsDir?: string;
@@ -16,6 +17,6 @@ declare const seedCreate: (config: {
16
17
  }) => Promise<{
17
18
  seedPath: string;
18
19
  testPath: string;
20
+ dataPath: string;
19
21
  }>;
20
- declare const seedRun: () => Promise<void>;
21
- export { seedRun, seedCreate, getSeeds, decorator, SeedClassType, ISeed };
22
+ export { seedCreate, run, getSeeds, decorator, SeedClassType, ISeed };
package/dist/index.js CHANGED
@@ -22,13 +22,83 @@ var getSeeds = () => {
22
22
  });
23
23
  return seedInstances.filter((seed) => seed.isActive());
24
24
  };
25
+ // src/run.ts
26
+ import { container as container3 } from "@ooneex/container";
27
+ import { TerminalLogger } from "@ooneex/logger";
28
+ var runSeed = async (seed) => {
29
+ const data = [];
30
+ const dependencies = await seed.getDependencies();
31
+ for (const dependency of dependencies) {
32
+ const dep = container3.get(dependency);
33
+ data.push(await runSeed(dep));
34
+ }
35
+ await seed.run(data);
36
+ };
37
+ var run = async () => {
38
+ const seeds = getSeeds();
39
+ const logger = new TerminalLogger;
40
+ if (seeds.length === 0) {
41
+ logger.info(`No seeds found
42
+ `, undefined, {
43
+ showTimestamp: false,
44
+ showArrow: false,
45
+ useSymbol: true
46
+ });
47
+ return;
48
+ }
49
+ logger.info(`Running ${seeds.length} seed(s)...
50
+ `, undefined, {
51
+ showTimestamp: false,
52
+ showArrow: false,
53
+ useSymbol: true
54
+ });
55
+ for (const seed of seeds) {
56
+ const seedName = seed.constructor.name;
57
+ if (!seed.isActive()) {
58
+ logger.warn(`Seed ${seedName} is inactive
59
+ `, undefined, {
60
+ showTimestamp: false,
61
+ showArrow: false,
62
+ useSymbol: true
63
+ });
64
+ continue;
65
+ }
66
+ try {
67
+ await runSeed(seed);
68
+ logger.success(`Seed ${seedName} completed
69
+ `, undefined, {
70
+ showTimestamp: false,
71
+ showArrow: false,
72
+ useSymbol: true
73
+ });
74
+ } catch (error) {
75
+ logger.error(`Seed ${seedName} failed
76
+ `, undefined, {
77
+ showTimestamp: false,
78
+ showArrow: false,
79
+ useSymbol: true
80
+ });
81
+ logger.error(error);
82
+ process.exit(1);
83
+ }
84
+ }
85
+ logger.success(`
86
+ All seeds completed successfully
87
+ `, undefined, {
88
+ showTimestamp: false,
89
+ showArrow: false,
90
+ useSymbol: true
91
+ });
92
+ };
25
93
  // src/seedCreate.ts
26
94
  import { join } from "path";
27
- import { toPascalCase } from "@ooneex/utils";
95
+ import { toKebabCase, toPascalCase } from "@ooneex/utils";
28
96
  var {Glob } = globalThis.Bun;
29
97
 
30
98
  // src/seed.test.txt
31
- var seed_test_default = `import { describe, expect, test } from "bun:test";
99
+ var seed_test_default = `import { existsSync } from "node:fs";
100
+ import { join } from "node:path";
101
+ import { describe, expect, test } from "bun:test";
32
102
  import { {{NAME}}Seed } from "@/seeds/{{NAME}}Seed";
33
103
 
34
104
  describe("{{NAME}}Seed", () => {
@@ -50,17 +120,23 @@ describe("{{NAME}}Seed", () => {
50
120
  expect({{NAME}}Seed.prototype.getDependencies).toBeDefined();
51
121
  expect(typeof {{NAME}}Seed.prototype.getDependencies).toBe("function");
52
122
  });
123
+
124
+ test("should have a data yml file", () => {
125
+ const dataFile = join(__dirname, "..", "src", "seeds", "{{DATA_FILE}}.yml");
126
+ expect(existsSync(dataFile)).toBe(true);
127
+ });
53
128
  });
54
129
  `;
55
130
 
56
131
  // src/seed.txt
57
132
  var seed_default = `import { decorator, type ISeed, type SeedClassType } from "@ooneex/seeds";
133
+ import data from "./{{ dataFile }}.yml";
58
134
 
59
135
  @decorator.seed()
60
136
  export class {{ name }} implements ISeed {
61
- public async run<T>(data?: unknown[]): Promise<T> {
137
+ public async run<T>(): Promise<T> {
62
138
  // Your seed logic here
63
- // console.log('{{ name }}!');
139
+ console.log(data);
64
140
 
65
141
  return data as T;
66
142
  }
@@ -79,10 +155,14 @@ export class {{ name }} implements ISeed {
79
155
  var seedCreate = async (config) => {
80
156
  const name = toPascalCase(config.name).replace(/Seed$/, "");
81
157
  const seedName = `${name}Seed`;
158
+ const dataFile = toKebabCase(seedName);
82
159
  const seedsDir = config.seedsDir || "seeds";
83
160
  const testsDir = config.testsDir || join("tests", "seeds");
84
- await Bun.write(join(process.cwd(), seedsDir, `${seedName}.ts`), seed_default.replaceAll("{{ name }}", seedName));
85
- const testContent = seed_test_default.replace(/\{\{NAME\}\}/g, name);
161
+ const seedContent = seed_default.replaceAll("{{ name }}", seedName).replaceAll("{{ dataFile }}", dataFile);
162
+ await Bun.write(join(process.cwd(), seedsDir, `${seedName}.ts`), seedContent);
163
+ await Bun.write(join(process.cwd(), seedsDir, `${dataFile}.yml`), `# Seed data
164
+ `);
165
+ const testContent = seed_test_default.replace(/\{\{NAME\}\}/g, name).replace(/\{\{DATA_FILE\}\}/g, dataFile);
86
166
  await Bun.write(join(process.cwd(), testsDir, `${seedName}.spec.ts`), testContent);
87
167
  const imports = [];
88
168
  const glob = new Glob("**/*Seed.ts");
@@ -95,82 +175,15 @@ var seedCreate = async (config) => {
95
175
  `);
96
176
  return {
97
177
  seedPath: join(seedsDir, `${seedName}.ts`),
98
- testPath: join(testsDir, `${seedName}.spec.ts`)
178
+ testPath: join(testsDir, `${seedName}.spec.ts`),
179
+ dataPath: join(seedsDir, `${dataFile}.yml`)
99
180
  };
100
181
  };
101
- // src/seedRun.ts
102
- import { container as container3 } from "@ooneex/container";
103
- import { TerminalLogger } from "@ooneex/logger";
104
- var run = async (seed) => {
105
- const data = [];
106
- const dependencies = await seed.getDependencies();
107
- for (const dependency of dependencies) {
108
- const dep = container3.get(dependency);
109
- data.push(await run(dep));
110
- }
111
- await seed.run(data);
112
- };
113
- var seedRun = async () => {
114
- const seeds = getSeeds();
115
- const logger = new TerminalLogger;
116
- if (seeds.length === 0) {
117
- logger.info(`No seeds found
118
- `, undefined, {
119
- showTimestamp: false,
120
- showArrow: false,
121
- useSymbol: true
122
- });
123
- return;
124
- }
125
- logger.info(`Running ${seeds.length} seed(s)...
126
- `, undefined, {
127
- showTimestamp: false,
128
- showArrow: false,
129
- useSymbol: true
130
- });
131
- for (const seed of seeds) {
132
- const seedName = seed.constructor.name;
133
- if (!seed.isActive()) {
134
- logger.warn(`Seed ${seedName} is inactive
135
- `, undefined, {
136
- showTimestamp: false,
137
- showArrow: false,
138
- useSymbol: true
139
- });
140
- continue;
141
- }
142
- try {
143
- await run(seed);
144
- logger.success(`Seed ${seedName} completed
145
- `, undefined, {
146
- showTimestamp: false,
147
- showArrow: false,
148
- useSymbol: true
149
- });
150
- } catch (error) {
151
- logger.error(`Seed ${seedName} failed
152
- `, undefined, {
153
- showTimestamp: false,
154
- showArrow: false,
155
- useSymbol: true
156
- });
157
- logger.error(error);
158
- process.exit(1);
159
- }
160
- }
161
- logger.success(`
162
- All seeds completed successfully
163
- `, undefined, {
164
- showTimestamp: false,
165
- showArrow: false,
166
- useSymbol: true
167
- });
168
- };
169
182
  export {
170
- seedRun,
171
183
  seedCreate,
184
+ run,
172
185
  getSeeds,
173
186
  decorator
174
187
  };
175
188
 
176
- //# debugId=13D2C1D163E1472064756E2164756E21
189
+ //# debugId=A5EDB9BE5A95E76164756E2164756E21
package/dist/index.js.map CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["src/decorators.ts", "src/container.ts", "src/getSeeds.ts", "src/seedCreate.ts", "src/seedRun.ts"],
3
+ "sources": ["src/decorators.ts", "src/container.ts", "src/getSeeds.ts", "src/run.ts", "src/seedCreate.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
7
  "import { container } from \"@ooneex/container\";\nimport { SEEDS_CONTAINER } from \"./container\";\nimport type { ISeed } from \"./types\";\n\nexport const getSeeds = (): ISeed[] => {\n const seedInstances = SEEDS_CONTAINER.map((SeedClass) => {\n return container.get(SeedClass);\n });\n\n return seedInstances.filter((seed) => seed.isActive());\n};\n",
8
- "import { join } from \"node:path\";\nimport { 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}): Promise<{ seedPath: string; testPath: string }> => {\n const name = toPascalCase(config.name).replace(/Seed$/, \"\");\n const seedName = `${name}Seed`;\n const seedsDir = config.seedsDir || \"seeds\";\n const testsDir = config.testsDir || join(\"tests\", \"seeds\");\n\n await Bun.write(join(process.cwd(), seedsDir, `${seedName}.ts`), template.replaceAll(\"{{ name }}\", seedName));\n\n const testContent = testTemplate.replace(/\\{\\{NAME\\}\\}/g, name);\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 };\n};\n",
9
- "import { 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 run = 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 run(dep));\n }\n\n await seed.run(data);\n};\n\nexport const seedRun = async (): Promise<void> => {\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 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 if (!seed.isActive()) {\n logger.warn(`Seed ${seedName} is inactive\\n`, undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n continue;\n }\n\n try {\n await run(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 logger.success(\"\\nAll seeds completed successfully\\n\", undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n};\n"
8
+ "import { 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 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 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 if (!seed.isActive()) {\n logger.warn(`Seed ${seedName} is inactive\\n`, undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n continue;\n }\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 logger.success(\"\\nAll seeds completed successfully\\n\", undefined, {\n showTimestamp: false,\n showArrow: false,\n useSymbol: true,\n });\n};\n",
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}): 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.replace(/\\{\\{NAME\\}\\}/g, name).replace(/\\{\\{DATA_FILE\\}\\}/g, dataFile);\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
10
  ],
11
- "mappings": "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",
12
- "debugId": "13D2C1D163E1472064756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "A5EDB9BE5A95E76164756E2164756E21",
13
13
  "names": []
14
14
  }
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.3.0",
4
+ "version": "1.4.1",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
@@ -28,12 +28,12 @@
28
28
  "npm:publish": "bun publish --tolerate-republish --force --production --access public"
29
29
  },
30
30
  "dependencies": {
31
- "@ooneex/container": "1.2.3",
32
- "@ooneex/logger": "1.2.7",
33
- "@ooneex/utils": "0.4.2"
31
+ "@ooneex/container": "1.3.0",
32
+ "@ooneex/logger": "1.2.9",
33
+ "@ooneex/utils": "0.4.3"
34
34
  },
35
35
  "devDependencies": {
36
- "@ooneex/exception": "1.2.1"
36
+ "@ooneex/exception": "1.2.2"
37
37
  },
38
38
  "keywords": [
39
39
  "bun",