sequelize-ts-boilerplate
Version:
A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design
31 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fse = require("fs-extra");
const general_utils_1 = require("../../../utils/general-utils");
const routesWriter = require("./write-route-methods");
function generate(tables, config) {
let controllerPath = config.ORM_GENERATE.path.controllers;
let servicesPath = config.ORM_GENERATE.path.services;
let pathSplit = servicesPath.split("/");
tables.forEach((x) => {
const upperCaseTableName = general_utils_1.default.capitalizeFirstLetter(x.tableName);
const pluralizedTableName = general_utils_1.default.pluralize(upperCaseTableName);
let sFile = "";
if (controllerPath && fse.pathExistsSync(`${controllerPath}/${upperCaseTableName}/${upperCaseTableName}.routes.ts`)) {
console.log(upperCaseTableName + ".routes.ts encountered. Skipping... no overwrite occurred");
}
else {
console.log("writing: ", `${controllerPath}/${upperCaseTableName} routes`);
sFile = `import { Router } from "express" \n` +
`import ${upperCaseTableName}Controller from "./${upperCaseTableName}.controller"\n` +
`export function ${upperCaseTableName}Routes() { \n ` +
`\t${routesWriter.get(x, config)}` +
`\t\t/*** end generated routes ***/\n` +
`\n} \n\n`;
fse.outputFileSync(`${controllerPath}/${upperCaseTableName}/${upperCaseTableName}.routes.ts`, sFile, "utf8");
sFile = "";
}
});
}
exports.generate = generate;
//# sourceMappingURL=write-route.js.map