reiso
Version:
99 lines • 6.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ORM = require("typeorm");
let entities = {};
class ORMManager {
constructor(config) {
this.config = config;
}
async connect() {
if (!this.conn && !this.connPromise) {
let resolve = async () => {
this.conn = await this.init(this.config);
return this.conn;
};
this.connPromise = resolve();
}
await this.connPromise;
return this.conn;
}
async close() {
if (this.conn) {
await this.conn.close();
this.conn = null;
this.connPromise = null;
}
}
async init(config) {
return await ORM.createConnection(config);
}
async test() {
await this.connect();
}
async sync(mode = 'standart') {
let connection = await this.connect();
if (mode == 'force') {
try {
await connection.synchronize();
}
catch (e) {
await connection.synchronize(true);
}
}
else if (mode == 'passive') {
try {
await connection.synchronize();
}
catch (e) { }
}
else if (mode == 'standart') {
await connection.synchronize();
}
}
async drop() {
let connection = await this.connect();
await connection.dropDatabase();
}
}
exports.ORMManager = ORMManager;
function cleanEntities() {
entities = {};
}
exports.cleanEntities = cleanEntities;
function addEntity(name, scope, entity) {
if (entities[name]) {
entities[name].push({
entity,
scope
});
}
else {
entities[name] = [{
entity,
scope
}];
}
}
exports.addEntity = addEntity;
function getEntity(scope = 'Main', ...args) {
let result = [];
if (args && args.length > 0) {
args.forEach(name => {
result = result.concat(entities[name].filter(s => s.scope == scope).map(s => s.entity));
});
}
else {
for (let name in entities) {
result = result.concat(entities[name].filter(s => s.scope == scope).map(s => s.entity));
}
}
return result;
}
exports.getEntity = getEntity;
function RegisterEntity(name, scope = 'Main') {
return (entity) => {
addEntity(name, scope, entity);
};
}
exports.RegisterEntity = RegisterEntity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT1JNTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZXJ2ZXIvT1JNTWFuYWdlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBK0I7QUFFL0IsSUFBSSxRQUFRLEdBR0osRUFBRSxDQUFDO0FBRVg7SUFNSSxZQUFZLE1BQTZCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLENBQUM7U0FDaEM7UUFFRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU07UUFDckIsT0FBTyxNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDYixNQUFN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