@designliquido/lincones-sqlite
Version:
Implementação de LinConEs para SQLite.
57 lines • 2.16 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TradutorSqLite = void 0;
const tradutor_sql_ansi_1 = require("../comum/fontes/tradutor/tradutor-sql-ansi");
const tipos_de_simbolos_1 = __importDefault(require("../comum/fontes/tipos-de-simbolos"));
class TradutorSqLite extends tradutor_sql_ansi_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;
}
}
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;
traduzir += `VARCHAR(${simbolo.literal}) `;
}
else if (tipos_de_simbolos_1.default.LOGICO === coluna.tipo)
traduzir += 'BOOLEAN ';
if (coluna.chavePrimaria)
traduzir += 'PRIMARY KEY ';
if (coluna.nulo)
traduzir += 'NULL';
else
traduzir += 'NOT NULL';
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.TradutorSqLite = TradutorSqLite;
//# sourceMappingURL=index.js.map