UNPKG

@smallprod/models

Version:
46 lines (45 loc) 1.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const createtable_1 = __importDefault(require("../migration/types/createtable")); class MigrationEntity { } exports.default = MigrationEntity; MigrationEntity.getAll = async (model) => { await MigrationEntity.checkQuery(model); return model.select('migrations', false, [], [], [ { attribute: 'migrated_at', mode: 'DESC' }, { attribute: 'id', mode: 'DESC' }, ], 'default_table', -1, -1, [], [], []); }; MigrationEntity.create = async (model, name) => { await MigrationEntity.checkQuery(model); return model.insert('migrations', [{ column: 'name', value: name }]); }; MigrationEntity.delete = async (model, name) => { await MigrationEntity.checkQuery(model); return model.delete('migrations', [ { column: 'name', operator: '=', value: name }, ]); }; MigrationEntity.reset = () => { MigrationEntity.canQuery = []; }; MigrationEntity.canQuery = []; MigrationEntity.checkQuery = async (model) => { if (!MigrationEntity.canQuery.includes(model)) { const res = await model.checkMigrationTable(); if (!res) { const createMigrationTable = new createtable_1.default('migrations'); createMigrationTable.addField('id', 'bigint').autoIncrement().primary(); createMigrationTable.addField('name', 'varchar').length(255).unique(); createMigrationTable .addField('migrated_at', 'datetime') .default('(DATE(CURRENT_TIMESTAMP))', true); await createMigrationTable.execute(model); } MigrationEntity.canQuery.push(model); } };