UNPKG

sequelize-ts-boilerplate

Version:

A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design

38 lines (30 loc) 1.7 kB
import { Table } from "../../classes/Table"; import { IConfig } from "../../../interfaces/config"; import * as path from "path"; import * as fse from "fs-extra"; import { CONSTANT } from "../../../utils/constants"; import utils from "../../../utils/general-utils"; import * as routesWriter from "./write-route-methods"; export function generate(tables: Array<Table>, config: IConfig) { let controllerPath = config.ORM_GENERATE.path.controllers; let servicesPath = config.ORM_GENERATE.path.services; let pathSplit = servicesPath.split("/"); tables.forEach((x) => { const upperCaseTableName = utils.capitalizeFirstLetter(x.tableName); const pluralizedTableName = utils.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 = ""; } }); }