UNPKG

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
"use strict"; 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