UNPKG

sequelize-ts-boilerplate

Version:

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

76 lines 3.95 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const sequelize_auto_1 = require("./core/services/sequelize-auto"); const general_utils_1 = require("./utils/general-utils"); const TableProperty_1 = require("./core/classes/TableProperty"); const Table_1 = require("./core/classes/Table"); const modelWriter = require("./core/write-scripts/write-dao"); const ormWrapperWriter = require("./core/write-scripts/write-orm-wrapper"); const interfaceWriter = require("./core/write-scripts/write-interfaces"); const controllerWriter = require("./core/write-scripts/express/write-controller"); const serviceWriter = require("./core/write-scripts/write-service"); const routesWriter = require("./core/write-scripts/express/write-route"); const datasourceWriter = require("./core/write-scripts/write-datasource"); const serverFileWriter = require("./core/write-scripts/express/write-server"); const packageJSONWriter = require("./core/write-scripts/write-package-json"); const envWriter = require("./core/write-scripts/write-env"); const gitIgnoreWriter = require("./core/write-scripts/write-gitignore"); const respondFnWriter = require("./core/write-scripts/express/write-respond-fn"); const tsConfigWriter = require("./core/write-scripts/write-ts-config"); exports.bootstrap = (config) => __awaiter(this, void 0, void 0, function* () { const tables = yield sequelize_auto_1.default.getTables(config); const tablesToWrite = []; for (let x in tables) { let tableName = x; if (tables.hasOwnProperty(tableName) && general_utils_1.default.isTableAllowed(tableName, config.ORM_GENERATE.skipTables)) { let table = new Table_1.Table({ tableName: x, metadata: { lookupTableName: config.ORM_GENERATE.lookup && config.ORM_GENERATE.lookup.tableName } }); for (let y in tables[x]) { if (tables[x].hasOwnProperty(y)) { let tablePropsObj = tables[x]; table.properties.push(new TableProperty_1.TableProperty(y, table.tableName, tablePropsObj, config)); } } tablesToWrite.push(table); } } // WRITE MODEL modelWriter.generate(tablesToWrite, config); // WRITE DATASOURCE datasourceWriter.generate(config); // WRITE ORM WRAPPER ormWrapperWriter.generate(config); // WRITE INTERFACE FILE interfaceWriter.generate(tablesToWrite, config); // -------------------------------------------------------// if (config.ORM_GENERATE.shouldGenerateServices) { // WRITE SERVICES serviceWriter.generate(tablesToWrite, config); } if (config.CRUD_GENERATE.shouldGenerate) { // WRITE CONTROLLERS controllerWriter.generate(tablesToWrite, config); // WRITE ROUTES routesWriter.generate(tablesToWrite, config); // WRITE server.js, .env, package.json, .gitignore serverFileWriter.generate(tablesToWrite, config); packageJSONWriter.generate(); envWriter.generate(config); gitIgnoreWriter.generate(); respondFnWriter.generate(); tsConfigWriter.generate(); } }); //# sourceMappingURL=bootstrap.js.map