UNPKG

@designliquido/lincones-postgresql

Version:
80 lines 2.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Tradutor = void 0; const tradutor_1 = require("../comum/fontes/tradutor"); const tipos_de_simbolos_1 = __importDefault(require("../comum/fontes/tipos-de-simbolos")); class Tradutor extends tradutor_1.TradutorSqlAnsi { traduzirOperador(operador) { switch (operador) { case tipos_de_simbolos_1.default.IGUAL: return '='; case tipos_de_simbolos_1.default.VERDADEIRO: return true; case tipos_de_simbolos_1.default.FALSO: return false; } } traduzirTipoDeDados(tipo) { switch (tipo) { case 'INTEIRO': return 'INTEGER'; case 'LOGICO': return 'BOOLEAN'; case 'NUMERO': return 'INT'; case 'TEXTO': return 'VARCHAR'; } } traduzirTipoDeRestricao(tipo) { switch (tipo) { case 'CHAVE_PRIMARIA': return 'PRIMARY KEY'; case 'CHAVE_ESTRANGEIRA': return 'FOREIGN KEY'; case 'ÚNICA': return 'UNIQUE'; } } traduzirColuna(coluna) { let traduzir = ''; if (tipos_de_simbolos_1.default.INTEIRO === coluna.tipo) { traduzir += `INTEGER `; } else if (tipos_de_simbolos_1.default.TEXTO === coluna.tipo) { const simbolo = coluna.tamanho; const tamanho = Number(simbolo === null || simbolo === void 0 ? void 0 : simbolo.literal) || 255; traduzir += `VARCHAR(${tamanho}) `; } else if (tipos_de_simbolos_1.default.LOGICO === coluna.tipo) traduzir += 'BOOLEAN '; if (coluna.nulo) traduzir += 'NULL'; else traduzir += 'NOT NULL'; if (coluna.chavePrimaria) traduzir += ' PRIMARY KEY'; return traduzir; } traduzirComandoCriar(comandoCriar) { let resultado = `CREATE TABLE ${comandoCriar.nomeEntidade} (`; for (const coluna of comandoCriar.colunas) { resultado += `${coluna.nomeColuna} ${this.traduzirColuna(coluna)}, `; } resultado = resultado.slice(0, -2); resultado += ')'; return resultado; } traduzir(comandos) { let resultado = ''; for (const comando of comandos.filter((c) => c)) { resultado += `${this.dicionarioComandos[comando.constructor.name](comando)} \n`; } return resultado; } } exports.Tradutor = Tradutor; //# sourceMappingURL=index.js.map