UNPKG

@onn-software/ddl-to-gql

Version:

Convert a SQL DDL to a GraphQL implementation with all relations.

32 lines (31 loc) 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModelGenerator = void 0; const globals_1 = require("../globals"); const model_generator_templates_1 = require("./model-generator.templates"); class ModelGenerator { execute(tableDefs) { const partialsDefs = tableDefs.map((tableDef) => this.generateModel(tableDef)); return model_generator_templates_1.baseModel + partialsDefs.join('\n'); } generateModel(tableDef) { const interfaceName = globals_1.Globals.getTypescriptName(tableDef.tableName); const typeDef = [ `export const ${interfaceName}__Table = '${tableDef.tableName}'`, '', `export interface ${interfaceName} {`, ]; tableDef.columns.forEach((c) => { if (c.nullable) { typeDef.push(` ${c.key}?: (${c.type} | null);${c.unique ? ' // unique' : ''}`); } else { typeDef.push(` ${c.key}: ${c.type};${c.unique ? ' // unique' : ''}`); } }); typeDef.push('}'); typeDef.push(''); return typeDef.join('\n'); } } exports.ModelGenerator = ModelGenerator;