UNPKG

sequelize-ts-boilerplate

Version:

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

43 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("./constants"); class DbTypes { constructor() { this.getType = (dialect, dbType) => { switch (dialect) { case "mssql": return this._sqlServer(dbType); break; case "mysql": return this._mySql(dbType); break; default: throw new Error(`this code generation tool has not been configured for <${dialect}>`); break; } }; this._mySql = (value) => { let lowerCaseDbType = value.toLowerCase(); if (lowerCaseDbType.startsWith("int") || lowerCaseDbType.startsWith("bigint") || lowerCaseDbType.includes("decimal")) return "number"; else if (lowerCaseDbType.startsWith("longtext") || lowerCaseDbType.startsWith("varchar") || lowerCaseDbType.startsWith("nvarchar") || lowerCaseDbType.startsWith("mediumtext") || lowerCaseDbType.startsWith("shorttext")) return "string"; else if (lowerCaseDbType.includes("date") || lowerCaseDbType.includes("time")) return "Date"; else if (lowerCaseDbType.includes("tinyint") || lowerCaseDbType.includes("bit")) return "boolean"; else { console.log("Type not registered (please make PR and add this property): ", value); } }; this._sqlServer = (value) => { return constants_1.CONSTANT.MSSQL_DATATYPES_MAP[value]; }; } } exports.default = new DbTypes(); //# sourceMappingURL=db-types.js.map