@flusys/nestjs-core 1.0.1 → 1.1.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/README.md +16 -16
- package/cjs/seeders/data-generator.js +14 -0
- package/cjs/seeders/field-patterns.js +4 -0
- package/fesm/seeders/data-generator.js +14 -0
- package/fesm/seeders/field-patterns.js +4 -0
- package/interfaces/app-config.interfaces.d.ts +1 -0
- package/interfaces/database.interface.d.ts +1 -0
- package/package.json +1 -1
- package/seeders/field-patterns.d.ts +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Core Package Guide
|
|
2
2
|
|
|
3
3
|
> **Package:** `@flusys/nestjs-core`
|
|
4
|
+
> **Version:** 1.1.0
|
|
4
5
|
> **Type:** Pure TypeScript foundation (zero NestJS dependencies)
|
|
5
6
|
|
|
6
7
|
Foundation layer providing type-safe configuration, database utilities, migration CLI, seeders with intelligent pattern detection, and Swagger setup.
|
|
@@ -578,39 +579,38 @@ import {
|
|
|
578
579
|
|
|
579
580
|
```typescript
|
|
580
581
|
import {
|
|
582
|
+
// Classes
|
|
581
583
|
BaseSeeder,
|
|
582
584
|
SeedRunner,
|
|
583
585
|
EntityReader,
|
|
584
586
|
DataGenerator,
|
|
585
|
-
|
|
586
|
-
seedConfig,
|
|
587
|
-
ISeedConfig,
|
|
588
|
-
configureSeedConfig,
|
|
589
|
-
runSeedCli,
|
|
590
|
-
getEntityCount,
|
|
591
|
-
shouldSkipEntity,
|
|
592
|
-
getSeedingOrder,
|
|
587
|
+
// Interfaces
|
|
593
588
|
ISeedResult,
|
|
594
589
|
ISeedOptions,
|
|
595
590
|
ISeederLogger,
|
|
596
|
-
defaultLogger,
|
|
597
591
|
IEntityInfo,
|
|
598
592
|
IColumnInfo,
|
|
599
593
|
IRelationInfo,
|
|
600
|
-
|
|
594
|
+
ISeedConfig,
|
|
595
|
+
// Functions
|
|
596
|
+
defaultLogger,
|
|
597
|
+
seedConfig,
|
|
598
|
+
configureSeedConfig,
|
|
599
|
+
runSeedCli,
|
|
600
|
+
getEntityCount,
|
|
601
|
+
shouldSkipEntity,
|
|
602
|
+
getSeedingOrder,
|
|
603
|
+
// Field pattern functions
|
|
601
604
|
detectFieldPattern,
|
|
602
605
|
detectTypeCategory,
|
|
603
|
-
getStringLengthCategory,
|
|
604
606
|
isSystemField,
|
|
605
|
-
|
|
606
|
-
FieldPatternType,
|
|
607
|
+
// Constants
|
|
607
608
|
SYSTEM_FIELDS,
|
|
608
|
-
AUDIT_FIELDS,
|
|
609
|
-
IDENTITY_FIELDS,
|
|
610
|
-
BOOLEAN_KEYWORDS,
|
|
611
609
|
} from '@flusys/nestjs-core/seeders';
|
|
612
610
|
```
|
|
613
611
|
|
|
612
|
+
> **Note:** `FieldPatternType`, `AUDIT_FIELDS`, `IDENTITY_FIELDS`, `BOOLEAN_KEYWORDS`, `getStringLengthCategory`, and `getTokenLength` are internal utilities available in `field-patterns.ts` but not exported from the public API.
|
|
613
|
+
|
|
614
614
|
### Swagger
|
|
615
615
|
|
|
616
616
|
```typescript
|
|
@@ -111,6 +111,20 @@ let DataGenerator = class DataGenerator {
|
|
|
111
111
|
});
|
|
112
112
|
case 'company':
|
|
113
113
|
return _faker.faker.company.name();
|
|
114
|
+
case 'emailProvider':
|
|
115
|
+
return _faker.faker.helpers.arrayElement([
|
|
116
|
+
'smtp',
|
|
117
|
+
'sendgrid',
|
|
118
|
+
'mailgun',
|
|
119
|
+
'ses',
|
|
120
|
+
'postmark'
|
|
121
|
+
]);
|
|
122
|
+
case 'formAccessType':
|
|
123
|
+
return _faker.faker.helpers.arrayElement([
|
|
124
|
+
'public',
|
|
125
|
+
'authenticated',
|
|
126
|
+
'permission'
|
|
127
|
+
]);
|
|
114
128
|
default:
|
|
115
129
|
return undefined;
|
|
116
130
|
}
|
|
@@ -116,6 +116,10 @@ function detectFieldPattern(column) {
|
|
|
116
116
|
if (nameLower.includes('serial') || nameLower.includes('order')) return 'serial';
|
|
117
117
|
// Company
|
|
118
118
|
if (nameLower.includes('company') && !nameLower.includes('id')) return 'company';
|
|
119
|
+
// Email provider type
|
|
120
|
+
if (nameLower === 'provider' || nameLower === 'emailprovider') return 'emailProvider';
|
|
121
|
+
// Form access type
|
|
122
|
+
if (nameLower === 'accesstype' || nameLower === 'access_type') return 'formAccessType';
|
|
119
123
|
return undefined;
|
|
120
124
|
}
|
|
121
125
|
function detectTypeCategory(type) {
|
|
@@ -106,6 +106,20 @@ import { detectFieldPattern, detectTypeCategory, getStringLengthCategory, getTok
|
|
|
106
106
|
});
|
|
107
107
|
case 'company':
|
|
108
108
|
return faker.company.name();
|
|
109
|
+
case 'emailProvider':
|
|
110
|
+
return faker.helpers.arrayElement([
|
|
111
|
+
'smtp',
|
|
112
|
+
'sendgrid',
|
|
113
|
+
'mailgun',
|
|
114
|
+
'ses',
|
|
115
|
+
'postmark'
|
|
116
|
+
]);
|
|
117
|
+
case 'formAccessType':
|
|
118
|
+
return faker.helpers.arrayElement([
|
|
119
|
+
'public',
|
|
120
|
+
'authenticated',
|
|
121
|
+
'permission'
|
|
122
|
+
]);
|
|
109
123
|
default:
|
|
110
124
|
return undefined;
|
|
111
125
|
}
|
|
@@ -79,6 +79,10 @@
|
|
|
79
79
|
if (nameLower.includes('serial') || nameLower.includes('order')) return 'serial';
|
|
80
80
|
// Company
|
|
81
81
|
if (nameLower.includes('company') && !nameLower.includes('id')) return 'company';
|
|
82
|
+
// Email provider type
|
|
83
|
+
if (nameLower === 'provider' || nameLower === 'emailprovider') return 'emailProvider';
|
|
84
|
+
// Form access type
|
|
85
|
+
if (nameLower === 'accesstype' || nameLower === 'access_type') return 'formAccessType';
|
|
82
86
|
return undefined;
|
|
83
87
|
}
|
|
84
88
|
/**
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ export declare const SYSTEM_FIELDS: string[];
|
|
|
3
3
|
export declare const AUDIT_FIELDS: string[];
|
|
4
4
|
export declare const IDENTITY_FIELDS: string[];
|
|
5
5
|
export declare const BOOLEAN_KEYWORDS: string[];
|
|
6
|
-
export type FieldPatternType = 'skip' | 'null' | 'boolean' | 'token' | 'firstName' | 'lastName' | 'fullName' | 'email' | 'phone' | 'address' | 'street' | 'city' | 'state' | 'country' | 'zipCode' | 'url' | 'domain' | 'slug' | 'description' | 'summary' | 'content' | 'title' | 'username' | 'password' | 'birthdate' | 'futureDate' | 'recentDateOrNull' | 'serial' | 'company';
|
|
6
|
+
export type FieldPatternType = 'skip' | 'null' | 'boolean' | 'token' | 'firstName' | 'lastName' | 'fullName' | 'email' | 'phone' | 'address' | 'street' | 'city' | 'state' | 'country' | 'zipCode' | 'url' | 'domain' | 'slug' | 'description' | 'summary' | 'content' | 'title' | 'username' | 'password' | 'birthdate' | 'futureDate' | 'recentDateOrNull' | 'serial' | 'company' | 'emailProvider' | 'formAccessType';
|
|
7
7
|
export type ColumnTypeCategory = 'string' | 'integer' | 'decimal' | 'boolean' | 'date' | 'timestamp' | 'time' | 'uuid' | 'json' | 'array' | 'unknown';
|
|
8
8
|
export declare function detectFieldPattern(column: IColumnInfo): FieldPatternType | undefined;
|
|
9
9
|
export declare function detectTypeCategory(type: string): ColumnTypeCategory;
|