@mongez/gnz
Version:
Generator Z, the next generation of scaffolding tools.
28 lines (27 loc) • 1.64 kB
JavaScript
;var fs=require('@mongez/fs'),reinforcements=require('@mongez/reinforcements'),path=require('path'),formatDate=require('../../utils/format-date.js');require('os'),require('eslint'),require('prettier');var throwIf=require('../../utils/throw-if.js'),template=require('./template.js'),utilizer=require('./utilizer.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var path__default=/*#__PURE__*/_interopDefault(path);const defaultMigrationFileName = (name) => {
return `${formatDate.formatDate()}-${reinforcements.toKebabCase(name)}.migration`;
};
const generate = async ({ name, modelClass, modelPath = "./" + reinforcements.toKebabCase(modelClass), unique = [], index = [], text = [], geo = [], fileName = defaultMigrationFileName(name) + ".ts", uniqueId = true, saveTo, }) => {
fs.ensureDirectory(saveTo);
const migrationFilePath = path__default.default.join(saveTo, `${name}.ts`);
throwIf.throwIf(fs.fileExists(migrationFilePath), `Migration file ${name}.ts already exists`);
const { indexes, indexesDown, modelFileName, bluePrintClassName, migrationFunctionName, } = utilizer.utilizeMigration({
name,
geo,
index,
modelClass,
modelPath,
text,
unique,
uniqueId,
});
const modelContent = await template.generateMigrationTemplate({
indexes,
indexesDown,
modelClass,
modelFileName,
bluePrintClassName,
migrationFunctionName,
});
fs.putFile(path__default.default.join(saveTo, fileName), modelContent);
};exports.generate=generate;//# sourceMappingURL=generator.js.map