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
JavaScript
;
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