mirror of
https://github.com/hexastack/hexabot
synced 2025-03-12 15:12:08 +00:00
fix(api): baseRepository event emitter logic order
This commit is contained in:
parent
14df503041
commit
9d5b23dc3f
@ -75,51 +75,51 @@ export abstract class BaseRepository<
|
|||||||
|
|
||||||
hooks?.validate.pre.execute(async function () {
|
hooks?.validate.pre.execute(async function () {
|
||||||
const doc = this as HydratedDocument<T>;
|
const doc = this as HydratedDocument<T>;
|
||||||
repository.emitter.emit(repository.getEventName(EHook.preValidate), doc);
|
|
||||||
await repository.preValidate(doc);
|
await repository.preValidate(doc);
|
||||||
|
repository.emitter.emit(repository.getEventName(EHook.preValidate), doc);
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.validate.post.execute(async function (created: HydratedDocument<T>) {
|
hooks?.validate.post.execute(async function (created: HydratedDocument<T>) {
|
||||||
|
await repository.postValidate(created);
|
||||||
repository.emitter.emit(
|
repository.emitter.emit(
|
||||||
repository.getEventName(EHook.postValidate),
|
repository.getEventName(EHook.postValidate),
|
||||||
created,
|
created,
|
||||||
);
|
);
|
||||||
await repository.postValidate(created);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.save.pre.execute(async function () {
|
hooks?.save.pre.execute(async function () {
|
||||||
const doc = this as HydratedDocument<T>;
|
const doc = this as HydratedDocument<T>;
|
||||||
repository.emitter.emit(repository.getEventName(EHook.preCreate), doc);
|
|
||||||
await repository.preCreate(doc);
|
await repository.preCreate(doc);
|
||||||
|
repository.emitter.emit(repository.getEventName(EHook.preCreate), doc);
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.save.post.execute(async function (created: HydratedDocument<T>) {
|
hooks?.save.post.execute(async function (created: HydratedDocument<T>) {
|
||||||
|
await repository.postCreate(created);
|
||||||
repository.emitter.emit(
|
repository.emitter.emit(
|
||||||
repository.getEventName(EHook.postCreate),
|
repository.getEventName(EHook.postCreate),
|
||||||
created,
|
created,
|
||||||
);
|
);
|
||||||
await repository.postCreate(created);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.deleteOne.pre.execute(async function () {
|
hooks?.deleteOne.pre.execute(async function () {
|
||||||
const query = this as Query<DeleteResult, D, unknown, T, 'deleteOne'>;
|
const query = this as Query<DeleteResult, D, unknown, T, 'deleteOne'>;
|
||||||
const criteria = query.getQuery();
|
const criteria = query.getQuery();
|
||||||
|
await repository.preDelete(query, criteria);
|
||||||
repository.emitter.emit(
|
repository.emitter.emit(
|
||||||
repository.getEventName(EHook.preDelete),
|
repository.getEventName(EHook.preDelete),
|
||||||
query,
|
query,
|
||||||
criteria,
|
criteria,
|
||||||
);
|
);
|
||||||
await repository.preDelete(query, criteria);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.deleteOne.post.execute(async function (result: DeleteResult) {
|
hooks?.deleteOne.post.execute(async function (result: DeleteResult) {
|
||||||
const query = this as Query<DeleteResult, D, unknown, T, 'deleteOne'>;
|
const query = this as Query<DeleteResult, D, unknown, T, 'deleteOne'>;
|
||||||
|
await repository.postDelete(query, result);
|
||||||
repository.emitter.emit(
|
repository.emitter.emit(
|
||||||
repository.getEventName(EHook.postDelete),
|
repository.getEventName(EHook.postDelete),
|
||||||
query,
|
query,
|
||||||
result,
|
result,
|
||||||
);
|
);
|
||||||
await repository.postDelete(query, result);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.deleteMany.pre.execute(async function () {
|
hooks?.deleteMany.pre.execute(async function () {
|
||||||
@ -142,27 +142,27 @@ export abstract class BaseRepository<
|
|||||||
const criteria = query.getFilter();
|
const criteria = query.getFilter();
|
||||||
const updates = query.getUpdate();
|
const updates = query.getUpdate();
|
||||||
|
|
||||||
|
await repository.preUpdate(query, criteria, updates);
|
||||||
repository.emitter.emit(
|
repository.emitter.emit(
|
||||||
repository.getEventName(EHook.preUpdate),
|
repository.getEventName(EHook.preUpdate),
|
||||||
criteria,
|
criteria,
|
||||||
updates?.['$set'],
|
updates?.['$set'],
|
||||||
);
|
);
|
||||||
await repository.preUpdate(query, criteria, updates);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hooks?.findOneAndUpdate.post.execute(async function (
|
hooks?.findOneAndUpdate.post.execute(async function (
|
||||||
updated: HydratedDocument<T>,
|
updated: HydratedDocument<T>,
|
||||||
) {
|
) {
|
||||||
if (updated) {
|
if (updated) {
|
||||||
repository.emitter.emit(
|
|
||||||
repository.getEventName(EHook.postUpdate),
|
|
||||||
updated,
|
|
||||||
);
|
|
||||||
const query = this as Query<D, D, unknown, T, 'findOneAndUpdate'>;
|
const query = this as Query<D, D, unknown, T, 'findOneAndUpdate'>;
|
||||||
await repository.postUpdate(
|
await repository.postUpdate(
|
||||||
query,
|
query,
|
||||||
plainToClass(repository.cls, updated, repository.transformOpts),
|
plainToClass(repository.cls, updated, repository.transformOpts),
|
||||||
);
|
);
|
||||||
|
repository.emitter.emit(
|
||||||
|
repository.getEventName(EHook.postUpdate),
|
||||||
|
updated,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user