UNPKG

botpress

Version:

The world's first CMS for bots. Easily create, manage and extend chatbots.

56 lines (37 loc) 1.53 kB
'use strict'; var _util = require('../util'); var _util2 = _interopRequireDefault(_util); var _stats = require('../stats'); var _stats2 = _interopRequireDefault(_stats); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _bluebird = require('bluebird'); var _bluebird2 = _interopRequireDefault(_bluebird); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = fromVersion => { (0, _stats2.default)({}).track('cli', 'migration', fromVersion); if (!_fs2.default.existsSync('./botfile.js')) { throw new Error('You must be inside a bot directory to run a migration'); } const files = _lodash2.default.sortBy(require.context('./migrations/').keys(), x => x); const toApply = _lodash2.default.filter(files, f => { if (!/.js$/i.test(f)) { return false; } return parseFloat(fromVersion) < parseFloat(f.replace(/\.js/i, '')); }); return _bluebird2.default.mapSeries(toApply, file => { const migration = require('./migrations/' + file); return migration(_path2.default.resolve('.')).then(() => { _util2.default.print('success', `Migration ${file.replace('.js', '')} applied successfully`); }); }).finally(() => { _util2.default.print('success', 'Migration completed.'); process.exit(0); }); }; //# sourceMappingURL=migrate.js.map