@ackplus/nest-seeder 0.1.51 → 1.1.2
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 +6 -407
- package/package.json +2 -29
- package/src/cli.d.ts +1 -0
- package/src/cli.d.ts.map +1 -0
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -0
- package/src/lib/decorators/factory.decorator.d.ts +1 -0
- package/src/lib/decorators/factory.decorator.d.ts.map +1 -0
- package/src/lib/factory/data.factory.d.ts +1 -0
- package/src/lib/factory/data.factory.d.ts.map +1 -0
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.d.ts.map +1 -0
- package/src/lib/interfaces/factory.interface.d.ts +1 -0
- package/src/lib/interfaces/factory.interface.d.ts.map +1 -0
- package/src/lib/interfaces/index.d.ts +1 -0
- package/src/lib/interfaces/index.d.ts.map +1 -0
- package/src/lib/interfaces/property-metadata.interface.d.ts +1 -0
- package/src/lib/interfaces/property-metadata.interface.d.ts.map +1 -0
- package/src/lib/interfaces/seeder-module-async-options.interface.d.ts +19 -0
- package/src/lib/interfaces/seeder-module-async-options.interface.d.ts.map +1 -0
- package/src/lib/interfaces/seeder-options-factory.interface.d.ts +5 -0
- package/src/lib/interfaces/seeder-options-factory.interface.d.ts.map +1 -0
- package/src/lib/seeder/seeder.d.ts +1 -0
- package/src/lib/seeder/seeder.d.ts.map +1 -0
- package/src/lib/seeder/seeder.interface.d.ts +1 -0
- package/src/lib/seeder/seeder.interface.d.ts.map +1 -0
- package/src/lib/seeder/seeder.module.d.ts +1 -0
- package/src/lib/seeder/seeder.module.d.ts.map +1 -0
- package/src/lib/seeder/seeder.service.d.ts +1 -0
- package/src/lib/seeder/seeder.service.d.ts.map +1 -0
- package/src/lib/storages/factory.metadata.storage.d.ts +1 -0
- package/src/lib/storages/factory.metadata.storage.d.ts.map +1 -0
- package/src/cli.js +0 -168
- package/src/cli.js.map +0 -1
- package/src/index.js +0 -12
- package/src/index.js.map +0 -1
- package/src/lib/decorators/factory.decorator.js +0 -17
- package/src/lib/decorators/factory.decorator.js.map +0 -1
- package/src/lib/factory/data.factory.js +0 -51
- package/src/lib/factory/data.factory.js.map +0 -1
- package/src/lib/index.js +0 -8
- package/src/lib/index.js.map +0 -1
- package/src/lib/interfaces/factory.interface.js +0 -3
- package/src/lib/interfaces/factory.interface.js.map +0 -1
- package/src/lib/interfaces/index.js +0 -6
- package/src/lib/interfaces/index.js.map +0 -1
- package/src/lib/interfaces/property-metadata.interface.js +0 -3
- package/src/lib/interfaces/property-metadata.interface.js.map +0 -1
- package/src/lib/interfaces/seeder-module-async-options.interface.js +0 -3
- package/src/lib/interfaces/seeder-module-async-options.interface.js.map +0 -1
- package/src/lib/interfaces/seeder-options-factory.interface.js +0 -3
- package/src/lib/interfaces/seeder-options-factory.interface.js.map +0 -1
- package/src/lib/seeder/seeder.interface.js +0 -3
- package/src/lib/seeder/seeder.interface.js.map +0 -1
- package/src/lib/seeder/seeder.js +0 -37
- package/src/lib/seeder/seeder.js.map +0 -1
- package/src/lib/seeder/seeder.module.js +0 -75
- package/src/lib/seeder/seeder.module.js.map +0 -1
- package/src/lib/seeder/seeder.service.js +0 -67
- package/src/lib/seeder/seeder.service.js.map +0 -1
- package/src/lib/storages/factory.metadata.storage.js +0 -19
- package/src/lib/storages/factory.metadata.storage.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -1,412 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# nest-auth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This library was generated with [Nx](https://nx.dev).
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Building
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- ✅ **TypeORM Integration** - Works seamlessly with your existing TypeORM setup
|
|
9
|
-
- ✅ **Selective Seeding** - Run specific seeders by name
|
|
10
|
-
- ✅ **Data Refresh** - Drop and recreate data
|
|
11
|
-
- ✅ **TypeScript Support** - Full TypeScript support with ts-node
|
|
7
|
+
Run `nx build nest-auth` to build the library.
|
|
12
8
|
|
|
13
|
-
##
|
|
9
|
+
## Running unit tests
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
npm install @ackplus/nest-seeder
|
|
17
|
-
# Also install peer dependencies
|
|
18
|
-
npm install -D ts-node typescript
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Quick Start
|
|
22
|
-
|
|
23
|
-
### 1. Create Your Seeders
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
// src/database/seeders/user.seeder.ts
|
|
27
|
-
import { Injectable } from '@nestjs/common';
|
|
28
|
-
import { InjectRepository } from '@nestjs/typeorm';
|
|
29
|
-
import { Repository } from 'typeorm';
|
|
30
|
-
import { Seeder, SeederServiceOptions } from '@ackplus/nest-seeder';
|
|
31
|
-
import { User } from '../../entities/user.entity';
|
|
32
|
-
|
|
33
|
-
@Injectable()
|
|
34
|
-
export class UserSeeder implements Seeder {
|
|
35
|
-
constructor(
|
|
36
|
-
@InjectRepository(User)
|
|
37
|
-
private readonly userRepository: Repository<User>,
|
|
38
|
-
) {}
|
|
39
|
-
|
|
40
|
-
async seed(options: SeederServiceOptions): Promise<any> {
|
|
41
|
-
const users = [
|
|
42
|
-
{ name: 'John Doe', email: 'john@example.com' },
|
|
43
|
-
{ name: 'Jane Smith', email: 'jane@example.com' },
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
for (const userData of users) {
|
|
47
|
-
const existingUser = await this.userRepository.findOne({
|
|
48
|
-
where: { email: userData.email }
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
if (!existingUser) {
|
|
52
|
-
const user = this.userRepository.create(userData);
|
|
53
|
-
await this.userRepository.save(user);
|
|
54
|
-
console.log(`Created user: ${user.name}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
async drop(options: SeederServiceOptions): Promise<any> {
|
|
60
|
-
await this.userRepository.clear();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 2. Create Seeder Configuration File
|
|
66
|
-
|
|
67
|
-
Create a seeder configuration file (e.g., `seeder.config.ts`) in your project:
|
|
68
|
-
|
|
69
|
-
```typescript
|
|
70
|
-
// seeder.config.ts
|
|
71
|
-
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
72
|
-
import { SeederModuleOptions } from '@ackplus/nest-seeder';
|
|
73
|
-
import { UserSeeder } from './src/database/seeders/user.seeder';
|
|
74
|
-
import { User } from './src/entities/user.entity';
|
|
75
|
-
|
|
76
|
-
const seederConfig: SeederModuleOptions = {
|
|
77
|
-
imports: [
|
|
78
|
-
TypeOrmModule.forRoot({
|
|
79
|
-
type: 'postgres', // Change to your database type
|
|
80
|
-
host: process.env.DB_HOST || 'localhost',
|
|
81
|
-
port: parseInt(process.env.DB_PORT || '5432'),
|
|
82
|
-
username: process.env.DB_USERNAME || 'postgres',
|
|
83
|
-
password: process.env.DB_PASSWORD || 'password',
|
|
84
|
-
database: process.env.DB_NAME || 'your_database_name',
|
|
85
|
-
entities: [User], // Add your entities here
|
|
86
|
-
synchronize: false, // Set to false in production
|
|
87
|
-
}),
|
|
88
|
-
TypeOrmModule.forFeature([User]), // Add your entities here
|
|
89
|
-
],
|
|
90
|
-
providers: [UserSeeder],
|
|
91
|
-
seeders: [UserSeeder],
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
export default seederConfig;
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### 3. Add Scripts to package.json
|
|
98
|
-
|
|
99
|
-
```json
|
|
100
|
-
{
|
|
101
|
-
"scripts": {
|
|
102
|
-
"seed": "nest-seed -c ./seeder.config.ts",
|
|
103
|
-
"seed:refresh": "nest-seed -c ./seeder.config.ts --refresh",
|
|
104
|
-
"seed:user": "nest-seed -c ./seeder.config.ts --name UserSeeder"
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 4. Run Your Seeders
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
# Run all seeders
|
|
113
|
-
npm run seed
|
|
114
|
-
|
|
115
|
-
# Drop all data and reseed
|
|
116
|
-
npm run seed:refresh
|
|
117
|
-
|
|
118
|
-
# Run specific seeder
|
|
119
|
-
npm run seed:user
|
|
120
|
-
|
|
121
|
-
# Run with dummy data flag
|
|
122
|
-
npm run seed -- --dummyData
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## CLI Usage
|
|
126
|
-
|
|
127
|
-
The CLI can import seeder configuration from any TypeScript or JavaScript file:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
# Basic usage
|
|
131
|
-
nest-seed -c ./seeder.config.ts
|
|
132
|
-
|
|
133
|
-
# Different config file
|
|
134
|
-
nest-seed -c ./configs/development.seeder.ts
|
|
135
|
-
|
|
136
|
-
# Relative or absolute paths
|
|
137
|
-
nest-seed -c ../shared/seeder.config.ts
|
|
138
|
-
nest-seed -c /absolute/path/to/seeder.config.ts
|
|
139
|
-
|
|
140
|
-
# With options
|
|
141
|
-
nest-seed -c ./seeder.config.ts --refresh --name UserSeeder --dummyData
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## CLI Options
|
|
145
|
-
|
|
146
|
-
| Option | Alias | Description | Example |
|
|
147
|
-
|--------|-------|-------------|---------|
|
|
148
|
-
| `--config` | `-c` | Path to seeder configuration file | `--config ./seeder.config.ts` |
|
|
149
|
-
| `--refresh` | `-r` | Drop all data before seeding | `--refresh` |
|
|
150
|
-
| `--name` | `-n` | Run specific seeders | `--name UserSeeder PostSeeder` |
|
|
151
|
-
| `--dummyData` | `-d` | Include dummy data flag | `--dummyData` |
|
|
152
|
-
|
|
153
|
-
## Configuration Options
|
|
154
|
-
|
|
155
|
-
### Using Environment Variables
|
|
156
|
-
|
|
157
|
-
```typescript
|
|
158
|
-
// seeder.config.ts
|
|
159
|
-
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
160
|
-
|
|
161
|
-
const seederConfig = {
|
|
162
|
-
imports: [
|
|
163
|
-
TypeOrmModule.forRoot({
|
|
164
|
-
type: process.env.DB_TYPE as any || 'postgres',
|
|
165
|
-
host: process.env.DB_HOST,
|
|
166
|
-
port: parseInt(process.env.DB_PORT || '5432'),
|
|
167
|
-
username: process.env.DB_USERNAME,
|
|
168
|
-
password: process.env.DB_PASSWORD,
|
|
169
|
-
database: process.env.DB_NAME,
|
|
170
|
-
entities: [User, Post],
|
|
171
|
-
}),
|
|
172
|
-
TypeOrmModule.forFeature([User, Post]),
|
|
173
|
-
],
|
|
174
|
-
seeders: [UserSeeder, PostSeeder],
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
export default seederConfig;
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### Reusing Existing Database Configuration
|
|
181
|
-
|
|
182
|
-
```typescript
|
|
183
|
-
// seeder.config.ts
|
|
184
|
-
import { databaseConfig } from './src/config/database.config';
|
|
185
|
-
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
186
|
-
|
|
187
|
-
const seederConfig = {
|
|
188
|
-
imports: [
|
|
189
|
-
TypeOrmModule.forRoot(databaseConfig), // Reuse your existing config
|
|
190
|
-
TypeOrmModule.forFeature([User, Post]),
|
|
191
|
-
],
|
|
192
|
-
seeders: [UserSeeder, PostSeeder],
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
export default seederConfig;
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### Multiple Environment Configurations
|
|
199
|
-
|
|
200
|
-
```typescript
|
|
201
|
-
// seeder.config.dev.ts
|
|
202
|
-
export default {
|
|
203
|
-
imports: [
|
|
204
|
-
TypeOrmModule.forRoot({
|
|
205
|
-
database: 'myapp_dev',
|
|
206
|
-
// ... dev config
|
|
207
|
-
}),
|
|
208
|
-
],
|
|
209
|
-
seeders: [UserSeeder, PostSeeder, DummyDataSeeder],
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
// seeder.config.prod.ts
|
|
213
|
-
export default {
|
|
214
|
-
imports: [
|
|
215
|
-
TypeOrmModule.forRoot({
|
|
216
|
-
database: 'myapp_prod',
|
|
217
|
-
// ... prod config
|
|
218
|
-
}),
|
|
219
|
-
],
|
|
220
|
-
seeders: [UserSeeder], // Only essential seeders
|
|
221
|
-
};
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
```json
|
|
225
|
-
{
|
|
226
|
-
"scripts": {
|
|
227
|
-
"seed:dev": "nest-seed -c ./seeder.config.dev.ts",
|
|
228
|
-
"seed:prod": "nest-seed -c ./seeder.config.prod.ts"
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## Advanced Usage
|
|
234
|
-
|
|
235
|
-
### Conditional Seeding
|
|
236
|
-
|
|
237
|
-
```typescript
|
|
238
|
-
async seed(options: SeederServiceOptions): Promise<any> {
|
|
239
|
-
if (options.dummyData) {
|
|
240
|
-
// Seed lots of fake data for development
|
|
241
|
-
await this.seedDummyUsers(1000);
|
|
242
|
-
} else {
|
|
243
|
-
// Seed only essential data
|
|
244
|
-
await this.seedEssentialUsers();
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### Seeder Dependencies
|
|
250
|
-
|
|
251
|
-
```typescript
|
|
252
|
-
// Run seeders in order by organizing them properly
|
|
253
|
-
const seederConfig = {
|
|
254
|
-
seeders: [
|
|
255
|
-
UserSeeder, // Run first
|
|
256
|
-
PostSeeder, // Depends on users
|
|
257
|
-
CommentSeeder, // Depends on posts
|
|
258
|
-
],
|
|
259
|
-
};
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
## Integration with Existing App
|
|
263
|
-
|
|
264
|
-
### Option A: Using register() method
|
|
265
|
-
|
|
266
|
-
```typescript
|
|
267
|
-
// app.module.ts
|
|
268
|
-
import { Module } from '@nestjs/common';
|
|
269
|
-
import { SeederModule } from '@ackplus/nest-seeder';
|
|
270
|
-
|
|
271
|
-
@Module({
|
|
272
|
-
imports: [
|
|
273
|
-
// Your existing imports
|
|
274
|
-
SeederModule.register({
|
|
275
|
-
imports: [TypeOrmModule.forFeature([User])],
|
|
276
|
-
providers: [UserSeeder],
|
|
277
|
-
seeders: [UserSeeder],
|
|
278
|
-
}),
|
|
279
|
-
],
|
|
280
|
-
})
|
|
281
|
-
export class AppModule {}
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
### Option B: Using forRootAsync() with useClass
|
|
285
|
-
|
|
286
|
-
Create a factory class:
|
|
287
|
-
|
|
288
|
-
```typescript
|
|
289
|
-
// seeder-config.factory.ts
|
|
290
|
-
import { Injectable } from '@nestjs/common';
|
|
291
|
-
import { ConfigService } from '@nestjs/config';
|
|
292
|
-
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
293
|
-
import { SeederOptionsFactory, SeederModuleOptions } from '@ackplus/nest-seeder';
|
|
294
|
-
import { UserSeeder } from './database/seeders/user.seeder';
|
|
295
|
-
import { User } from './entities/user.entity';
|
|
296
|
-
|
|
297
|
-
@Injectable()
|
|
298
|
-
export class SeederConfigFactory implements SeederOptionsFactory {
|
|
299
|
-
constructor(private readonly configService: ConfigService) {}
|
|
300
|
-
|
|
301
|
-
createSeederOptions(): SeederModuleOptions {
|
|
302
|
-
return {
|
|
303
|
-
imports: [
|
|
304
|
-
TypeOrmModule.forRoot({
|
|
305
|
-
type: this.configService.get('DB_TYPE', 'postgres') as any,
|
|
306
|
-
host: this.configService.get('DB_HOST', 'localhost'),
|
|
307
|
-
port: this.configService.get('DB_PORT', 5432),
|
|
308
|
-
username: this.configService.get('DB_USERNAME', 'postgres'),
|
|
309
|
-
password: this.configService.get('DB_PASSWORD', 'password'),
|
|
310
|
-
database: this.configService.get('DB_NAME', 'myapp_db'),
|
|
311
|
-
entities: [User],
|
|
312
|
-
synchronize: false,
|
|
313
|
-
}),
|
|
314
|
-
TypeOrmModule.forFeature([User]),
|
|
315
|
-
],
|
|
316
|
-
providers: [UserSeeder],
|
|
317
|
-
seeders: [UserSeeder],
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
Use in your app module:
|
|
324
|
-
|
|
325
|
-
```typescript
|
|
326
|
-
// app.module.ts
|
|
327
|
-
import { Module } from '@nestjs/common';
|
|
328
|
-
import { ConfigModule } from '@nestjs/config';
|
|
329
|
-
import { SeederModule } from '@ackplus/nest-seeder';
|
|
330
|
-
import { SeederConfigFactory } from './seeder-config.factory';
|
|
331
|
-
|
|
332
|
-
@Module({
|
|
333
|
-
imports: [
|
|
334
|
-
ConfigModule.forRoot(),
|
|
335
|
-
SeederModule.forRootAsync({
|
|
336
|
-
imports: [ConfigModule],
|
|
337
|
-
useClass: SeederConfigFactory,
|
|
338
|
-
}),
|
|
339
|
-
],
|
|
340
|
-
})
|
|
341
|
-
export class AppModule {}
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
### Option C: Using forRootAsync() with useFactory
|
|
345
|
-
|
|
346
|
-
```typescript
|
|
347
|
-
// app.module.ts
|
|
348
|
-
import { Module } from '@nestjs/common';
|
|
349
|
-
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
350
|
-
import { SeederModule } from '@ackplus/nest-seeder';
|
|
351
|
-
|
|
352
|
-
@Module({
|
|
353
|
-
imports: [
|
|
354
|
-
ConfigModule.forRoot(),
|
|
355
|
-
SeederModule.forRootAsync({
|
|
356
|
-
imports: [ConfigModule, TypeOrmModule.forFeature([User])],
|
|
357
|
-
useFactory: (configService: ConfigService) => ({
|
|
358
|
-
imports: [
|
|
359
|
-
TypeOrmModule.forRoot({
|
|
360
|
-
type: configService.get('DB_TYPE', 'postgres') as any,
|
|
361
|
-
host: configService.get('DB_HOST', 'localhost'),
|
|
362
|
-
// ... other config
|
|
363
|
-
}),
|
|
364
|
-
TypeOrmModule.forFeature([User]),
|
|
365
|
-
],
|
|
366
|
-
providers: [UserSeeder],
|
|
367
|
-
seeders: [UserSeeder],
|
|
368
|
-
}),
|
|
369
|
-
inject: [ConfigService],
|
|
370
|
-
}),
|
|
371
|
-
],
|
|
372
|
-
})
|
|
373
|
-
export class AppModule {}
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
### Using SeederService
|
|
377
|
-
|
|
378
|
-
After registering the module, inject SeederService anywhere:
|
|
379
|
-
|
|
380
|
-
```typescript
|
|
381
|
-
constructor(private readonly seederService: SeederService) {}
|
|
382
|
-
await this.seederService.run();
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
## Best Practices
|
|
386
|
-
|
|
387
|
-
1. **Environment Variables**: Use the same environment variables as your main app
|
|
388
|
-
2. **Idempotent Seeders**: Make seeders safe to run multiple times
|
|
389
|
-
3. **Order Dependencies**: Place dependent seeders after their dependencies
|
|
390
|
-
4. **Clean Drop Methods**: Implement proper cleanup in drop methods
|
|
391
|
-
5. **Separate Configs**: Use different config files for different environments
|
|
392
|
-
|
|
393
|
-
## Troubleshooting
|
|
394
|
-
|
|
395
|
-
### "Cannot find module" errors
|
|
396
|
-
- Make sure the config file path is correct relative to where you run the command
|
|
397
|
-
- Ensure all import paths in your config are correct
|
|
398
|
-
- Check that `ts-node` and `typescript` are installed for TypeScript files
|
|
399
|
-
|
|
400
|
-
### Database connection errors
|
|
401
|
-
- Verify your database configuration in the seeder config
|
|
402
|
-
- Ensure your database is running and accessible
|
|
403
|
-
- Check environment variables are properly set
|
|
404
|
-
|
|
405
|
-
### TypeScript compilation errors
|
|
406
|
-
- Make sure your `tsconfig.json` has `experimentalDecorators: true`
|
|
407
|
-
- Install missing dependencies: `npm install -D ts-node typescript`
|
|
408
|
-
- Verify your config file has proper exports
|
|
409
|
-
|
|
410
|
-
## Contributing
|
|
411
|
-
|
|
412
|
-
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
11
|
+
Run `nx test nest-auth` to execute the unit tests via [Jest](https://jestjs.io).
|
package/package.json
CHANGED
|
@@ -1,37 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ackplus/nest-seeder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"postbuild": "chmod +x src/cli.js"
|
|
10
|
-
},
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "https://github.com/ack-solutions/packages.git"
|
|
14
|
-
},
|
|
15
|
-
"publishConfig": {
|
|
16
|
-
"access": "public"
|
|
17
|
-
},
|
|
18
|
-
"bin": {
|
|
19
|
-
"nest-seed": "src/cli.js"
|
|
20
|
-
},
|
|
21
|
-
"homepage": "https://github.com/ack-solutions/packages.git#readme",
|
|
22
|
-
"peerDependencies": {
|
|
23
|
-
"typeorm": "^0.3.23",
|
|
24
|
-
"@nestjs/typeorm": "^11.0.0",
|
|
25
|
-
"@nestjs/common": "^10.4.5"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"typeorm": "^0.3.23",
|
|
29
|
-
"@nestjs/typeorm": "^11.0.0",
|
|
30
|
-
"@nestjs/common": "^10.4.5",
|
|
31
|
-
"tslib": "^2.3.0"
|
|
32
|
-
},
|
|
33
7
|
"dependencies": {
|
|
34
|
-
"
|
|
35
|
-
"yargs": "^18.0.0"
|
|
8
|
+
"tslib": "^2.3.0"
|
|
36
9
|
}
|
|
37
10
|
}
|
package/src/cli.d.ts
CHANGED
package/src/cli.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../packages/nest-seeder/src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAyB,MAAM,OAAO,CAAC;AAqK3E,eAAO,MAAM,MAAM,GAAI,SAAS,aAAa,KAAG,YAgC/C,CAAC"}
|
package/src/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export * from './lib/factory/data.factory';
|
|
|
6
6
|
export * from './lib/decorators/factory.decorator';
|
|
7
7
|
export * from './lib/interfaces/seeder-options-factory.interface';
|
|
8
8
|
export * from './lib/interfaces/seeder-module-async-options.interface';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/nest-seeder/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AAEpC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,mDAAmD,CAAC;AAElE,cAAc,wDAAwD,CAAC"}
|
|
@@ -4,3 +4,4 @@ export type FactoryValue = BaseType | Array<BaseType>;
|
|
|
4
4
|
export type FactoryValueGenerator = (faker?: Faker, ctx?: Record<string, any>) => FactoryValue;
|
|
5
5
|
export declare function Factory(generator: FactoryValueGenerator | FactoryValue, dependsOn?: string[]): (target: Record<string, any>, propertyKey: string | symbol) => void;
|
|
6
6
|
export {};
|
|
7
|
+
//# sourceMappingURL=factory.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.decorator.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/decorators/factory.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAKxC,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,CAChC,KAAK,CAAC,EAAE,KAAK,EACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,YAAY,CAAC;AAElB,wBAAgB,OAAO,CACnB,SAAS,EAAE,qBAAqB,GAAG,YAAY,EAC/C,SAAS,CAAC,EAAE,MAAM,EAAE,IAGhB,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,aAAa,MAAM,GAAG,MAAM,KAC7B,IAAI,CAUV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/factory/data.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,qBAAa,WAAW;IAEpB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO;IAuBrD,OAAO,CAAC,MAAM,CAAC,QAAQ;CA2D1B"}
|
package/src/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-seeder/src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/interfaces/factory.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,MAAM,WAAW,OAAO;IACpB,QAAQ,CACJ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-metadata.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/interfaces/property-metadata.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,YAAY,EACf,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,qBAAqB,GAAG,YAAY,CAAC;CAC7C"}
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import { Type, ModuleMetadata } from '@nestjs/common';
|
|
2
2
|
import { SeederModuleOptions } from '../seeder/seeder.module';
|
|
3
3
|
import { SeederOptionsFactory } from './seeder-options-factory.interface';
|
|
4
|
+
/**
|
|
5
|
+
* Async options for SeederModule configuration
|
|
6
|
+
*/
|
|
4
7
|
export interface SeederModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
8
|
+
/**
|
|
9
|
+
* Make the module global
|
|
10
|
+
*/
|
|
5
11
|
isGlobal?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Use a factory function to create options
|
|
14
|
+
*/
|
|
6
15
|
useFactory?: (...args: any[]) => Promise<SeederModuleOptions> | SeederModuleOptions;
|
|
16
|
+
/**
|
|
17
|
+
* Use a class that implements SeederOptionsFactory
|
|
18
|
+
*/
|
|
7
19
|
useClass?: Type<SeederOptionsFactory>;
|
|
20
|
+
/**
|
|
21
|
+
* Use an existing provider
|
|
22
|
+
*/
|
|
8
23
|
useExisting?: Type<SeederOptionsFactory>;
|
|
24
|
+
/**
|
|
25
|
+
* Dependencies to inject into the factory function or class
|
|
26
|
+
*/
|
|
9
27
|
inject?: any[];
|
|
10
28
|
}
|
|
29
|
+
//# sourceMappingURL=seeder-module-async-options.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeder-module-async-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/interfaces/seeder-module-async-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IAC7E;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IAEpF;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEtC;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAClB"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { SeederModuleOptions } from '../seeder/seeder.module';
|
|
2
|
+
/**
|
|
3
|
+
* Interface for SeederOptionsFactory
|
|
4
|
+
* Implement this interface to create a factory class for seeder configuration
|
|
5
|
+
*/
|
|
2
6
|
export interface SeederOptionsFactory {
|
|
3
7
|
createSeederOptions(): Promise<SeederModuleOptions> | SeederModuleOptions;
|
|
4
8
|
}
|
|
9
|
+
//# sourceMappingURL=seeder-options-factory.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeder-options-factory.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/interfaces/seeder-options-factory.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;CAC7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeder.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/seeder/seeder.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,gBAAgB,EACnB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAEH,wBAAwB,EAE3B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,KAAK,CACX,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,gBAAgB,CACxE,CAAC;IACF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,CAAC,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAaD,eAAO,MAAM,MAAM,GAAI,SAAS,aAAa,KAAG,YAyB/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeder.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/seeder/seeder.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACnB,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeder.module.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/seeder/seeder.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,gBAAgB,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAG/F,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IAClE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACjE,OAAO,CAAC,EAAE,KAAK,CACX,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,gBAAgB,CACxE,CAAC;IACF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAID,qBACa,YAAY;IAErB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,aAAa;IAkB5D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,aAAa;IAkBrE,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAgB5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeder.service.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/seeder/seeder.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,qBACa,aAAa;IAGlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE,oBAAyB;IAGjD,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IASnB,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAYpB,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAS1B,cAAc,IAAI,MAAM,EAAE;CAmC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.metadata.storage.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-seeder/src/lib/storages/factory.metadata.storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EACH,YAAY,EACZ,qBAAqB,EACxB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,GAAG,EAAE;QACD,SAAS,EAAE,qBAAqB,GAAG,YAAY,CAAC;QAChD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACL,CAAC;AAEF,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,UAAU,CAA8B;IAEhD,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAIzD,4BAA4B,CACxB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GACtB,oBAAoB,EAAE;CAI5B;AAID,eAAO,MAAM,sBAAsB,EAAE,0BACoC,CAAC"}
|