botpress
Version:
The world's first CMS for bots. Easily create, manage and extend chatbots.
56 lines (37 loc) • 1.53 kB
JavaScript
;
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