UNPKG

@mongez/gnz

Version:

Generator Z, the next generation of scaffolding tools.

28 lines (27 loc) 1.45 kB
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