UNPKG

abstract-migrate

Version:
67 lines (54 loc) 1.71 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _config = require('../config'); var _config2 = _interopRequireDefault(_config); var _promise = require('./promise'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var requiredFunctions = ['load', 'add', 'remove', 'acquireLock', 'releaseLock']; function checkEngine(engine) { requiredFunctions.forEach(function (fn) { if (typeof engine[fn] !== 'function') { throw new Error('Engine does not have a \'' + fn + '\' function'); } }); } function getEngine() { // We need this set up at this point... if (!_config2.default.engine) { throw new Error('No engine has been set'); } var engine = require(_path2.default.join(process.cwd(), _config2.default.engine)); try { checkEngine(engine.default); return engine.default; } catch (err) { checkEngine(engine); } return engine; } exports.default = { load: function load() { var engine = getEngine(); return (0, _promise.promiseback)(engine.load); }, add: function add(migrations) { var engine = getEngine(); return (0, _promise.promiseback)(engine.add, migrations); }, remove: function remove(migrations) { var engine = getEngine(); return (0, _promise.promiseback)(engine.remove, migrations); }, acquireLock: function acquireLock() { var engine = getEngine(); return (0, _promise.promiseback)(engine.acquireLock); }, releaseLock: function releaseLock() { var engine = getEngine(); return (0, _promise.promiseback)(engine.releaseLock); } };