sequelize-ts-boilerplate
Version:
A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design
36 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fse = require("fs-extra");
const constants_1 = require("../../../utils/constants");
const general_utils_1 = require("../../../utils/general-utils");
const ctrlCrudMethodsWriter = require("./write-controller-crud-methods");
function generate(tables, config) {
let controllerPath = config.ORM_GENERATE.path.controllers;
for (let x of tables) {
if (config.CRUD_GENERATE.ignoreTables.indexOf(x.tableName) > -1) {
continue;
}
const upperCaseTableName = general_utils_1.default.capitalizeFirstLetter(x.tableName);
let sFile = "";
if (controllerPath && fse.pathExistsSync(`${controllerPath}/${upperCaseTableName}/${upperCaseTableName}.controller.ts`)) {
console.log(upperCaseTableName + ".controller.ts encountered. Skipping... no overwrite occurred");
}
else {
console.log("writing: ", `${controllerPath}/${upperCaseTableName} Controller`);
sFile = `import { Request, Response } from "express" \n` +
`import { respond } from "../../classes/respond" \n` +
`import ${upperCaseTableName}Service from "../../services/${upperCaseTableName}.service"; \n` +
`import { ${upperCaseTableName} } from "../../daos/${upperCaseTableName}" \n\n` +
`class ${upperCaseTableName}Controller { \n ` +
`\t_${x.tableName}Service = ${upperCaseTableName}Service` +
`\n\n\t${constants_1.CONSTANT.GENERATED_CONTROLLER_METHODS}` +
`${ctrlCrudMethodsWriter.get(x, config)}` +
`\n} \n\n` +
`\n\n export default new ${upperCaseTableName}Controller()`;
fse.outputFileSync(`${controllerPath}/${upperCaseTableName}/${upperCaseTableName}.controller.ts`, sFile, "utf8");
sFile = "";
}
}
}
exports.generate = generate;
//# sourceMappingURL=write-controller.js.map