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