@digitalwalletcorp/sql-builder 2.0.0 → 2.1.0
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/README.md +183 -49
- package/lib/abstract-syntax-tree.d.ts +1 -1
- package/lib/abstract-syntax-tree.js +6 -6
- package/lib/abstract-syntax-tree.js.map +1 -1
- package/lib/common.d.ts +21 -0
- package/lib/common.js +35 -4
- package/lib/common.js.map +1 -1
- package/lib/sql-builder.d.ts +21 -1
- package/lib/sql-builder.js +285 -66
- package/lib/sql-builder.js.map +1 -1
- package/package.json +3 -2
- package/src/abstract-syntax-tree.ts +5 -6
- package/src/common.ts +40 -4
- package/src/sql-builder.ts +349 -79
package/lib/sql-builder.js
CHANGED
|
@@ -181,45 +181,98 @@ class SQLBuilder {
|
|
|
181
181
|
*/
|
|
182
182
|
const matches = template.matchAll(this.REGEX_TAG_PATTERN);
|
|
183
183
|
// まず最初にREGEX_TAG_PATTERNで解析した情報をそのままフラットにTagContextの配列に格納
|
|
184
|
-
let
|
|
184
|
+
let lastIndex = 0;
|
|
185
185
|
const tagContexts = [];
|
|
186
186
|
for (const match of matches) {
|
|
187
187
|
const matchContent = match[0];
|
|
188
188
|
const index = match.index;
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
if (lastIndex < index) {
|
|
190
|
+
tagContexts.push({
|
|
191
|
+
type: 'TEXT',
|
|
192
|
+
match: '',
|
|
193
|
+
contents: template.substring(lastIndex, index),
|
|
194
|
+
startIndex: lastIndex,
|
|
195
|
+
endIndex: index,
|
|
196
|
+
parent: null
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
let tagContext = {
|
|
191
200
|
type: 'BIND', // ダミーの初期値。後続処理で適切なタイプに変更する。
|
|
192
|
-
match: matchContent,
|
|
193
201
|
contents: '',
|
|
194
202
|
startIndex: index,
|
|
195
203
|
endIndex: index + matchContent.length,
|
|
196
|
-
sub: [],
|
|
197
204
|
parent: null,
|
|
198
|
-
|
|
205
|
+
match: matchContent
|
|
199
206
|
};
|
|
200
207
|
switch (true) {
|
|
201
208
|
case matchContent === '/*BEGIN*/': {
|
|
202
|
-
tagContext
|
|
209
|
+
tagContext = {
|
|
210
|
+
...tagContext,
|
|
211
|
+
type: 'BEGIN',
|
|
212
|
+
sub: [],
|
|
213
|
+
conditionMatched: false,
|
|
214
|
+
childConditionMatched: false
|
|
215
|
+
};
|
|
203
216
|
break;
|
|
204
217
|
}
|
|
205
218
|
case matchContent.startsWith('/*IF'): {
|
|
206
|
-
tagContext
|
|
219
|
+
tagContext = {
|
|
220
|
+
...tagContext,
|
|
221
|
+
type: 'IF',
|
|
222
|
+
sub: [],
|
|
223
|
+
conditionMatched: false,
|
|
224
|
+
childConditionMatched: false
|
|
225
|
+
};
|
|
207
226
|
const contentMatcher = matchContent.match(/^\/\*IF\s+(.*?)\*\/$/);
|
|
208
227
|
tagContext.contents = contentMatcher && contentMatcher[1] || '';
|
|
209
228
|
break;
|
|
210
229
|
}
|
|
230
|
+
case matchContent.startsWith('/*ELSEIF'): {
|
|
231
|
+
tagContext = {
|
|
232
|
+
...tagContext,
|
|
233
|
+
type: 'ELSEIF',
|
|
234
|
+
sub: [],
|
|
235
|
+
conditionMatched: false,
|
|
236
|
+
childConditionMatched: false
|
|
237
|
+
};
|
|
238
|
+
const contentMatcher = matchContent.match(/^\/\*ELSEIF\s+(.*?)\*\/$/);
|
|
239
|
+
tagContext.contents = contentMatcher && contentMatcher[1] || '';
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
case matchContent.startsWith('/*ELSE*/'): {
|
|
243
|
+
tagContext = {
|
|
244
|
+
...tagContext,
|
|
245
|
+
type: 'ELSE',
|
|
246
|
+
sub: [],
|
|
247
|
+
conditionMatched: false,
|
|
248
|
+
childConditionMatched: false
|
|
249
|
+
};
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
211
252
|
case matchContent.startsWith('/*FOR'): {
|
|
212
|
-
tagContext
|
|
253
|
+
tagContext = {
|
|
254
|
+
...tagContext,
|
|
255
|
+
type: 'FOR',
|
|
256
|
+
sub: [],
|
|
257
|
+
conditionMatched: false,
|
|
258
|
+
childConditionMatched: false
|
|
259
|
+
};
|
|
213
260
|
const contentMatcher = matchContent.match(/^\/\*FOR\s+(.*?)\*\/$/);
|
|
214
261
|
tagContext.contents = contentMatcher && contentMatcher[1] || '';
|
|
215
262
|
break;
|
|
216
263
|
}
|
|
217
264
|
case matchContent === '/*END*/': {
|
|
218
|
-
tagContext
|
|
265
|
+
tagContext = {
|
|
266
|
+
...tagContext,
|
|
267
|
+
type: 'END'
|
|
268
|
+
};
|
|
219
269
|
break;
|
|
220
270
|
}
|
|
221
271
|
default: {
|
|
222
|
-
tagContext
|
|
272
|
+
tagContext = {
|
|
273
|
+
...tagContext,
|
|
274
|
+
type: 'BIND'
|
|
275
|
+
};
|
|
223
276
|
const contentMatcher = matchContent.match(/\/\*(.*?)\*\//);
|
|
224
277
|
tagContext.contents = contentMatcher && contentMatcher[1]?.trim() || '';
|
|
225
278
|
// ダミー値の終了位置をendIndexに設定
|
|
@@ -239,15 +292,32 @@ class SQLBuilder {
|
|
|
239
292
|
}
|
|
240
293
|
}
|
|
241
294
|
tagContexts.push(tagContext);
|
|
295
|
+
lastIndex = tagContext.endIndex;
|
|
242
296
|
}
|
|
243
|
-
//
|
|
244
|
-
|
|
297
|
+
// ループを抜けた後に残った部分をTEXTタグとして追加
|
|
298
|
+
if (lastIndex < template.length) {
|
|
299
|
+
tagContexts.push({
|
|
300
|
+
type: 'TEXT',
|
|
301
|
+
match: '',
|
|
302
|
+
contents: template.substring(lastIndex),
|
|
303
|
+
startIndex: lastIndex,
|
|
304
|
+
endIndex: template.length,
|
|
305
|
+
parent: null
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
// できあがったTagContextの配列から、
|
|
309
|
+
// BEGENの場合は対応するENDが出てくるまで、
|
|
310
|
+
// IFの場合は次の対応するENDが出てくるまでをsubに入れ直して構造化し、
|
|
311
|
+
// 以下のような構造に変更する
|
|
245
312
|
/**
|
|
246
313
|
* ```
|
|
247
314
|
* BEGIN
|
|
248
315
|
* ├ IF
|
|
249
|
-
* ├ BIND
|
|
250
|
-
* ├
|
|
316
|
+
* ├ BIND(無いこともある)
|
|
317
|
+
* ├ ELSEIF
|
|
318
|
+
* ├ BIND(無いこともある)
|
|
319
|
+
* ├ ELSE
|
|
320
|
+
* ├ BIND(無いこともある)
|
|
251
321
|
* ├ END
|
|
252
322
|
* ├ BIND
|
|
253
323
|
* END
|
|
@@ -257,6 +327,20 @@ class SQLBuilder {
|
|
|
257
327
|
const newTagContexts = [];
|
|
258
328
|
for (const tagContext of tagContexts) {
|
|
259
329
|
switch (tagContext.type) {
|
|
330
|
+
case 'TEXT':
|
|
331
|
+
case 'BIND': {
|
|
332
|
+
const parentTagContext = parentTagContexts[parentTagContexts.length - 1];
|
|
333
|
+
if (parentTagContext) {
|
|
334
|
+
// 親タグがある
|
|
335
|
+
tagContext.parent = parentTagContext;
|
|
336
|
+
parentTagContext.sub.push(tagContext);
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
// 親タグがない(最上位)
|
|
340
|
+
newTagContexts.push(tagContext);
|
|
341
|
+
}
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
260
344
|
case 'BEGIN':
|
|
261
345
|
case 'IF':
|
|
262
346
|
case 'FOR': {
|
|
@@ -274,24 +358,41 @@ class SQLBuilder {
|
|
|
274
358
|
parentTagContexts.push(tagContext);
|
|
275
359
|
break;
|
|
276
360
|
}
|
|
361
|
+
case 'ELSEIF':
|
|
362
|
+
case 'ELSE': {
|
|
363
|
+
const ifTagContext = this.findParentTagContext(parentTagContexts[parentTagContexts.length - 1], 'IF');
|
|
364
|
+
if (ifTagContext) {
|
|
365
|
+
// 親タグ(IF)がある
|
|
366
|
+
tagContext.parent = ifTagContext;
|
|
367
|
+
ifTagContext.sub.push(tagContext);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
throw new Error(`[SQLBuilder] ${tagContext.type} must be inside IF.`);
|
|
371
|
+
}
|
|
372
|
+
// 後続処理で自身が親になるので自身を追加
|
|
373
|
+
parentTagContexts.push(tagContext); // これは暫定的なものなのでENDで削除する必要がある
|
|
374
|
+
break;
|
|
375
|
+
}
|
|
277
376
|
case 'END': {
|
|
278
|
-
|
|
279
|
-
|
|
377
|
+
let parentTagContext = parentTagContexts[parentTagContexts.length - 1];
|
|
378
|
+
if (!parentTagContext) {
|
|
379
|
+
throw new Error(`[SQLBuilder] 'END' tag without corresponding parent.`);
|
|
380
|
+
}
|
|
381
|
+
if (parentTagContext.type === 'ELSEIF' || parentTagContext.type === 'ELSE') {
|
|
382
|
+
// 暫定追加されたELSEIF/ELSEを除去
|
|
383
|
+
while (parentTagContexts.length && ['ELSEIF', 'ELSE'].includes(parentTagContexts[parentTagContexts.length - 1].type)) {
|
|
384
|
+
parentTagContexts.pop();
|
|
385
|
+
}
|
|
386
|
+
parentTagContext = parentTagContexts[parentTagContexts.length - 1];
|
|
387
|
+
}
|
|
280
388
|
tagContext.parent = parentTagContext;
|
|
281
389
|
parentTagContext.sub.push(tagContext);
|
|
390
|
+
parentTagContexts.pop();
|
|
282
391
|
break;
|
|
283
392
|
}
|
|
284
393
|
default: {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
// 親タグがある
|
|
288
|
-
tagContext.parent = parentTagContext;
|
|
289
|
-
parentTagContext.sub.push(tagContext);
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
// 親タグがない(最上位)
|
|
293
|
-
newTagContexts.push(tagContext);
|
|
294
|
-
}
|
|
394
|
+
// 型定義にない型という扱いになるのでanyキャストする(到達不可能?)
|
|
395
|
+
throw new Error(`[SQLBuilder] Unknown TagType '${tagContext.type}`);
|
|
295
396
|
}
|
|
296
397
|
}
|
|
297
398
|
}
|
|
@@ -303,7 +404,7 @@ class SQLBuilder {
|
|
|
303
404
|
* @param {SharedIndex} pos 現在処理している文字列の先頭インデックス
|
|
304
405
|
* @param {string} template
|
|
305
406
|
* @param {Record<string, any>} entity
|
|
306
|
-
* @param {TagContext[]} tagContexts
|
|
407
|
+
* @param {(TagContext | ParentTagContext)[]} tagContexts
|
|
307
408
|
* @param {*} [options]
|
|
308
409
|
* ├ bindType BindType
|
|
309
410
|
* ├ bindIndex number
|
|
@@ -314,51 +415,99 @@ class SQLBuilder {
|
|
|
314
415
|
let result = '';
|
|
315
416
|
for (const tagContext of tagContexts) {
|
|
316
417
|
switch (tagContext.type) {
|
|
418
|
+
case 'TEXT': {
|
|
419
|
+
// テキストは無条件に書き出し
|
|
420
|
+
// 改行だけなど、trimすると空になる文字列もあるが、
|
|
421
|
+
// どの部分がスキップされたのかわかるようにあえて残すことにする
|
|
422
|
+
result += tagContext.contents;
|
|
423
|
+
pos.index = tagContext.endIndex;
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
317
426
|
case 'BEGIN': {
|
|
318
427
|
result += template.substring(pos.index, tagContext.startIndex);
|
|
319
428
|
pos.index = tagContext.endIndex;
|
|
320
429
|
// BEGINのときは無条件にsubに対して再帰呼び出し
|
|
321
430
|
const beginBlockResult = this.parse(pos, template, entity, tagContext.sub, options);
|
|
322
431
|
// BEGIN内のIF、FORのいずれかで成立したものがあった場合は結果を出力
|
|
323
|
-
if (tagContext.sub.some(sub => (sub.type === 'IF' || sub.type === 'FOR') && sub.
|
|
432
|
+
if (tagContext.sub.some(sub => (sub.type === 'IF' || sub.type === 'FOR') && sub.conditionMatched)) {
|
|
324
433
|
result += beginBlockResult;
|
|
325
434
|
}
|
|
326
435
|
break;
|
|
327
436
|
}
|
|
328
437
|
case 'IF': {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
result += this.parse(pos, template, entity,
|
|
438
|
+
const conditionMatched = this.evaluateCondition(tagContext.contents, entity);
|
|
439
|
+
if (conditionMatched) {
|
|
440
|
+
tagContext.conditionMatched = true; // 自身の評価結果
|
|
441
|
+
pos.index = tagContext.endIndex;
|
|
442
|
+
// 条件が成立したので、自身のsubにある条件タグを排除する
|
|
443
|
+
const children = tagContext.sub.filter(a => a.type !== 'ELSEIF' && a.type !== 'ELSE');
|
|
444
|
+
result += this.parse(pos, template, entity, children, options);
|
|
445
|
+
// IFタグからENDを探すときは、自身のsubの最後の要素
|
|
446
|
+
const endTagContext = tagContext.sub[tagContext.sub.length - 1];
|
|
447
|
+
pos.index = endTagContext.endIndex;
|
|
336
448
|
}
|
|
337
449
|
else {
|
|
338
|
-
//
|
|
339
|
-
const
|
|
450
|
+
// 条件不成立
|
|
451
|
+
const nextBranch = tagContext.sub.find(a => a.type === 'ELSEIF' || a.type === 'ELSE');
|
|
452
|
+
if (nextBranch) {
|
|
453
|
+
pos.index = nextBranch.startIndex;
|
|
454
|
+
result += this.parse(pos, template, entity, [nextBranch], options);
|
|
455
|
+
}
|
|
456
|
+
else {
|
|
457
|
+
// 次の条件がない場合はENDの後ろまでポインタを飛ばす
|
|
458
|
+
const endTagContext = tagContext.sub[tagContext.sub.length - 1];
|
|
459
|
+
pos.index = endTagContext.endIndex;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
break;
|
|
463
|
+
}
|
|
464
|
+
case 'ELSEIF':
|
|
465
|
+
case 'ELSE': {
|
|
466
|
+
const conditionMatched = tagContext.type === 'ELSE' || this.evaluateCondition(tagContext.contents, entity);
|
|
467
|
+
if (conditionMatched) {
|
|
468
|
+
tagContext.conditionMatched = true; // 自身の評価結果
|
|
469
|
+
pos.index = tagContext.endIndex;
|
|
470
|
+
// 条件が成立したので、自身のsubにある条件タグを排除する
|
|
471
|
+
const children = tagContext.sub.filter(a => a.type !== 'ELSEIF' && a.type !== 'ELSE');
|
|
472
|
+
result += this.parse(pos, template, entity, children, options);
|
|
473
|
+
// ELSEIF/ELSEからIFを探すときは自身の親そのもの
|
|
474
|
+
const ifTagContext = tagContext.parent;
|
|
475
|
+
ifTagContext.childConditionMatched = true; // 親が持っている評価結果にtrueを設定
|
|
476
|
+
// ELSEIF/ELSEからENDを探すときは、自身の兄弟の最後の要素
|
|
477
|
+
const endTagContext = this.seekSiblingTagContext(tagContext, 'END', 'next');
|
|
340
478
|
pos.index = endTagContext.endIndex;
|
|
341
479
|
}
|
|
480
|
+
else {
|
|
481
|
+
// 条件不成立
|
|
482
|
+
const nextBranch = this.seekSiblingTagContext(tagContext, ['ELSEIF', 'ELSE'], 'next');
|
|
483
|
+
if (nextBranch) {
|
|
484
|
+
pos.index = nextBranch.startIndex;
|
|
485
|
+
result += this.parse(pos, template, entity, [nextBranch], options);
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
// 次の条件がない場合はENDの後ろまでポインタを飛ばす
|
|
489
|
+
const endTagContext = tagContext.sub[tagContext.sub.length - 1];
|
|
490
|
+
pos.index = endTagContext.endIndex;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
342
493
|
break;
|
|
343
494
|
}
|
|
344
495
|
case 'FOR': {
|
|
345
|
-
result += template.substring(pos.index, tagContext.startIndex);
|
|
346
|
-
pos.index = tagContext.endIndex;
|
|
347
496
|
const [bindName, collectionName] = tagContext.contents.split(':').map(a => a.trim());
|
|
348
497
|
const array = common.getProperty(entity, collectionName);
|
|
349
498
|
if (Array.isArray(array) && array.length) {
|
|
350
|
-
tagContext.
|
|
499
|
+
tagContext.conditionMatched = true;
|
|
351
500
|
for (const value of array) {
|
|
352
|
-
|
|
353
|
-
pos.index = tagContext.endIndex;
|
|
354
|
-
// FORの結果自体は他の要素に影響されないので直接resultに還元可能
|
|
501
|
+
const children = tagContext.sub.filter(a => a.type !== 'END');
|
|
355
502
|
result += this.parse(pos, template, {
|
|
356
503
|
...entity,
|
|
357
504
|
[bindName]: value
|
|
358
|
-
},
|
|
359
|
-
// FORループするときは各行で改行する
|
|
505
|
+
}, children, options);
|
|
360
506
|
result += '\n';
|
|
361
507
|
}
|
|
508
|
+
// FORのENDまでポインタを進める
|
|
509
|
+
const endTag = tagContext.sub[tagContext.sub.length - 1];
|
|
510
|
+
pos.index = endTag.endIndex;
|
|
362
511
|
}
|
|
363
512
|
else {
|
|
364
513
|
// FORブロックを丸ごとスキップ
|
|
@@ -368,20 +517,26 @@ class SQLBuilder {
|
|
|
368
517
|
break;
|
|
369
518
|
}
|
|
370
519
|
case 'END': {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
// FOR
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
520
|
+
const parent = tagContext.parent;
|
|
521
|
+
if (parent) {
|
|
522
|
+
switch (true) {
|
|
523
|
+
// BEGIN/IF/FORに対応するENDは、それぞれの処理で考慮すると複雑化するので
|
|
524
|
+
// すべてENDタグでどういう状態になったのは判定して動きを制御する
|
|
525
|
+
case parent.type === 'BEGIN'
|
|
526
|
+
&& parent.sub.some(a => a.type === 'IF' || a.type === 'FOR')
|
|
527
|
+
&& !parent.sub.some(a => a.type === 'IF' || a.type === 'FOR' && a.conditionMatched):
|
|
528
|
+
// BEGINに対応するENDの場合
|
|
529
|
+
// ・子要素にIFまたはFORが存在する
|
|
530
|
+
// ・子要素のIFまたはFORにstatus=10(成功)を示すものが1つもない
|
|
531
|
+
case parent.type === 'IF' && !parent.conditionMatched:
|
|
532
|
+
// IFに対応するENDの場合、IFのstatusがstatus=10(成功)になっていない
|
|
533
|
+
case parent.type === 'IF' && parent.sub.some(a => a.type === 'ELSEIF' || a.type === 'ELSE'):
|
|
534
|
+
case parent.type === 'FOR' && !parent.conditionMatched:
|
|
535
|
+
// FORに対応するENDの場合、FORのstatusがstatus=10(成功)になっていない
|
|
536
|
+
pos.index = tagContext.endIndex;
|
|
537
|
+
return result;
|
|
538
|
+
default:
|
|
539
|
+
}
|
|
385
540
|
}
|
|
386
541
|
result += template.substring(pos.index, tagContext.startIndex);
|
|
387
542
|
pos.index = tagContext.endIndex;
|
|
@@ -390,14 +545,13 @@ class SQLBuilder {
|
|
|
390
545
|
case 'BIND': {
|
|
391
546
|
result += template.substring(pos.index, tagContext.startIndex);
|
|
392
547
|
pos.index = tagContext.endIndex;
|
|
548
|
+
const propertyResult = common.getPropertyResult(entity, tagContext.contents);
|
|
393
549
|
// ★ UNKNOWN_TAG 判定
|
|
394
|
-
|
|
395
|
-
if (!hasProperty) {
|
|
550
|
+
if (!propertyResult.exists) {
|
|
396
551
|
// UNKNOWN_TAG → エラーを発行
|
|
397
|
-
throw new Error(`[SQLBuilder] The property
|
|
552
|
+
throw new Error(`[SQLBuilder] The property '${tagContext.contents}' is not found in the bind entity. (Template index: ${tagContext.startIndex})`);
|
|
398
553
|
}
|
|
399
|
-
const
|
|
400
|
-
const value = rawValue === undefined ? null : rawValue;
|
|
554
|
+
const value = propertyResult.value === undefined ? null : propertyResult.value;
|
|
401
555
|
switch (options?.bindType) {
|
|
402
556
|
case 'postgres': {
|
|
403
557
|
// PostgreSQL形式の場合、$Nでバインドパラメータを展開
|
|
@@ -492,10 +646,71 @@ class SQLBuilder {
|
|
|
492
646
|
default:
|
|
493
647
|
}
|
|
494
648
|
}
|
|
649
|
+
if (tagContexts.length && tagContexts[0].parent) {
|
|
650
|
+
// IFタグ解析中のELSEIF/ELSEなどが残っている場合は以降の文字列を連結せず、IFの解析結果のみ返す
|
|
651
|
+
return result;
|
|
652
|
+
}
|
|
495
653
|
// 最後に余った部分を追加する
|
|
496
654
|
result += template.substring(pos.index);
|
|
497
655
|
return result;
|
|
498
656
|
}
|
|
657
|
+
/**
|
|
658
|
+
* 指定したタグから親を遡り、指定したタグタイプのタグコンテキストを返す
|
|
659
|
+
* 見つからない場合はundefinedを返す
|
|
660
|
+
*
|
|
661
|
+
* @param {TagContext | ParentTagContext | null} tagContext
|
|
662
|
+
* @param {T} tagType
|
|
663
|
+
* @returns {(TagContext & { type: T }) | undefined}
|
|
664
|
+
*/
|
|
665
|
+
findParentTagContext(tagContext, tagType) {
|
|
666
|
+
let targetTagContext = tagContext;
|
|
667
|
+
while (targetTagContext != null) {
|
|
668
|
+
if (targetTagContext.type === tagType) {
|
|
669
|
+
return targetTagContext;
|
|
670
|
+
}
|
|
671
|
+
targetTagContext = targetTagContext.parent;
|
|
672
|
+
}
|
|
673
|
+
return undefined;
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* 指定したタグの兄弟をたどり、指定したタグタイプのタグコンテキストを返す
|
|
677
|
+
* 見つからない場合はundefinedを返す
|
|
678
|
+
* ユースケースとしては、ELSEIF/ELSEから同じIFに属するENDを探す
|
|
679
|
+
*
|
|
680
|
+
* @param {TagContext} tagContext
|
|
681
|
+
* @param {TagType | TagType[]} tagType
|
|
682
|
+
* @param {'previous' | 'next'} direction
|
|
683
|
+
* @returns {TagContext | undefined}
|
|
684
|
+
*/
|
|
685
|
+
seekSiblingTagContext(tagContext, tagType, direction = 'next') {
|
|
686
|
+
const parent = tagContext.parent;
|
|
687
|
+
if (parent) {
|
|
688
|
+
// 自身が所属するインデックスを取得
|
|
689
|
+
const startIndex = parent.sub.indexOf(tagContext);
|
|
690
|
+
if (startIndex < 0) {
|
|
691
|
+
return undefined;
|
|
692
|
+
}
|
|
693
|
+
const tagTypes = Array.isArray(tagType) ? tagType : [tagType];
|
|
694
|
+
switch (direction) {
|
|
695
|
+
case 'previous':
|
|
696
|
+
for (let i = startIndex - 1; 0 <= i; i--) {
|
|
697
|
+
if (tagTypes.some(a => a === parent.sub[i].type)) {
|
|
698
|
+
return parent.sub[i];
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
break;
|
|
702
|
+
case 'next':
|
|
703
|
+
for (let i = startIndex + 1; i < parent.sub.length; i++) {
|
|
704
|
+
if (tagTypes.some(a => a === parent.sub[i].type)) {
|
|
705
|
+
return parent.sub[i];
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
break;
|
|
709
|
+
default:
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
return undefined;
|
|
713
|
+
}
|
|
499
714
|
/**
|
|
500
715
|
* ダミーパラメータの終了インデックスを返す
|
|
501
716
|
*
|
|
@@ -616,7 +831,11 @@ class SQLBuilder {
|
|
|
616
831
|
* @returns {string}
|
|
617
832
|
*/
|
|
618
833
|
extractValue(property, entity, options) {
|
|
619
|
-
const
|
|
834
|
+
const propertyResult = common.getPropertyResult(entity, property);
|
|
835
|
+
if (!propertyResult.exists) {
|
|
836
|
+
throw new Error(`[SQLBuilder] The property '${property}' is not found in the entity: ${JSON.stringify(entity)}`);
|
|
837
|
+
}
|
|
838
|
+
const value = propertyResult.value;
|
|
620
839
|
if (value == null) {
|
|
621
840
|
return 'NULL';
|
|
622
841
|
}
|
package/lib/sql-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitalwalletcorp/sql-builder",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "This is a library for building SQL",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"dynamic",
|
|
22
22
|
"parameterized",
|
|
23
23
|
"placeholder",
|
|
24
|
-
"S2Dao"
|
|
24
|
+
"S2Dao",
|
|
25
|
+
"Doma"
|
|
25
26
|
],
|
|
26
27
|
"author": "satoshi kotaki",
|
|
27
28
|
"license": "MIT",
|
|
@@ -39,7 +39,7 @@ export class AbstractSyntaxTree {
|
|
|
39
39
|
/**
|
|
40
40
|
* 与えられた条件文字列を構文解析し、entityに対する条件として成立するか評価する
|
|
41
41
|
*
|
|
42
|
-
* @param {string} condition
|
|
42
|
+
* @param {string} condition 'params != null && params.length > 10' のような条件
|
|
43
43
|
* @param {Record<string, any>} entity
|
|
44
44
|
* @returns {boolean}
|
|
45
45
|
*/
|
|
@@ -50,9 +50,8 @@ export class AbstractSyntaxTree {
|
|
|
50
50
|
const result = this.evaluateRpn(rpnTokens, entity);
|
|
51
51
|
return result;
|
|
52
52
|
} catch (error: any) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
throw error;
|
|
53
|
+
const enhancedMessage = `[SQLBuilder] Failed to evaluate IF condition: '/*IF ${condition}*/'. ${error.message}`;
|
|
54
|
+
throw new Error(enhancedMessage);
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
|
|
@@ -239,7 +238,7 @@ export class AbstractSyntaxTree {
|
|
|
239
238
|
output.push(op);
|
|
240
239
|
}
|
|
241
240
|
if (!foundLeftParen) {
|
|
242
|
-
throw new Error(
|
|
241
|
+
throw new Error(`[SQLBuilder.AST] Mismatched parentheses: Found closing ')' without a matching '('. Check your IF condition syntax.`);;
|
|
243
242
|
}
|
|
244
243
|
}
|
|
245
244
|
break;
|
|
@@ -250,7 +249,7 @@ export class AbstractSyntaxTree {
|
|
|
250
249
|
while (operatorStack.length) {
|
|
251
250
|
const op = operatorStack.pop()!;
|
|
252
251
|
if (op.value === '(' || op.value === ')') {
|
|
253
|
-
throw new Error(
|
|
252
|
+
throw new Error(`[SQLBuilder.AST] Mismatched parentheses: An extra '${op.value}' was found or a matching '(' is missing.`);
|
|
254
253
|
}
|
|
255
254
|
output.push(op);
|
|
256
255
|
}
|