UNPKG

typescript-mysql-model

Version:

{ "version": "1.2.46", "name": "typescript-mysql-model", "description": "", "main": "index.js", "types": "index.d.ts", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url":

54 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const change_case = require("change-case"); const handlebars = require("handlebars"); const template = `/** * Auto generated, do not modify! */ /* tslint:disable */ export namespace COLUMNS { {{#each tables}}{{{this}}}{{/each}} } `; const tableTemplate = ` export enum {{tableName}} { {{{columns}}} } `; class TableColumnsBuilder { constructor(schema) { this.schema = schema; this.compiledTemplate = handlebars.compile(template); this.compiledTableTemplate = handlebars.compile(tableTemplate); } renderTemplate() { const tables = []; tables.push(...this.renderTableTemplates(this.schema.tables)); tables.push(...this.renderTableTemplates(this.schema.views)); return this.compiledTemplate({ tables: tables }); } renderColumns(table) { const arr = []; for (const key in table) { const field = table[key].field; const constCase = change_case.constantCase(field); arr.push(`${constCase} = '${field}'`); } return arr; } renderTableTamplate(tableName, table) { const columnsArr = this.renderColumns(table); const columns = columnsArr.join(", \n\t\t"); tableName = change_case.constantCase(tableName); return this.compiledTableTemplate({ tableName: tableName, columns: columns }); } renderTableTemplates(tables) { const templates = []; for (const key in tables) { templates.push(this.renderTableTamplate(key, tables[key])); } return templates; } } exports.TableColumnsBuilder = TableColumnsBuilder; //# sourceMappingURL=table-columns-builder.js.map