silvie
Version:
Typescript Back-end Framework
65 lines (63 loc) • 2.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _database = _interopRequireDefault(require("../../../database"));
var _log = _interopRequireDefault(require("../../../utils/log"));
var _register = _interopRequireDefault(require("@babel/register"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/* eslint-disable @typescript-eslint/no-var-requires,global-require,import/no-dynamic-require,no-await-in-loop,no-restricted-syntax */
process.env.BABEL_DISABLE_CACHE = '1';
(0, _register.default)({
configFile: _path.default.resolve(process.silviePath, 'assets/babel.config.js'),
extensions: ['.ts', '.js', '.gql', '.graphql', '.json'],
ignore: []
});
var _default = async args => {
const seedersDir = _path.default.resolve(process.rootPath, 'src/database/seeders');
let filenames = args._.slice(1);
if (filenames.length > 0) {
filenames = filenames.filter(file => {
const exists = _fs.default.existsSync(_path.default.resolve(seedersDir, `${file}.ts`));
if (!exists) {
_log.default.error('[Silvie] Seeder File Not Found');
(0, _log.default)(`There is no seeder named '${file}'`);
}
return exists;
});
}
if (filenames.length === 0) {
filenames = _fs.default.readdirSync(seedersDir).map(file => file.replace(/\.ts$/, ''));
}
if (filenames.length > 0) {
const seeders = filenames.map(file => {
const seeder = require(_path.default.resolve(seedersDir, file)).default;
if (!seeder) {
_log.default.error('[Silvie] Seeder Not Found');
(0, _log.default)(`There is no migration in '${file}'`);
}
seeder.filename = file;
return seeder;
}).sort((a, b) => (a.order || 0) - (b.order || 0));
_database.default.init();
await _database.default.disableForeignKeyChecks();
for (const seeder of seeders) {
try {
await seeder.prototype.seed();
_log.default.success('Seeded', `Successfully seeded '${seeder.filename}'`);
} catch (error) {
_log.default.error('Seed Failed', `Could not seed '${seeder.filename}'`);
(0, _log.default)(error);
}
}
await _database.default.enableForeignKeyChecks();
_database.default.closeConnection();
} else {
_log.default.warning('[Silvie] No Seeders Found');
(0, _log.default)('You can create new seeders using', _log.default.str`silvie make seeder`.underscore().bright());
}
};
exports.default = _default;