@designliquido/lincones-sqlite 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/execucao.js +17 -7
  2. package/execucao.js.map +1 -1
  3. package/fontes/comum/babel.config.d.ts +5 -0
  4. package/fontes/comum/babel.config.js +7 -0
  5. package/fontes/comum/babel.config.js.map +1 -0
  6. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +2 -2
  7. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +24 -13
  8. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  9. package/fontes/comum/fontes/comandos/atualizar.d.ts +3 -9
  10. package/fontes/comum/fontes/comandos/atualizar.js.map +1 -1
  11. package/fontes/comum/fontes/comandos/excluir.d.ts +3 -2
  12. package/fontes/comum/fontes/comandos/excluir.js.map +1 -1
  13. package/fontes/comum/fontes/comandos/inserir.d.ts +3 -3
  14. package/fontes/comum/fontes/comandos/inserir.js.map +1 -1
  15. package/fontes/comum/fontes/construtos/coluna-e-valor.d.ts +8 -0
  16. package/fontes/comum/fontes/construtos/coluna-e-valor.js +16 -0
  17. package/fontes/comum/fontes/construtos/coluna-e-valor.js.map +1 -0
  18. package/fontes/comum/fontes/construtos/coluna.d.ts +3 -1
  19. package/fontes/comum/fontes/construtos/coluna.js +21 -1
  20. package/fontes/comum/fontes/construtos/coluna.js.map +1 -1
  21. package/fontes/comum/fontes/construtos/condicao.d.ts +6 -4
  22. package/fontes/comum/fontes/construtos/condicao.js +11 -1
  23. package/fontes/comum/fontes/construtos/condicao.js.map +1 -1
  24. package/fontes/comum/fontes/construtos/construto.d.ts +3 -0
  25. package/fontes/comum/fontes/construtos/construto.js +7 -0
  26. package/fontes/comum/fontes/construtos/construto.js.map +1 -0
  27. package/fontes/comum/fontes/construtos/index.d.ts +6 -0
  28. package/fontes/comum/fontes/construtos/index.js +6 -0
  29. package/fontes/comum/fontes/construtos/index.js.map +1 -1
  30. package/fontes/comum/fontes/construtos/literal.d.ts +7 -0
  31. package/fontes/comum/fontes/construtos/literal.js +16 -0
  32. package/fontes/comum/fontes/construtos/literal.js.map +1 -0
  33. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +3 -1
  34. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +6 -1
  35. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js.map +1 -1
  36. package/fontes/comum/fontes/construtos/referencia-coluna.d.ts +6 -0
  37. package/fontes/comum/fontes/construtos/referencia-coluna.js +15 -0
  38. package/fontes/comum/fontes/construtos/referencia-coluna.js.map +1 -0
  39. package/fontes/comum/fontes/construtos/restricao.d.ts +3 -1
  40. package/fontes/comum/fontes/construtos/restricao.js +24 -1
  41. package/fontes/comum/fontes/construtos/restricao.js.map +1 -1
  42. package/fontes/comum/fontes/index.d.ts +8 -0
  43. package/fontes/comum/{index.js → fontes/index.js} +8 -8
  44. package/fontes/comum/fontes/index.js.map +1 -0
  45. package/fontes/comum/fontes/tradutor/index.d.ts +1 -32
  46. package/fontes/comum/fontes/tradutor/index.js +14 -235
  47. package/fontes/comum/fontes/tradutor/index.js.map +1 -1
  48. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +33 -0
  49. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +241 -0
  50. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -0
  51. package/fontes/comum/testes/{tradutor.test.js → tradutor-sql-ansi.test.js} +7 -4
  52. package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -0
  53. package/fontes/infraestrutura/cliente-sqlite.js +17 -7
  54. package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
  55. package/fontes/tradutor/index.d.ts +2 -6
  56. package/fontes/tradutor/index.js +4 -89
  57. package/fontes/tradutor/index.js.map +1 -1
  58. package/package.json +10 -10
  59. package/fontes/comum/index.d.ts +0 -8
  60. package/fontes/comum/index.js.map +0 -1
  61. package/fontes/comum/testes/tradutor.test.js.map +0 -1
  62. /package/fontes/comum/testes/{tradutor.test.d.ts → tradutor-sql-ansi.test.d.ts} +0 -0
