quaerateum
Version:
Simple typescript ORM for node.js based on data-mapper, unit-of-work and identity-map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JS.
48 lines (37 loc) • 955 B
text/typescript
import { MetadataStorage } from '../metadata';
export function BeforeCreate() {
return hook('beforeCreate');
}
export function AfterCreate() {
return hook('afterCreate');
}
export function BeforeUpdate() {
return hook('beforeUpdate');
}
export function AfterUpdate() {
return hook('afterUpdate');
}
/**
* Called before deleting entity, but only when providing initialized entity to EM#remove()
*/
export function BeforeDelete() {
return hook('beforeDelete');
}
/**
* Called after deleting entity, but only when providing initialized entity to EM#remove()
*/
export function AfterDelete() {
return hook('afterDelete');
}
function hook(type: string) {
return function (target: any, method: string) {
const meta = MetadataStorage.getMetadata(target.constructor.name);
if (!meta.hooks) {
meta.hooks = {};
}
if (!meta.hooks[type]) {
meta.hooks[type] = [];
}
meta.hooks[type].push(method);
};
}