@prisma-psm/pg 1.0.5 → 1.0.7
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.
- package/.idea/vcs.xml +1 -0
- package/package.json +1 -1
- package/src/index.js +15 -6
- package/src/index.ts +22 -10
- package/src/migration/index.d.ts +2 -1
- package/src/migration/index.d.ts.map +1 -1
- package/src/migration/index.js +39 -0
- package/src/migration/index.js.map +1 -1
- package/src/migration/index.ts +43 -1
- package/src/parser/backup/engine.d.ts +4 -1
- package/src/parser/backup/engine.d.ts.map +1 -1
- package/src/parser/backup/engine.js +53 -33
- package/src/parser/backup/engine.js.map +1 -1
- package/src/parser/backup/engine.ts +58 -33
- package/src/parser/backup/index.d.ts +4 -1
- package/src/parser/backup/index.d.ts.map +1 -1
- package/src/parser/def.d.ts +5 -3
- package/src/parser/def.d.ts.map +1 -1
- package/src/parser/def.ts +9 -2
- package/src/parser/modelParser.d.ts +4 -1
- package/src/parser/modelParser.d.ts.map +1 -1
- package/src/parser/notice.js +1 -1
- package/src/parser/notice.ts +2 -2
- package/src/parser/parser.d.ts +6 -1
- package/src/parser/parser.d.ts.map +1 -1
- package/src/parser/parser.js +16 -16
- package/src/parser/parser.js.map +1 -1
- package/src/parser/parser.ts +31 -18
- package/src/parser/schama.d.ts +3 -0
- package/src/parser/schama.d.ts.map +1 -0
- package/src/parser/schama.js +16 -0
- package/src/parser/schama.js.map +1 -0
- package/src/parser/schama.ts +14 -0
- package/src/parser/sql.d.ts +4 -1
- package/src/parser/sql.d.ts.map +1 -1
- package/src/parser/sql.js +47 -20
- package/src/parser/sql.js.map +1 -1
- package/src/parser/sql.ts +33 -22
- package/src/parser/sys.d.ts.map +1 -1
- package/src/parser/sys.js +2 -6
- package/src/parser/sys.js.map +1 -1
- package/src/parser/sys.ts +3 -5
- package/src/parser/table/engine.js +2 -2
- package/src/parser/table/engine.ts +3 -3
- package/src/sql/catalog-maps.d.ts +1 -0
- package/src/sql/catalog-maps.d.ts.map +1 -0
- package/src/sql/catalog-maps.js +283 -0
- package/src/sql/catalog-maps.js.map +1 -0
- package/src/sql/catalog-maps.ts +281 -0
- package/src/sql/sql-builder.d.ts +1 -0
- package/src/sql/sql-builder.d.ts.map +1 -0
- package/src/sql/sql-builder.js +256 -0
- package/src/sql/sql-builder.js.map +1 -0
- package/src/sql/sql-builder.ts +254 -0
- package/src/utils/escape.d.ts +5 -1
- package/src/utils/escape.d.ts.map +1 -1
- package/src/utils/escape.js +328 -4
- package/src/utils/escape.js.map +1 -1
- package/src/utils/escape.ts +331 -4
- package/src/utils/script-util.d.ts +26 -0
- package/src/utils/script-util.d.ts.map +1 -0
- package/src/utils/script-util.js +95 -0
- package/src/utils/script-util.js.map +1 -0
- package/src/utils/script-util.ts +105 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
// export const PGDataTypeMapCheck = {
|
|
2
|
+
// number(arg) {
|
|
3
|
+
// let number = Number(arg);
|
|
4
|
+
// return Number.isFinite(number) && !Number.isNaN(number);
|
|
5
|
+
// },
|
|
6
|
+
// string(arg) {
|
|
7
|
+
// return typeof arg === 'string';
|
|
8
|
+
// },
|
|
9
|
+
// boolean(arg) {
|
|
10
|
+
// return typeof arg === 'boolean';
|
|
11
|
+
// },
|
|
12
|
+
// Buffer(arg) {
|
|
13
|
+
// return Buffer.isBuffer(arg);
|
|
14
|
+
// },
|
|
15
|
+
// Date(arg) {
|
|
16
|
+
// return arg instanceof Date;
|
|
17
|
+
// },
|
|
18
|
+
// "any"( ) {
|
|
19
|
+
// return true;
|
|
20
|
+
// },
|
|
21
|
+
// "any[]"( arg ) {
|
|
22
|
+
// return Array.isArray(arg);
|
|
23
|
+
// },
|
|
24
|
+
// void( arg ) {
|
|
25
|
+
// return arg === undefined || arg === null;
|
|
26
|
+
// }
|
|
27
|
+
// };
|
|
28
|
+
//
|
|
29
|
+
// export const PGDataTypeMap = {
|
|
30
|
+
// bigint: "number",
|
|
31
|
+
// bigserial: "number",
|
|
32
|
+
// bit: "string",
|
|
33
|
+
// "bit varying": "string",
|
|
34
|
+
// boolean: "boolean",
|
|
35
|
+
// bool: "boolean",
|
|
36
|
+
// box: "string",
|
|
37
|
+
// bytea: "Buffer",
|
|
38
|
+
// '"char"': "string",
|
|
39
|
+
// "char": "string",
|
|
40
|
+
// character: "string",
|
|
41
|
+
// bpchar: "string",
|
|
42
|
+
// "character varying": "string",
|
|
43
|
+
// cid: "string",
|
|
44
|
+
// cidr: "string",
|
|
45
|
+
// circle: "string",
|
|
46
|
+
// date: "Date",
|
|
47
|
+
// "double precision": "number",
|
|
48
|
+
// inet: "string",
|
|
49
|
+
// integer: "number",
|
|
50
|
+
// int8: "number",
|
|
51
|
+
// interval: "string",
|
|
52
|
+
// json: "any",
|
|
53
|
+
// jsonb: "any",
|
|
54
|
+
// line: "string",
|
|
55
|
+
// lseg: "string",
|
|
56
|
+
// macaddr: "string",
|
|
57
|
+
// money: "number",
|
|
58
|
+
// numeric: "number",
|
|
59
|
+
// oid: "number",
|
|
60
|
+
// path: "string",
|
|
61
|
+
// pg_lsn: "string",
|
|
62
|
+
// point: "string",
|
|
63
|
+
// polygon: "string",
|
|
64
|
+
// real: "number",
|
|
65
|
+
// record: "any",
|
|
66
|
+
// regtype: "string",
|
|
67
|
+
// smallint: "number",
|
|
68
|
+
// int2: "number",
|
|
69
|
+
// smallserial: "number",
|
|
70
|
+
// serial: "number",
|
|
71
|
+
// int4: "number",
|
|
72
|
+
// float8: "number",
|
|
73
|
+
// text: "string",
|
|
74
|
+
// varchar: "string",
|
|
75
|
+
// time: "string",
|
|
76
|
+
// regprocedure: "string",
|
|
77
|
+
// regproc: "string",
|
|
78
|
+
// trigger: "void",
|
|
79
|
+
// internal: "void",
|
|
80
|
+
// anyelement: "any",
|
|
81
|
+
// regclass: "string",
|
|
82
|
+
// anyarray: "any[]",
|
|
83
|
+
// timestamp: "Date",
|
|
84
|
+
// "timestamptz": "Date",
|
|
85
|
+
// "timestamp with time zone": "Date",
|
|
86
|
+
// "timestamp without time zone": "Date",
|
|
87
|
+
// tid: "string",
|
|
88
|
+
// tsquery: "string",
|
|
89
|
+
// tsvector: "string",
|
|
90
|
+
// txid_snapshot: "string",
|
|
91
|
+
// uuid: "string",
|
|
92
|
+
// xid: "string",
|
|
93
|
+
// void: "void",
|
|
94
|
+
// xml: "string",
|
|
95
|
+
// name: "string",
|
|
96
|
+
// regdictionary: "string",
|
|
97
|
+
// aclitem: "string",
|
|
98
|
+
// pg_node_tree: "pg_node_tree"
|
|
99
|
+
// };
|
|
100
|
+
//
|
|
101
|
+
// export type PGDataType = {
|
|
102
|
+
// bigint: number;
|
|
103
|
+
// bigserial: number;
|
|
104
|
+
// bit: string;
|
|
105
|
+
// "bit varying": string;
|
|
106
|
+
// boolean: boolean;
|
|
107
|
+
// bool: boolean;
|
|
108
|
+
// box: string;
|
|
109
|
+
// bytea: Buffer;
|
|
110
|
+
// '"char"': string;
|
|
111
|
+
// "char": string;
|
|
112
|
+
// character: string;
|
|
113
|
+
// bpchar: string;
|
|
114
|
+
// "character varying": string;
|
|
115
|
+
// cid: string;
|
|
116
|
+
// cidr: string;
|
|
117
|
+
// circle: string;
|
|
118
|
+
// date: Date;
|
|
119
|
+
// "double precision": number;
|
|
120
|
+
// inet: string;
|
|
121
|
+
// integer: number;
|
|
122
|
+
// int8: number;
|
|
123
|
+
// interval: string;
|
|
124
|
+
// json: any;
|
|
125
|
+
// jsonb: any;
|
|
126
|
+
// line: string;
|
|
127
|
+
// lseg: string;
|
|
128
|
+
// macaddr: string;
|
|
129
|
+
// money: number;
|
|
130
|
+
// numeric: number;
|
|
131
|
+
// oid: number;
|
|
132
|
+
// path: string;
|
|
133
|
+
// pg_lsn: string;
|
|
134
|
+
// point: string;
|
|
135
|
+
// polygon: string;
|
|
136
|
+
// real: number;
|
|
137
|
+
// record: any; // Adicionado
|
|
138
|
+
// regtype: string; // Adicionado
|
|
139
|
+
// smallint: number;
|
|
140
|
+
// int2: number;
|
|
141
|
+
// smallserial: number;
|
|
142
|
+
// serial: number;
|
|
143
|
+
// int4: number;
|
|
144
|
+
// float8: number;
|
|
145
|
+
// text: string;
|
|
146
|
+
// varchar: string;
|
|
147
|
+
// time: string;
|
|
148
|
+
// regproc: string;
|
|
149
|
+
// regprocedure: string;
|
|
150
|
+
// trigger: void;
|
|
151
|
+
// internal: void;
|
|
152
|
+
// anyelement: any;
|
|
153
|
+
// regclass: string;
|
|
154
|
+
// anyarray: any[];
|
|
155
|
+
// timestamp: Date;
|
|
156
|
+
// "timestamptz": Date;
|
|
157
|
+
// "timestamp with time zone": Date;
|
|
158
|
+
// "timestamp without time zone": Date;
|
|
159
|
+
// tid: string;
|
|
160
|
+
// tsquery: string;
|
|
161
|
+
// tsvector: string;
|
|
162
|
+
// txid_snapshot: string;
|
|
163
|
+
// uuid: string;
|
|
164
|
+
// xid: string;
|
|
165
|
+
// void: void;
|
|
166
|
+
// xml: string;
|
|
167
|
+
// name:string
|
|
168
|
+
// regdictionary:string
|
|
169
|
+
// aclitem:string
|
|
170
|
+
// pg_node_tree:string
|
|
171
|
+
// };
|
|
172
|
+
//
|
|
173
|
+
// export default PGDataType;
|
|
174
|
+
//
|
|
175
|
+
// export type CatalogTypesMap< T extends keyof PGDataType> = PGDataType[T];
|
|
176
|
+
//
|
|
177
|
+
//
|
|
178
|
+
// export type FunctionOf< F extends FunctionOf<F> > = {
|
|
179
|
+
// [ schema in keyof F ]:F[schema]
|
|
180
|
+
// }
|
|
181
|
+
//
|
|
182
|
+
//
|
|
183
|
+
// export type TableOf<T extends TableOf< T>> = {
|
|
184
|
+
// [ schema in keyof T ]:T[schema]
|
|
185
|
+
// }
|
|
186
|
+
//
|
|
187
|
+
// export type ViewOf<V extends ViewOf<V>> = {
|
|
188
|
+
// [ schema in keyof V ]:V[schema]
|
|
189
|
+
// }
|
|
190
|
+
//
|
|
191
|
+
// export type RelationOf< R extends &RelationOf< R> > = {
|
|
192
|
+
// [ schema in keyof R ]:R[schema]
|
|
193
|
+
// }
|
|
194
|
+
//
|
|
195
|
+
// export type MaterializesOf< R extends &RelationOf< R> > = {
|
|
196
|
+
// [ schema in keyof R ]:R[schema]
|
|
197
|
+
// }
|
|
198
|
+
//
|
|
199
|
+
// export type CompositeTypeOf< CT extends CompositeTypeOf<CT> > = {
|
|
200
|
+
// [ schema in keyof CT ]:CT[schema]
|
|
201
|
+
// }
|
|
202
|
+
//
|
|
203
|
+
// export type EnumOf<E extends EnumOf< E> > = {
|
|
204
|
+
// [ schema in keyof E ]:E[ schema ]
|
|
205
|
+
// }
|
|
206
|
+
//
|
|
207
|
+
// export type CatalogOf<R extends CatalogOf<R>> = {
|
|
208
|
+
//
|
|
209
|
+
// schemas?:(R["schemas"][number])[],
|
|
210
|
+
// types?: { [S in keyof R["types"]]:R["types"][S] },
|
|
211
|
+
//
|
|
212
|
+
// functions?: {
|
|
213
|
+
// [S in (keyof R["functions"])]:{
|
|
214
|
+
// [K in keyof R["functions"][S]]:R["functions"][S][K]
|
|
215
|
+
// }
|
|
216
|
+
// }, functionsRefs?: {
|
|
217
|
+
// [K in keyof R["functionsRefs"]]:R["functionsRefs"][K]
|
|
218
|
+
// },
|
|
219
|
+
//
|
|
220
|
+
// functionsProps?: {
|
|
221
|
+
// [S in (keyof R["functionsProps"])]:{
|
|
222
|
+
// [K in keyof R["functionsProps"][S]]:R["functionsProps"][S][K]
|
|
223
|
+
// }
|
|
224
|
+
// }, functionsPropsRefs?: {
|
|
225
|
+
// [K in keyof R["functionsPropsRefs"]]:{
|
|
226
|
+
// args:R["functionsPropsRefs"][K]["args"]
|
|
227
|
+
// options:R["functionsPropsRefs"][K]["options"]
|
|
228
|
+
// returns:R["functionsPropsRefs"][K]["returns"]
|
|
229
|
+
// returnsType:R["functionsPropsRefs"][K]["returnsType"]
|
|
230
|
+
// }
|
|
231
|
+
// },
|
|
232
|
+
//
|
|
233
|
+
// tables?: {
|
|
234
|
+
// [S in (keyof R["tables"])]:{
|
|
235
|
+
// [K in keyof R["tables"][S]]:R["tables"][S][K]
|
|
236
|
+
// }
|
|
237
|
+
// },
|
|
238
|
+
// tablesRefs?: {
|
|
239
|
+
// [K in keyof R["tablesRefs"]]:R["tablesRefs"][K]
|
|
240
|
+
// },
|
|
241
|
+
//
|
|
242
|
+
// views?: {
|
|
243
|
+
// [S in (keyof R["views"])]:{
|
|
244
|
+
// [K in keyof R["views"][S]]:R["views"][S][K]
|
|
245
|
+
// }
|
|
246
|
+
// }, viewsRefs?: {
|
|
247
|
+
// [S in (keyof R["viewsRefs"])]:R["viewsRefs"][S]
|
|
248
|
+
// },
|
|
249
|
+
//
|
|
250
|
+
// materializes?: {
|
|
251
|
+
// [S in (keyof R["materializes"])]:{
|
|
252
|
+
// [K in keyof R["materializes"][S]]:R["materializes"][S][K]
|
|
253
|
+
// }
|
|
254
|
+
// }, materializesRefs?: {
|
|
255
|
+
// [S in (keyof R["materializesRefs"])]:R["materializesRefs"][S]
|
|
256
|
+
// },
|
|
257
|
+
//
|
|
258
|
+
// relations?: {
|
|
259
|
+
// [S in (keyof R["relations"])]:{
|
|
260
|
+
// [K in keyof R["relations"][S]]:R["relations"][S][K]
|
|
261
|
+
// }
|
|
262
|
+
// }, relationsRefs?: {
|
|
263
|
+
// [S in (keyof R["relationsRefs"])]:R["relationsRefs"][S]
|
|
264
|
+
// },
|
|
265
|
+
//
|
|
266
|
+
// composites?: {
|
|
267
|
+
// [S in (keyof R["composites"])]:{
|
|
268
|
+
// [K in keyof R["composites"][S]]:R["composites"][S][K]
|
|
269
|
+
// }
|
|
270
|
+
// }, compositesRefs?: {
|
|
271
|
+
// [S in (keyof R["compositesRefs"])]:R["compositesRefs"][ S ]
|
|
272
|
+
// },
|
|
273
|
+
//
|
|
274
|
+
// enums?: {
|
|
275
|
+
// [S in (keyof R["enums"])]:{
|
|
276
|
+
// [K in keyof R["enums"][S]]:R["enums"][S][K]
|
|
277
|
+
// }
|
|
278
|
+
// }, enumsRefs?: {
|
|
279
|
+
// [S in (keyof R["enumsRefs"])]:R["enumsRefs"][ S ]
|
|
280
|
+
// }
|
|
281
|
+
// }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=sql-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["sql-builder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import {Escape, lit, oid, SQL} from "../utils/escape";
|
|
3
|
+
// import {ScriptLine, scriptUtil} from "../utils/script-util";
|
|
4
|
+
// import {QueryBuilderResult} from "@prisma-psm/core";
|
|
5
|
+
//
|
|
6
|
+
// export function literalEscape ( value:any){
|
|
7
|
+
// let textValue;
|
|
8
|
+
// if( value === null || value === undefined) textValue = "null";
|
|
9
|
+
// else if( typeof value === "string") textValue = lit( value );
|
|
10
|
+
// else if( typeof value === "number") textValue = value;
|
|
11
|
+
// else if( typeof value === "boolean") textValue = value;
|
|
12
|
+
// else if( typeof value === "object") textValue = lit( JSON.stringify( value ));
|
|
13
|
+
// return textValue;
|
|
14
|
+
// }
|
|
15
|
+
//
|
|
16
|
+
//
|
|
17
|
+
//
|
|
18
|
+
// export type PreparedQuery = {
|
|
19
|
+
// query:string,
|
|
20
|
+
// values:any[],
|
|
21
|
+
// line:ScriptLine
|
|
22
|
+
// }
|
|
23
|
+
//
|
|
24
|
+
// const CHECK = Symbol("check" );
|
|
25
|
+
//
|
|
26
|
+
//
|
|
27
|
+
// export class PostgresQueryBuilderResult implements QueryBuilderResult{
|
|
28
|
+
// escaped:any[];
|
|
29
|
+
// piece:boolean
|
|
30
|
+
// template:string[];
|
|
31
|
+
// private _query:string;
|
|
32
|
+
// public line:ScriptLine;
|
|
33
|
+
//
|
|
34
|
+
// constructor(template:TemplateStringsArray|string|string[], escaped:any[], line:ScriptLine ) {
|
|
35
|
+
// if( !line || !line?.filename ) throw new Error( `Script line is not declared` );
|
|
36
|
+
// if( line.filename.startsWith("node:internal")){
|
|
37
|
+
// throw new Error( `Invalid script line is internal capture`);
|
|
38
|
+
// }
|
|
39
|
+
//
|
|
40
|
+
// if( !escaped ) escaped = [];
|
|
41
|
+
// if( !template ) template = [];
|
|
42
|
+
// this.template = [];
|
|
43
|
+
// this.escaped = [];
|
|
44
|
+
//
|
|
45
|
+
// let hasTemplate = !!template?.length;
|
|
46
|
+
// let hasValue = !!escaped?.length;
|
|
47
|
+
// let hasCheck = !!arguments[2] || arguments[2] === CHECK;
|
|
48
|
+
// if( !hasTemplate && !hasCheck ) throw new Error( "Invalid Builder" );
|
|
49
|
+
//
|
|
50
|
+
//
|
|
51
|
+
// if( typeof template === "string" ){
|
|
52
|
+
// this._query = template;
|
|
53
|
+
// } else {
|
|
54
|
+
// this.template.push( ...template);
|
|
55
|
+
// }
|
|
56
|
+
// this.escaped.push( ...escaped );
|
|
57
|
+
// this.line = line;
|
|
58
|
+
// }
|
|
59
|
+
//
|
|
60
|
+
// get builderParts(){
|
|
61
|
+
// if( this.pieces.length+1 !== this.template.length ) throw new Error( "Inconsistency template builder" );
|
|
62
|
+
//
|
|
63
|
+
// let list:any[] = [];
|
|
64
|
+
// this.template.forEach( (value, index) => {
|
|
65
|
+
// list.push( value );
|
|
66
|
+
// if( index < this.pieces.length ) list.push( this.pieces[ index ]);
|
|
67
|
+
// });
|
|
68
|
+
// return list;
|
|
69
|
+
// }
|
|
70
|
+
//
|
|
71
|
+
//
|
|
72
|
+
// parameterizedQuery():PreparedQuery{
|
|
73
|
+
// if( !!this._query ){
|
|
74
|
+
// let values = this.values.map( value => {
|
|
75
|
+
// if( value instanceof Escape ) return value.value;
|
|
76
|
+
// else return value;
|
|
77
|
+
// })
|
|
78
|
+
// return {
|
|
79
|
+
// query: this._query,
|
|
80
|
+
// values: values,
|
|
81
|
+
// line: this.line
|
|
82
|
+
// };
|
|
83
|
+
// } else {
|
|
84
|
+
// let argIndex = 1;
|
|
85
|
+
// let queryParts = this.builderParts.map( (value, index) => {
|
|
86
|
+
// if( (index %2) === 0 ){
|
|
87
|
+
// return value;
|
|
88
|
+
// }
|
|
89
|
+
//
|
|
90
|
+
// if( value instanceof Escape && value.mode === "type" && value.asArray){
|
|
91
|
+
// return '$'+(argIndex++)+"::"+value.type+"[]";
|
|
92
|
+
// } else if( value instanceof Escape && value.mode === "type" ){
|
|
93
|
+
// return '$'+(argIndex++)+"::"+value.type;
|
|
94
|
+
// }
|
|
95
|
+
//
|
|
96
|
+
// if( value instanceof Escape && value.mode === "identifier" ){
|
|
97
|
+
// return oid( value.value );
|
|
98
|
+
// }
|
|
99
|
+
//
|
|
100
|
+
// if( value === null || value === undefined){
|
|
101
|
+
// return "null";
|
|
102
|
+
// } else {
|
|
103
|
+
// return '$'+(argIndex++);
|
|
104
|
+
// }
|
|
105
|
+
// });
|
|
106
|
+
//
|
|
107
|
+
// let values = this.values.filter( value => {
|
|
108
|
+
// if( value instanceof Escape && value.mode === "identifier" ) return;
|
|
109
|
+
// else return value !== null && value !== undefined;
|
|
110
|
+
// }).map( value => {
|
|
111
|
+
// if( value instanceof Escape ) {
|
|
112
|
+
// if( value.value === null || value.value === undefined ) return null;
|
|
113
|
+
// if( value.type === "jsonb" && typeof value.value === "object" ) return JSON.stringify( value.value );
|
|
114
|
+
// if( value.type === "json" && typeof value.value === "object" ) return JSON.stringify( value.value );
|
|
115
|
+
// return value.value;
|
|
116
|
+
// }
|
|
117
|
+
// else return value;
|
|
118
|
+
// })
|
|
119
|
+
//
|
|
120
|
+
// return {
|
|
121
|
+
// query: queryParts.join(""),
|
|
122
|
+
// values: values,
|
|
123
|
+
// line: this.line
|
|
124
|
+
// }
|
|
125
|
+
// }
|
|
126
|
+
// }
|
|
127
|
+
//
|
|
128
|
+
// add( sqlPart:string, sqlValue:any ){
|
|
129
|
+
// this.template.push( sqlPart );
|
|
130
|
+
// this.values.push( sqlValue );
|
|
131
|
+
// }
|
|
132
|
+
// noParameterizedQuery():PreparedQuery{
|
|
133
|
+
// if( !!this._query ){
|
|
134
|
+
// return {
|
|
135
|
+
// line: this.line,
|
|
136
|
+
// query: this._query,
|
|
137
|
+
// values: null
|
|
138
|
+
// };
|
|
139
|
+
// } else {
|
|
140
|
+
// let queryParts = this.builderParts.map( (value, index) => {
|
|
141
|
+
// let _scape;
|
|
142
|
+
// if ((index % 2) === 0) {
|
|
143
|
+
// return value;
|
|
144
|
+
//
|
|
145
|
+
// }else if( value instanceof Escape && value.mode === "literal") {
|
|
146
|
+
// return lit( value.value?.toString?.()||null )
|
|
147
|
+
// } else if( value instanceof Escape && (value.mode === "unsafe" || value.mode === "keyword")){
|
|
148
|
+
// _scape = value.value;
|
|
149
|
+
// } else if( value instanceof Escape && value.mode === "type" ){
|
|
150
|
+
// let preEscape = value.literal();
|
|
151
|
+
// let textValue = literalEscape( preEscape );
|
|
152
|
+
// // let textValue = value.literal();
|
|
153
|
+
// let _as = "";
|
|
154
|
+
// if( value.type && value.type.length && value.asArray ) _as = `::${value.type}[]`;
|
|
155
|
+
// else if( value.type && value.type.length ) _as = `::${value.type}`;
|
|
156
|
+
// _scape = textValue+_as;
|
|
157
|
+
// } else if( value instanceof Escape && value.mode === "identifier" ){
|
|
158
|
+
// _scape= oid( value.value );
|
|
159
|
+
// } else {
|
|
160
|
+
// _scape = literalEscape( value )
|
|
161
|
+
// }return _scape;
|
|
162
|
+
// });
|
|
163
|
+
//
|
|
164
|
+
// let str = queryParts.join("");
|
|
165
|
+
// return {
|
|
166
|
+
// query: str,
|
|
167
|
+
// values: null,
|
|
168
|
+
// line: this.line
|
|
169
|
+
// }
|
|
170
|
+
// }
|
|
171
|
+
// }
|
|
172
|
+
//
|
|
173
|
+
//
|
|
174
|
+
// push( ...builders:QueryBuilderResult[] ){
|
|
175
|
+
// let _push = ( outsideBuilder:QueryBuilderResult)=>{
|
|
176
|
+
// let checkOutsideBuilder = this.checkSupportedJoin( outsideBuilder );
|
|
177
|
+
// if( !checkOutsideBuilder ) throw new Error( "Unsupported outside builder" );
|
|
178
|
+
// let checkSelfBuilder = this.checkSupportedJoin( this );
|
|
179
|
+
// if( !checkSelfBuilder ) {
|
|
180
|
+
// throw new Error("Current builder no support join");
|
|
181
|
+
// }
|
|
182
|
+
//
|
|
183
|
+
// if( !checkSelfBuilder.hasTemplate ) {
|
|
184
|
+
// this.template = [];
|
|
185
|
+
// if( checkSelfBuilder.hasQuery ){
|
|
186
|
+
// this.template.push( this._query );
|
|
187
|
+
// this._query = null;
|
|
188
|
+
// }
|
|
189
|
+
// }
|
|
190
|
+
//
|
|
191
|
+
// let selfTemplate = this.template;
|
|
192
|
+
// let outsideTemplate = outsideBuilder.template;
|
|
193
|
+
// if( !checkOutsideBuilder.hasTemplate ){
|
|
194
|
+
// outsideTemplate = [ outsideBuilder._query ];
|
|
195
|
+
// }
|
|
196
|
+
//
|
|
197
|
+
// outsideTemplate.forEach((element, elementIndex) => {
|
|
198
|
+
// if(selfTemplate.length > 0 && elementIndex===0 ){
|
|
199
|
+
// let lastElementResult = selfTemplate[selfTemplate.length - 1];
|
|
200
|
+
// lastElementResult = lastElementResult.trimEnd();
|
|
201
|
+
// if( lastElementResult[lastElementResult.length-1] !== ";" && !outsideBuilder.piece ) lastElementResult+= ";"
|
|
202
|
+
// selfTemplate[selfTemplate.length - 1] = lastElementResult+ "\n\n"+ element.trimStart();
|
|
203
|
+
// return
|
|
204
|
+
// }
|
|
205
|
+
// selfTemplate.push( element );
|
|
206
|
+
//
|
|
207
|
+
// });
|
|
208
|
+
// this.values.push( ... outsideBuilder.values );
|
|
209
|
+
// }
|
|
210
|
+
// builders.forEach( value => _push( value ) );
|
|
211
|
+
// }
|
|
212
|
+
//
|
|
213
|
+
// private checkSupportedJoin( builder:PostgresQueryBuilderResult ){
|
|
214
|
+
// let hasTemplate = !!builder.template && !!builder.template.length;
|
|
215
|
+
// let hasQuery = !!builder._query && !!builder._query.length;
|
|
216
|
+
// let hasValues = !!builder.values && !!builder.values.length && builder.values.length > 0
|
|
217
|
+
// if( !hasTemplate && hasValues ) return false;
|
|
218
|
+
// return { hasTemplate, hasQuery, hasValues };
|
|
219
|
+
//
|
|
220
|
+
// }
|
|
221
|
+
// }
|
|
222
|
+
// export function sql( sqlTemplate:TemplateStringsArray, ...values:any[]):QueryBuilderResult{
|
|
223
|
+
// let line = scriptUtil.lineOf( 1 );
|
|
224
|
+
// return new PostgresQueryBuilderResult(sqlTemplate, values.map(value => {
|
|
225
|
+
// if (value instanceof Escape) return value
|
|
226
|
+
// else return SQL.any(value)
|
|
227
|
+
// }), line);
|
|
228
|
+
// }
|
|
229
|
+
//
|
|
230
|
+
//
|
|
231
|
+
// sql.joins = ( ...builders:QueryBuilderResult[] )=>{
|
|
232
|
+
// let builder = builders.shift();
|
|
233
|
+
// if( !!builder && builders.length ) builder.push( ...builders );
|
|
234
|
+
// return builder;
|
|
235
|
+
// }
|
|
236
|
+
//
|
|
237
|
+
// sql.join = ( builders:QueryBuilderResult[] )=>{
|
|
238
|
+
// return sql.joins( ...(builders||[]) );
|
|
239
|
+
// }
|
|
240
|
+
//
|
|
241
|
+
// export function noAutoEscapeSql( sqlTemplate:TemplateStringsArray, ...values):PostgresQueryBuilderResult{
|
|
242
|
+
// let line = scriptUtil.lineOf( 1 );
|
|
243
|
+
// return new PostgresQueryBuilderResult( sqlTemplate, values, line );
|
|
244
|
+
// }
|
|
245
|
+
//
|
|
246
|
+
// export function queryJoin( ...prepared:QueryBuilderResult[] ):PostgresQueryBuilderResult {
|
|
247
|
+
// if( !prepared || !prepared.length ) throw new Error( "Query join is empty!");
|
|
248
|
+
// let superList = prepared;
|
|
249
|
+
// // @ts-ignore
|
|
250
|
+
// let joins = new QueryBuilderResult(undefined,undefined, prepared[ 0 ].line );
|
|
251
|
+
// superList.forEach( builder => {
|
|
252
|
+
// joins.push( builder );
|
|
253
|
+
// });
|
|
254
|
+
// return joins;
|
|
255
|
+
// }
|
|
256
|
+
//# sourceMappingURL=sql-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["sql-builder.ts"],"names":[],"mappings":"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"}
|