UNPKG

sequelize-ts-boilerplate

Version:

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

41 lines (35 loc) 1.58 kB
import { CONSTANT } from "./constants"; class DbTypes { public getType = (dialect: string, dbType: string) => { 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; } } private _mySql = (value: string) => { 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); } } private _sqlServer = (value: string) => { return CONSTANT.MSSQL_DATATYPES_MAP[value]; } } export default new DbTypes();