UNPKG

silvie

Version:

Typescript Back-end Framework

65 lines (63 loc) 2.63 kB
"use strict"; 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;