@@ -1,8 +1,9 @@
1
+ import { Construto } from "./construto";
1
2
  /**
2
3
  * Uma restrição cria uma regra em uma tabela ou visão, que trabalha com uma ou mais colunas
3
4
  * da mesma tabela e/ou de outras tabelass relacionadas.
4
5
  */
5
- export declare class Restricao {
6
+ export declare class Restricao extends Construto {
6
7
  nome: string;
7
8
  tipo: 'CHAVE_PRIMARIA' | 'CHAVE_ESTRANGEIRA' | 'ÚNICA';
8
9
  tabela: string;
@@ -10,4 +11,5 @@ export declare class Restricao {
10
11
  tabelaReferenciada?: string;
11
12
  colunasReferenciadas?: string[];
12
13
  constructor(nome: string, tipo: 'CHAVE_PRIMARIA' | 'CHAVE_ESTRANGEIRA' | 'ÚNICA', tabela: string, colunas: string[], tabelaReferenciada?: string, colunasReferenciadas?: string[]);
14
+ toString(): string;
13
15
  }
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Restricao = void 0;
4
+ const construto_1 = require("./construto");
4
5
  /**
5
6
  * Uma restrição cria uma regra em uma tabela ou visão, que trabalha com uma ou mais colunas
6
7
  * da mesma tabela e/ou de outras tabelass relacionadas.
7
8
  */
8
- class Restricao {
9
+ class Restricao extends construto_1.Construto {
9
10
  constructor(nome, tipo, tabela, colunas, tabelaReferenciada, colunasReferenciadas) {
11
+ super();
10
12
  this.nome = nome;
11
13
  this.tipo = tipo;
12
14
  this.tabela = tabela;
@@ -14,6 +16,27 @@ class Restricao {
14
16
  this.tabelaReferenciada = tabelaReferenciada;
15
17
  this.colunasReferenciadas = colunasReferenciadas;
16
18
  }
19
+ toString() {
20
+ let retorno = `<Restrição nome=${this.nome} tabela=${this.tabela} colunas=[`;
21
+ for (const coluna of this.colunas) {
22
+ retorno += coluna + `, `;
23
+ }
24
+ retorno = retorno.slice(0, -2);
25
+ retorno += `]`;
26
+ if (this.tabelaReferenciada) {
27
+ retorno += ` tabela referenciada=${this.tabelaReferenciada}`;
28
+ }
29
+ if (this.colunasReferenciadas) {
30
+ retorno += ` colunas referenciadas=[`;
31
+ for (const coluna of this.colunasReferenciadas) {
32
+ retorno += coluna + `, `;
33
+ }
34
+ retorno = retorno.slice(0, -2);
35
+ retorno += `]`;
36
+ }
37
+ retorno += `>`;
38
+ return retorno;
39
+ }
17
40
  }
18
41
  exports.Restricao = Restricao;
19
42
  //# sourceMappingURL=restricao.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restricao.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/restricao.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,SAAS;IAQlB,YACI,IAAY,EACZ,IAAsD,EACtD,MAAc,EACd,OAAiB,EACjB,kBAA2B,EAC3B,oBAA+B;QAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;CACJ;AAvBD,8BAuBC"}
1
+ {"version":3,"file":"restricao.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/restricao.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC;;;GAGG;AACH,MAAa,SAAU,SAAQ,qBAAS;IAQpC,YACI,IAAY,EACZ,IAAsD,EACtD,MAAc,EACd,OAAiB,EACjB,kBAA2B,EAC3B,oBAA+B;QAE/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,mBAAmB,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,MAAM,YAAY,CAAC;QAE7E,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,GAAG,CAAC;QAEf,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,IAAI,wBAAwB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjE,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,IAAI,0BAA0B,CAAC;YACtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC7C,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,GAAG,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,GAAG,CAAC;QACf,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AApDD,8BAoDC"}
@@ -0,0 +1,8 @@
1
+ export * from './avaliador-sintatico';
2
+ export * from './comandos';
3
+ export * from './construtos';
4
+ export * from './interfaces';
5
+ export * from './lexador';
6
+ export * from './palavras-reservadas';
7
+ export * from './tipos-de-simbolos';
8
+ export * from './tradutor';
@@ -14,12 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./fontes/avaliador-sintatico"), exports);
18
- __exportStar(require("./fontes/comandos"), exports);
19
- __exportStar(require("./fontes/construtos"), exports);
20
- __exportStar(require("./fontes/interfaces"), exports);
21
- __exportStar(require("./fontes/lexador"), exports);
22
- __exportStar(require("./fontes/palavras-reservadas"), exports);
23
- __exportStar(require("./fontes/tipos-de-simbolos"), exports);
24
- __exportStar(require("./fontes/tradutor"), exports);
17
+ __exportStar(require("./avaliador-sintatico"), exports);
18
+ __exportStar(require("./comandos"), exports);
19
+ __exportStar(require("./construtos"), exports);
20
+ __exportStar(require("./interfaces"), exports);
21
+ __exportStar(require("./lexador"), exports);
22
+ __exportStar(require("./palavras-reservadas"), exports);
23
+ __exportStar(require("./tipos-de-simbolos"), exports);
24
+ __exportStar(require("./tradutor"), exports);
25
25
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/comum/fontes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,wDAAsC;AACtC,sDAAoC;AACpC,6CAA2B"}
@@ -1,32 +1 @@
1
- import { Alterar, Atualizar, Comando, Criar, Excluir, Inserir, Selecionar } from '../comandos';
2
- import { Coluna } from '../construtos';
3
- /**
4
- * Este tradutor traduz sentenças em SQL ANSI, e a ideia é poder
5
- * utilizar para outros tradutores futuros, com pequenas nuances em
6
- * alguns comandos quando for o caso.
7
- */
8
- export declare class TradutorSqlAnsi {
9
- tamanhoIndentacao: number;
10
- constructor(tamanhoIndentacao?: number);
11
- protected traduzirOperador(operador: string): boolean | "=";
12
- protected traduzirTipoDeDados(tipo: string): "INTEGER" | "BOOLEAN" | "INT" | "VARCHAR";
13
- protected traduzirTipoDeRestricao(tipo: string): "PRIMARY KEY" | "FOREIGN KEY" | "UNIQUE";
14
- protected traduzirColunaComTipo(coluna: Coluna): string;
15
- protected traduzirComandoAtualizar(comandoAtualizar: Atualizar): string;
16
- protected traduzirComandoCriar(comandoCriar: Criar): string;
17
- protected traduzirComandoExcluir(comandoExcluir: Excluir): string;
18
- protected traduzirComandoInserir(comandoInserir: Inserir): string;
19
- protected traduzirComandoSelecionar(comandoSelecionar: Selecionar): string;
20
- private logicaManipulacaoColunas;
21
- private traduzirTipoEntidade;
22
- protected traduzirComandoAlterar(comandoAlterar: Alterar): string;
23
- dicionarioComandos: {
24
- Alterar: any;
25
- Atualizar: any;
26
- Criar: any;
27
- Excluir: any;
28
- Inserir: any;
29
- Selecionar: any;
30
- };
31
- traduzir(comandos: Comando[]): string;
32
- }
1
+ export * from './tradutor-sql-ansi';
@@ -1,239 +1,18 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TradutorSqlAnsi = void 0;
7
- const construtos_1 = require("../construtos");
8
- const restricao_1 = require("../construtos/restricao");
9
- const tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
10
- /**
11
- * Este tradutor traduz sentenças em SQL ANSI, e a ideia é poder
12
- * utilizar para outros tradutores futuros, com pequenas nuances em
13
- * alguns comandos quando for o caso.
14
- */
15
- class TradutorSqlAnsi {
16
- constructor(tamanhoIndentacao = 4) {
17
- this.dicionarioComandos = {
18
- Alterar: this.traduzirComandoAlterar.bind(this),
19
- Atualizar: this.traduzirComandoAtualizar.bind(this),
20
- Criar: this.traduzirComandoCriar.bind(this),
21
- Excluir: this.traduzirComandoExcluir.bind(this),
22
- Inserir: this.traduzirComandoInserir.bind(this),
23
- Selecionar: this.traduzirComandoSelecionar.bind(this)
24
- };
25
- this.tamanhoIndentacao = tamanhoIndentacao;
26
- }
27
- traduzirOperador(operador) {
28
- switch (operador) {
29
- case tipos_de_simbolos_1.default.IGUAL:
30
- return '=';
31
- case tipos_de_simbolos_1.default.VERDADEIRO:
32
- return true;
33
- case tipos_de_simbolos_1.default.FALSO:
34
- return false;
35
- }
36
- }
37
- traduzirTipoDeDados(tipo) {
38
- switch (tipo) {
39
- case 'INTEIRO':
40
- return 'INTEGER';
41
- case 'LOGICO':
42
- return 'BOOLEAN';
43
- case 'NUMERO':
44
- return 'INT';
45
- case 'TEXTO':
46
- return 'VARCHAR';
47
- }
48
- }
49
- traduzirTipoDeRestricao(tipo) {
50
- switch (tipo) {
51
- case 'CHAVE_PRIMARIA':
52
- return 'PRIMARY KEY';
53
- case 'CHAVE_ESTRANGEIRA':
54
- return 'FOREIGN KEY';
55
- case 'ÚNICA':
56
- return 'UNIQUE';
57
- }
58
- }
59
- traduzirColunaComTipo(coluna) {
60
- let resultado = `${' '.repeat(this.tamanhoIndentacao)}${coluna.nomeColuna} ${this.traduzirTipoDeDados(coluna.tipo)}`;
61
- if (coluna.tamanho) {
62
- resultado += `(${coluna.tamanho.lexema}) `;
63
- }
64
- if (coluna.nulo) {
65
- resultado += `NULL `;
66
- }
67
- else {
68
- resultado += `NOT NULL `;
69
- }
70
- return resultado;
71
- }
72
- traduzirComandoAtualizar(comandoAtualizar) {
73
- let resultado = 'UPDATE ';
74
- resultado += `${comandoAtualizar.tabela}\nSET `;
75
- for (const valorAtualizacao of comandoAtualizar.colunasEValores) {
76
- if (valorAtualizacao.direita.tipo === tipos_de_simbolos_1.default.TEXTO) {
77
- resultado += `${valorAtualizacao.esquerda.lexema} = '${valorAtualizacao.direita.lexema}', `;
78
- continue;
79
- }
80
- if ([tipos_de_simbolos_1.default.VERDADEIRO, tipos_de_simbolos_1.default.FALSO].includes(valorAtualizacao.direita.tipo)) {
81
- resultado += `${valorAtualizacao.esquerda.lexema} = ${this.traduzirOperador(valorAtualizacao.direita.tipo)}, `;
82
- continue;
83
- }
84
- resultado += `${valorAtualizacao.esquerda.lexema} = ${valorAtualizacao.direita.lexema}, `;
85
- }
86
- resultado = resultado.slice(0, -2);
87
- resultado += `\nWHERE `;
88
- if (comandoAtualizar.condicoes.length > 0) {
89
- for (const condicao of comandoAtualizar.condicoes) {
90
- resultado += `${condicao.esquerda.lexema} ${this.traduzirOperador(condicao.operador)} ${condicao.direita} AND `;
91
- }
92
- resultado = resultado.slice(0, -5);
93
- }
94
- return resultado;
95
- }
96
- traduzirComandoCriar(comandoCriar) {
97
- let resultado = 'CREATE TABLE ';
98
- resultado += `${comandoCriar.nomeEntidade} (\n`;
99
- for (const coluna of comandoCriar.colunas) {
100
- resultado += this.traduzirColunaComTipo(coluna);
101
- if (coluna.chavePrimaria) {
102
- resultado += 'PRIMARY KEY ';
103
- if (coluna.autoIncremento) {
104
- resultado += 'AUTOINCREMENT ';
105
- }
106
- }
107
- resultado = resultado.slice(0, -1);
108
- resultado += ',\n';
109
- }
110
- resultado = resultado.slice(0, -2);
111
- resultado += `\n)`;
112
- return resultado;
113
- }
114
- traduzirComandoExcluir(comandoExcluir) {
115
- let resultado = 'DELETE FROM ';
116
- resultado += `${comandoExcluir.tabela}`;
117
- // Condições
118
- if (comandoExcluir.condicoes.length > 0) {
119
- resultado += '\nWHERE ';
120
- for (const condicao of comandoExcluir.condicoes) {
121
- resultado += `${condicao.esquerda.lexema} ${this.traduzirOperador(condicao.operador)} ${condicao.direita} AND `;
122
- }
123
- resultado = resultado.slice(0, -5);
124
- }
125
- return resultado;
126
- }
127
- traduzirComandoInserir(comandoInserir) {
128
- let resultado = 'INSERT INTO ';
129
- resultado += `${comandoInserir.tabela} (`;
130
- for (const coluna of comandoInserir.colunas) {
131
- resultado += `${coluna}, `;
132
- }
133
- resultado = resultado.slice(0, -2);
134
- resultado += `)\nVALUES (`;
135
- for (const valor of comandoInserir.valores) {
136
- switch (valor.tipo) {
137
- case tipos_de_simbolos_1.default.FALSO:
138
- resultado += 'FALSE, ';
139
- break;
140
- case tipos_de_simbolos_1.default.TEXTO:
141
- resultado += `'${valor.literal}', `;
142
- break;
143
- case tipos_de_simbolos_1.default.VERDADEIRO:
144
- resultado += 'TRUE, ';
145
- break;
146
- default:
147
- resultado += `${valor.literal}, `;
148
- break;
149
- }
150
- }
151
- resultado = resultado.slice(0, -2);
152
- resultado += `)`;
153
- return resultado;
154
- }
155
- traduzirComandoSelecionar(comandoSelecionar) {
156
- let resultado = 'SELECT ';
157
- // Colunas
158
- if (comandoSelecionar.tudo) {
159
- resultado += '*';
160
- }
161
- else {
162
- for (const coluna of comandoSelecionar.colunas) {
163
- resultado += coluna + ', ';
164
- }
165
- resultado = resultado.slice(0, -2);
166
- }
167
- resultado += `\nFROM ${comandoSelecionar.tabela}`;
168
- // Condições
169
- if (comandoSelecionar.condicoes.length > 0) {
170
- resultado += '\nWHERE ';
171
- for (const condicao of comandoSelecionar.condicoes) {
172
- resultado += `${condicao.esquerda.lexema} ${this.traduzirOperador(condicao.operador)} ${condicao.direita} AND `;
173
- }
174
- resultado = resultado.slice(0, -5);
175
- }
176
- return resultado;
177
- }
178
- logicaManipulacaoColunas(elemento) {
179
- if (elemento instanceof construtos_1.Coluna) {
180
- let formatacaoColuna = `COLUMN ${elemento.nomeColuna} ${this.traduzirTipoDeDados(elemento.tipo)}`;
181
- if (elemento.tipo === 'TEXTO') {
182
- formatacaoColuna += `(${elemento.tamanho.lexema})`;
183
- }
184
- formatacaoColuna += ` `;
185
- return formatacaoColuna;
186
- }
187
- if (elemento instanceof restricao_1.Restricao) {
188
- let formatacaoRestricao = `CONSTRAINT ${elemento.nome} ${this.traduzirTipoDeRestricao(elemento.tipo)} (`;
189
- for (const coluna of elemento.colunas) {
190
- formatacaoRestricao += coluna + ', ';
191
- }
192
- formatacaoRestricao = formatacaoRestricao.slice(0, -2);
193
- formatacaoRestricao += `) REFERENCES ${elemento.tabelaReferenciada} (`;
194
- for (const colunaReferenciada of elemento.colunasReferenciadas) {
195
- formatacaoRestricao += colunaReferenciada + ', ';
196
- }
197
- formatacaoRestricao = formatacaoRestricao.slice(0, -2);
198
- formatacaoRestricao += `) `;
199
- return formatacaoRestricao;
200
- }
201
- }
202
- traduzirTipoEntidade(tipoEntidade) {
203
- switch (tipoEntidade.toUpperCase()) {
204
- case 'TABELA':
205
- return 'TABLE';
206
- case 'VISÃO':
207
- case 'VISAO':
208
- return 'VIEW';
209
- }
210
- }
211
- traduzirComandoAlterar(comandoAlterar) {
212
- let resultado = `ALTER ${this.traduzirTipoEntidade(comandoAlterar.tipoEntidade)} ${comandoAlterar.nomeEntidade} `;
213
- for (const operacao of comandoAlterar.operacoes) {
214
- switch (operacao.tipo) {
215
- case 'ADICIONAR':
216
- resultado += `ADD ${this.logicaManipulacaoColunas(operacao.elemento)}`;
217
- break;
218
- case 'ALTERAR':
219
- resultado += 'INTEGER';
220
- break;
221
- case 'EXCLUIR':
222
- resultado += 'BIT';
223
- break;
224
- case 'RENOMEAR':
225
- break;
226
- }
227
- }
228
- return resultado;
229
- }
230
- traduzir(comandos) {
231
- let resultado = '';
232
- for (const comando of comandos.filter((c) => c)) {
233
- resultado += `${this.dicionarioComandos[comando.constructor.name](comando)} \n`;
234
- }
235
- return resultado;
236
- }
237
- }
238
- exports.TradutorSqlAnsi = TradutorSqlAnsi;
17
+ __exportStar(require("./tradutor-sql-ansi"), exports);
239
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
@@ -0,0 +1,33 @@
1
+ import { Alterar, Atualizar, Comando, Criar, Excluir, Inserir, Selecionar } from '../comandos';
2
+ import { Coluna, Construto } from '../construtos';
3
+ /**
4
+ * Este tradutor traduz sentenças em SQL ANSI, e a ideia é poder
5
+ * utilizar para outros tradutores futuros, com pequenas nuances em
6
+ * alguns comandos quando for o caso.
7
+ */
8
+ export declare class TradutorSqlAnsi {
9
+ tamanhoIndentacao: number;
10
+ constructor(tamanhoIndentacao?: number);
11
+ protected traduzirOperador(operador: string): boolean | "=";
12
+ protected traduzirTipoDeDados(tipo: string): "INTEGER" | "BOOLEAN" | "INT" | "VARCHAR";
13
+ protected traduzirTipoDeRestricao(tipo: string): "PRIMARY KEY" | "FOREIGN KEY" | "UNIQUE";
14
+ protected traduzirConstruto(construto: Construto): string;
15
+ protected traduzirColunaComTipo(coluna: Coluna): string;
16
+ protected traduzirComandoAtualizar(comandoAtualizar: Atualizar): string;
17
+ protected traduzirComandoCriar(comandoCriar: Criar): string;
18
+ protected traduzirComandoExcluir(comandoExcluir: Excluir): string;
19
+ protected traduzirComandoInserir(comandoInserir: Inserir): string;
20
+ protected traduzirComandoSelecionar(comandoSelecionar: Selecionar): string;
21
+ private logicaManipulacaoColunas;
22
+ private traduzirTipoEntidade;
23
+ protected traduzirComandoAlterar(comandoAlterar: Alterar): string;
24
+ dicionarioComandos: {
25
+ Alterar: any;
26
+ Atualizar: any;
27
+ Criar: any;
28
+ Excluir: any;
29
+ Inserir: any;
30
+ Selecionar: any;
31
+ };
32
+ traduzir(comandos: Comando[]): string;
33
+ }