sequelize-ts-boilerplate
Version:
A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design
32 lines • 1.63 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 serviceMethodWriter = require("./write-service-methods");
function generate(tables, config) {
let servicePath = config.ORM_GENERATE.path.services;
let daosPath = config.ORM_GENERATE.path.daos;
let pathSplit = daosPath.split("/");
let modelFolderName = pathSplit[pathSplit.length - 1];
tables.forEach((x) => {
const tableName = general_utils_1.default.capitalizeFirstLetter(x.tableName);
let sFile = "";
if (servicePath && (fse.pathExistsSync(`${servicePath}/${tableName}.ts`) || fse.pathExistsSync(`${servicePath}/${tableName}.service.ts`))) {
console.log(tableName + "service.ts encountered. Skipping... no overwrite occurred");
}
else {
console.log("writing: ", `${servicePath}/${tableName}`);
let sFile = `import {${tableName}} from "../${modelFolderName}/${tableName}"; \n\n\n` +
`class ${tableName}Service { \n\n` +
`\t${constants_1.CONSTANT.GENERATED_SERVICE_METHODS} \n` +
`${serviceMethodWriter.get(x, config)}` +
`\n} \n\n` +
`\n\n export default new ${tableName}Service();`;
fse.outputFileSync(`${servicePath}/${tableName}.service.ts`, sFile, "utf8");
sFile = "";
}
});
}
exports.generate = generate;
//# sourceMappingURL=write-service.js.map