57 lines
2 KiB
JavaScript
57 lines
2 KiB
JavaScript
"use strict";
|
|
|
|
var _process = _interopRequireDefault(require("process"));
|
|
var _yargs = require("../core/yargs");
|
|
var _migrator = require("../core/migrator");
|
|
var _helpers = _interopRequireDefault(require("../helpers"));
|
|
var _path = _interopRequireDefault(require("path"));
|
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
exports.builder = yargs => (0, _yargs._baseOptions)(yargs).option('seed', {
|
|
describe: 'List of seed files',
|
|
type: 'array'
|
|
}).argv;
|
|
exports.handler = async function (args) {
|
|
const command = args._[0];
|
|
|
|
// legacy, gulp used to do this
|
|
await _helpers.default.config.init();
|
|
switch (command) {
|
|
case 'db:seed':
|
|
try {
|
|
const migrator = await (0, _migrator.getMigrator)('seeder', args);
|
|
|
|
// filter out cmd names
|
|
// for case like --seeders-path seeders --seed seedPerson.js db:seed
|
|
const seeds = (args.seed || []).filter(name => name !== 'db:seed' && name !== 'db:seed:undo').map(file => _path.default.basename(file));
|
|
await migrator.up(seeds);
|
|
} catch (e) {
|
|
_helpers.default.view.error(e);
|
|
}
|
|
break;
|
|
case 'db:seed:undo':
|
|
try {
|
|
const migrator = await (0, _migrator.getMigrator)('seeder', args);
|
|
let seeders = _helpers.default.umzug.getStorage('seeder') === 'none' ? await migrator.pending() : await migrator.executed();
|
|
if (args.seed) {
|
|
seeders = seeders.filter(seed => {
|
|
return args.seed.includes(seed.file);
|
|
});
|
|
}
|
|
if (seeders.length === 0) {
|
|
_helpers.default.view.log('No seeders found.');
|
|
return;
|
|
}
|
|
if (!args.seed) {
|
|
seeders = seeders.slice(-1);
|
|
}
|
|
await migrator.down({
|
|
migrations: _lodash.default.chain(seeders).map('file').reverse().value()
|
|
});
|
|
} catch (e) {
|
|
_helpers.default.view.error(e);
|
|
}
|
|
break;
|
|
}
|
|
_process.default.exit(0);
|
|
}; |