@punks/backend-entity-manager 0.0.61 → 0.0.62
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/cjs/index.js +84 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/actions.d.ts +3 -2
- package/dist/cjs/types/abstractions/configuration.d.ts +2 -2
- package/dist/cjs/types/abstractions/index.d.ts +1 -1
- package/dist/cjs/types/abstractions/manager.d.ts +2 -2
- package/dist/cjs/types/abstractions/queries.d.ts +8 -2
- package/dist/cjs/types/abstractions/seed.d.ts +8 -0
- package/dist/cjs/types/actions/search.d.ts +2 -1
- package/dist/cjs/types/base/index.d.ts +1 -0
- package/dist/cjs/types/base/seed.d.ts +9 -0
- package/dist/cjs/types/concrete/index.d.ts +3 -3
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +2 -2
- package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +1 -0
- package/dist/cjs/types/integrations/repository/typeorm/seed.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/seeder.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/__test__/tests/base/test_seeder.test.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/base/entityActions.d.ts +2 -2
- package/dist/cjs/types/platforms/nest/base/entityManager.d.ts +2 -2
- package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/decorators/seed.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/integrations/typeorm/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +2 -2
- package/dist/cjs/types/platforms/nest/integrations/typeorm/seed.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/utils.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/services/manager/index.d.ts +2 -2
- package/dist/cjs/types/providers/services.d.ts +16 -16
- package/dist/cjs/types/queries/search.d.ts +2 -2
- package/dist/cjs/types/reflection/decorators/index.d.ts +1 -1
- package/dist/cjs/types/templates/queryBuilder.d.ts +2 -2
- package/dist/esm/index.js +82 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/actions.d.ts +3 -2
- package/dist/esm/types/abstractions/configuration.d.ts +2 -2
- package/dist/esm/types/abstractions/index.d.ts +1 -1
- package/dist/esm/types/abstractions/manager.d.ts +2 -2
- package/dist/esm/types/abstractions/queries.d.ts +8 -2
- package/dist/esm/types/abstractions/seed.d.ts +8 -0
- package/dist/esm/types/actions/search.d.ts +2 -1
- package/dist/esm/types/base/index.d.ts +1 -0
- package/dist/esm/types/base/seed.d.ts +9 -0
- package/dist/esm/types/concrete/index.d.ts +3 -3
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +2 -2
- package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +1 -0
- package/dist/esm/types/integrations/repository/typeorm/seed.d.ts +7 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/seeder.d.ts +9 -0
- package/dist/esm/types/platforms/nest/__test__/tests/base/test_seeder.test.d.ts +1 -0
- package/dist/esm/types/platforms/nest/base/entityActions.d.ts +2 -2
- package/dist/esm/types/platforms/nest/base/entityManager.d.ts +2 -2
- package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/decorators/seed.d.ts +5 -0
- package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +1 -0
- package/dist/esm/types/platforms/nest/integrations/typeorm/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +2 -2
- package/dist/esm/types/platforms/nest/integrations/typeorm/seed.d.ts +11 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/processors/initializer/utils.d.ts +1 -0
- package/dist/esm/types/platforms/nest/services/manager/index.d.ts +2 -2
- package/dist/esm/types/providers/services.d.ts +16 -16
- package/dist/esm/types/queries/search.d.ts +2 -2
- package/dist/esm/types/reflection/decorators/index.d.ts +1 -1
- package/dist/esm/types/templates/queryBuilder.d.ts +2 -2
- package/dist/index.d.ts +96 -47
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var backendCore = require('@punks/backend-core');
|
|
5
6
|
var common = require('@nestjs/common');
|
|
6
7
|
var async_hooks = require('async_hooks');
|
|
7
8
|
var bcrypt = require('bcrypt');
|
|
8
|
-
var backendCore = require('@punks/backend-core');
|
|
9
9
|
var constants = require('@nestjs/common/constants');
|
|
10
10
|
var constants$1 = require('@nestjs/core/injector/constants');
|
|
11
11
|
var metadataScanner = require('@nestjs/core/metadata-scanner');
|
|
@@ -87,6 +87,25 @@ exports.SortDirection = void 0;
|
|
|
87
87
|
SortDirection["Desc"] = "desc";
|
|
88
88
|
})(exports.SortDirection || (exports.SortDirection = {}));
|
|
89
89
|
|
|
90
|
+
class EntitySeeder {
|
|
91
|
+
constructor() {
|
|
92
|
+
this.logger = backendCore.Log.getLogger(EntitySeeder.name);
|
|
93
|
+
}
|
|
94
|
+
async execute() {
|
|
95
|
+
const items = await this.getEntries();
|
|
96
|
+
for (const item of items) {
|
|
97
|
+
const exists = await this.exists(item.identifier);
|
|
98
|
+
if (!exists) {
|
|
99
|
+
const data = item.data();
|
|
100
|
+
await this.create(data);
|
|
101
|
+
this.logger.info(`Entity created`, {
|
|
102
|
+
data,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
90
109
|
const PLATFORM_EVENT_NAMESPACE = "platform";
|
|
91
110
|
const PlatformEvents = {
|
|
92
111
|
Messaging: {
|
|
@@ -138,6 +157,7 @@ const EntityManagerSymbols = {
|
|
|
138
157
|
EntityConverter: Symbol.for("WP:ENTITY_CONVERTER"),
|
|
139
158
|
EntityManager: Symbol.for("WP:ENTITY_MANAGER"),
|
|
140
159
|
EntityQueryBuilder: Symbol.for("WP:ENTITY_QUERY_BUILDER"),
|
|
160
|
+
EntitySeeder: Symbol.for("WP:ENTITY_SEEDER"),
|
|
141
161
|
EmailProvider: Symbol.for("WP:EMAIL_PROVIDER"),
|
|
142
162
|
EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
|
|
143
163
|
};
|
|
@@ -196,6 +216,11 @@ const WpEntityQueryBuilder = (entityName, props = {}) => common.applyDecorators(
|
|
|
196
216
|
...props,
|
|
197
217
|
}));
|
|
198
218
|
|
|
219
|
+
const WpEntitySeeder = (entityName, props = {}) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EntitySeeder, {
|
|
220
|
+
entityName,
|
|
221
|
+
...props,
|
|
222
|
+
}));
|
|
223
|
+
|
|
199
224
|
const WpEventsTracker = (props = {}) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EventsTracker, {
|
|
200
225
|
...props,
|
|
201
226
|
}));
|
|
@@ -19587,6 +19612,10 @@ class EmailTemplatesCollection {
|
|
|
19587
19612
|
}
|
|
19588
19613
|
}
|
|
19589
19614
|
|
|
19615
|
+
const orderByPriority = (items, priorityFieldSelector, nameFieldSelector) => {
|
|
19616
|
+
return backendCore.sort(items, backendCore.byField((x) => priorityFieldSelector(x) ?? Number.MAX_VALUE), backendCore.byField((x) => nameFieldSelector(x)));
|
|
19617
|
+
};
|
|
19618
|
+
|
|
19590
19619
|
var EntityManagerInitializer_1;
|
|
19591
19620
|
exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerInitializer {
|
|
19592
19621
|
constructor(discover, registry, eventEmitter) {
|
|
@@ -19612,6 +19641,7 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
19612
19641
|
await this.registerEmailProviders();
|
|
19613
19642
|
await this.registerEventTrackingProviders();
|
|
19614
19643
|
await this.executeInitializers(app);
|
|
19644
|
+
await this.executeSeeders();
|
|
19615
19645
|
this.logger.log("Entity manager initialization completed 🚀");
|
|
19616
19646
|
}
|
|
19617
19647
|
async registerAuthentication(authenticationProvider) {
|
|
@@ -19659,12 +19689,20 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
19659
19689
|
}
|
|
19660
19690
|
async executeInitializers(app) {
|
|
19661
19691
|
const initializers = await this.discoverAppInitializers();
|
|
19662
|
-
const sortedInitializers =
|
|
19692
|
+
const sortedInitializers = orderByPriority(initializers, (x) => x.meta.priority, (x) => x.discoveredClass.name);
|
|
19663
19693
|
for (const initializer of sortedInitializers) {
|
|
19664
19694
|
await initializer.discoveredClass.instance.initialize(app);
|
|
19665
19695
|
this.logger.log(`Entity manager app initializer ${initializer.discoveredClass.name} initialized 💪`);
|
|
19666
19696
|
}
|
|
19667
19697
|
}
|
|
19698
|
+
async executeSeeders() {
|
|
19699
|
+
const seders = await this.discoverEntitySeeders();
|
|
19700
|
+
const sortedSeeder = orderByPriority(seders, (x) => x.meta.priority, (x) => x.discoveredClass.name);
|
|
19701
|
+
for (const initializer of sortedSeeder) {
|
|
19702
|
+
await initializer.discoveredClass.instance.execute();
|
|
19703
|
+
this.logger.log(`Entity seeder initializer ${initializer.discoveredClass.name} initialized 💪`);
|
|
19704
|
+
}
|
|
19705
|
+
}
|
|
19668
19706
|
async registerEventTrackingProviders() {
|
|
19669
19707
|
const providers = await this.discoverEventTrackingProviders();
|
|
19670
19708
|
if (!providers.length) {
|
|
@@ -19726,6 +19764,9 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
19726
19764
|
async discoverAppInitializers() {
|
|
19727
19765
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.AppInitializer);
|
|
19728
19766
|
}
|
|
19767
|
+
async discoverEntitySeeders() {
|
|
19768
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntitySeeder);
|
|
19769
|
+
}
|
|
19729
19770
|
async discoverEmailTemplates() {
|
|
19730
19771
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailTemplate);
|
|
19731
19772
|
}
|
|
@@ -19912,6 +19953,9 @@ class TypeOrmRepository {
|
|
|
19912
19953
|
constructor(innerRepository) {
|
|
19913
19954
|
this.innerRepository = innerRepository;
|
|
19914
19955
|
}
|
|
19956
|
+
getInnerRepository() {
|
|
19957
|
+
return this.innerRepository;
|
|
19958
|
+
}
|
|
19915
19959
|
async exists(id) {
|
|
19916
19960
|
if (typeof id === "undefined") {
|
|
19917
19961
|
throw new Error("Invalid 'id' parameter.");
|
|
@@ -20006,6 +20050,41 @@ class NestTypeOrmRepository extends TypeOrmRepository {
|
|
|
20006
20050
|
}
|
|
20007
20051
|
}
|
|
20008
20052
|
|
|
20053
|
+
class TypeOrmEntitySeeder extends EntitySeeder {
|
|
20054
|
+
async exists(condition) {
|
|
20055
|
+
const count = await this.getRepository().count(condition);
|
|
20056
|
+
return count > 0;
|
|
20057
|
+
}
|
|
20058
|
+
async create(entity) {
|
|
20059
|
+
await this.getRepository().insert(entity);
|
|
20060
|
+
}
|
|
20061
|
+
}
|
|
20062
|
+
|
|
20063
|
+
const getInstanceDecoratorData = (metadataKey, instance) => {
|
|
20064
|
+
const reflector = new core.Reflector();
|
|
20065
|
+
return reflector.get(metadataKey, instance.constructor);
|
|
20066
|
+
};
|
|
20067
|
+
|
|
20068
|
+
const resolveTypeormRepository = (entityName, registry) => {
|
|
20069
|
+
const repository = registry
|
|
20070
|
+
.resolveEntityServicesCollection(entityName)
|
|
20071
|
+
.resolveRepository();
|
|
20072
|
+
return repository.getInnerRepository();
|
|
20073
|
+
};
|
|
20074
|
+
class NestTypeOrmEntitySeeder extends TypeOrmEntitySeeder {
|
|
20075
|
+
constructor(registry) {
|
|
20076
|
+
super();
|
|
20077
|
+
this.registry = registry;
|
|
20078
|
+
this.metadata = getInstanceDecoratorData(EntityManagerSymbols.EntitySeeder, this);
|
|
20079
|
+
}
|
|
20080
|
+
get priority() {
|
|
20081
|
+
return this.metadata.priority;
|
|
20082
|
+
}
|
|
20083
|
+
getRepository() {
|
|
20084
|
+
return resolveTypeormRepository(this.metadata.entityName, this.registry);
|
|
20085
|
+
}
|
|
20086
|
+
}
|
|
20087
|
+
|
|
20009
20088
|
class AppExceptionsFilterBase {
|
|
20010
20089
|
catch(exception, host) {
|
|
20011
20090
|
const ctx = host.switchToHttp();
|
|
@@ -20047,11 +20126,6 @@ const AwsSesModuleSymbols = {
|
|
|
20047
20126
|
EmailTemplate: Symbol.for("WP.PLG:AWS_SES.EMAIL_TEMPLATE"),
|
|
20048
20127
|
};
|
|
20049
20128
|
|
|
20050
|
-
const getInstanceDecoratorData = (metadataKey, instance) => {
|
|
20051
|
-
const reflector = new core.Reflector();
|
|
20052
|
-
return reflector.get(metadataKey, instance.constructor);
|
|
20053
|
-
};
|
|
20054
|
-
|
|
20055
20129
|
class AwsSesEmailTemplate {
|
|
20056
20130
|
async processPayload(payload) {
|
|
20057
20131
|
return payload;
|
|
@@ -25313,11 +25387,13 @@ exports.EntityManagerSymbols = EntityManagerSymbols;
|
|
|
25313
25387
|
exports.EntityManagerUnauthorizedException = EntityManagerUnauthorizedException;
|
|
25314
25388
|
exports.EntityNotFoundException = EntityNotFoundException;
|
|
25315
25389
|
exports.EntityOperationUnauthorizedException = EntityOperationUnauthorizedException;
|
|
25390
|
+
exports.EntitySeeder = EntitySeeder;
|
|
25316
25391
|
exports.InvalidCredentialsError = InvalidCredentialsError;
|
|
25317
25392
|
exports.MultipleEntitiesFoundException = MultipleEntitiesFoundException;
|
|
25318
25393
|
exports.NestEntityActions = NestEntityActions;
|
|
25319
25394
|
exports.NestEntityAuthorizationMiddleware = NestEntityAuthorizationMiddleware;
|
|
25320
25395
|
exports.NestEntityManager = NestEntityManager;
|
|
25396
|
+
exports.NestTypeOrmEntitySeeder = NestTypeOrmEntitySeeder;
|
|
25321
25397
|
exports.NestTypeOrmQueryBuilder = NestTypeOrmQueryBuilder;
|
|
25322
25398
|
exports.NestTypeOrmRepository = NestTypeOrmRepository;
|
|
25323
25399
|
exports.OperationTokenMismatchError = OperationTokenMismatchError;
|
|
@@ -25337,6 +25413,7 @@ exports.WpEntityConverter = WpEntityConverter;
|
|
|
25337
25413
|
exports.WpEntityManager = WpEntityManager;
|
|
25338
25414
|
exports.WpEntityQueryBuilder = WpEntityQueryBuilder;
|
|
25339
25415
|
exports.WpEntityRepository = WpEntityRepository;
|
|
25416
|
+
exports.WpEntitySeeder = WpEntitySeeder;
|
|
25340
25417
|
exports.WpEventsTracker = WpEventsTracker;
|
|
25341
25418
|
exports.WpSendgridEmailTemplate = WpSendgridEmailTemplate;
|
|
25342
25419
|
exports.WpUserService = WpUserService;
|