UNPKG

@n4it/typeorm-audit

Version:

TypeORM Auditing: Create history tables and manage changes of entities automagically.

47 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withAuditDataSource = exports.getAuditOptions = exports.getAuditEntity = void 0; const typeorm_1 = require("typeorm"); const reflect_1 = require("./reflect"); const audit_subscriber_1 = require("../subscribers/audit.subscriber"); const getAuditEntity = (entityMetadata) => { const meta = (0, reflect_1.getMetaData)(entityMetadata.target); if (!meta) { return undefined; } return meta.historyEntity; }; exports.getAuditEntity = getAuditEntity; const getAuditOptions = async (options) => { const originDataSource = await new typeorm_1.DataSource({ ...options, logger: undefined, synchronize: false, }).initialize(); const allMetaData = originDataSource.entityMetadatas .map(exports.getAuditEntity) .filter(Boolean); let originalEntities = originDataSource.options.entities || []; let originalSubscribers = originDataSource.options.subscribers || []; if (!Array.isArray(originalEntities)) { originalEntities = Object.values(originalEntities); } if (!Array.isArray(originalSubscribers)) { originalSubscribers = Object.values(originalSubscribers); } const combinedEntities = [...originalEntities, ...allMetaData]; const combinedSubscribers = [...originalSubscribers, audit_subscriber_1.AuditSubscriber]; await originDataSource.destroy(); return { ...options, entities: combinedEntities, subscribers: combinedSubscribers, }; }; exports.getAuditOptions = getAuditOptions; const withAuditDataSource = async (dataSource) => { const newOptions = await (0, exports.getAuditOptions)(dataSource.options); return new typeorm_1.DataSource(newOptions); }; exports.withAuditDataSource = withAuditDataSource; //# sourceMappingURL=init.js.map