@digitalwalletcorp/sql-builder 1.2.1 → 1.2.3
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 +18 -16
- package/lib/abstract-syntax-tree.d.ts +2 -2
- package/lib/abstract-syntax-tree.js +10 -6
- package/lib/abstract-syntax-tree.js.map +1 -1
- package/lib/sql-builder.js +5 -9
- package/lib/sql-builder.js.map +1 -1
- package/package.json +2 -2
- package/src/abstract-syntax-tree.ts +17 -13
- package/src/sql-builder.ts +5 -8
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Inspired by Java's S2Dao, this TypeScript/JavaScript library dynamically generat
|
|
|
6
6
|
|
|
7
7
|
The core mechanism involves parsing special SQL comments (`/*IF ...*/`, `/*BEGIN...*/`, etc.) in a template and generating a final query based on a provided data object.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
#### ✨ Features
|
|
10
10
|
|
|
11
11
|
* Dynamic Query Generation: Build complex SQL queries dynamically at runtime.
|
|
12
12
|
* Conditional Logic (`/*IF...*/`): Automatically include or exclude SQL fragments based on JavaScript conditions evaluated against your data.
|
|
@@ -15,14 +15,14 @@ The core mechanism involves parsing special SQL comments (`/*IF ...*/`, `/*BEGIN
|
|
|
15
15
|
* Simple Parameter Binding: Easily bind values from your data object into the SQL query.
|
|
16
16
|
* Zero Dependencies: A single, lightweight class with no external library requirements.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
#### ✅ Compatibility
|
|
19
19
|
|
|
20
20
|
This library is written in pure, environment-agnostic JavaScript/TypeScript and has zero external dependencies, allowing it to run in various environments.
|
|
21
21
|
|
|
22
22
|
- ✅ **Node.js**: Designed and optimized for server-side use in any modern Node.js environment. This is the **primary and recommended** use case.
|
|
23
23
|
- ⚠️ **Browser-like Environments (Advanced)**: While technically capable of running in browsers (e.g., for use with in-browser databases like SQLite via WebAssembly), generating SQL on the client-side to be sent to a server **is a significant security risk and is strongly discouraged** in typical web applications.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
#### 📦 Instllation
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
npm install @digitalwalletcorp/sql-builder
|
|
@@ -30,7 +30,7 @@ npm install @digitalwalletcorp/sql-builder
|
|
|
30
30
|
yarn add @digitalwalletcorp/sql-builder
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
#### 📖 How It Works & Usage
|
|
34
34
|
|
|
35
35
|
You provide the `SQLBuilder` with a template string containing special, S2Dao-style comments and a data object (the "bind entity"). The builder parses the template and generates the final SQL.
|
|
36
36
|
|
|
@@ -75,7 +75,7 @@ console.log(sql1);
|
|
|
75
75
|
|
|
76
76
|
// SCENARIO B: No filter conditions are met, so the entire WHERE clause is removed.
|
|
77
77
|
const bindEntity2 = {
|
|
78
|
-
|
|
78
|
+
limit: 100
|
|
79
79
|
};
|
|
80
80
|
const sql2 = builder.generateSQL(template, bindEntity2);
|
|
81
81
|
console.log(sql2);
|
|
@@ -118,8 +118,9 @@ Use a `/*FOR...*/` block to iterate over an array and generate SQL for each item
|
|
|
118
118
|
|
|
119
119
|
```sql
|
|
120
120
|
SELECT * FROM activity
|
|
121
|
-
WHERE
|
|
122
|
-
|
|
121
|
+
WHERE
|
|
122
|
+
1 = 0
|
|
123
|
+
/*FOR name:projectNames*/OR project_name LIKE '%' || /*name*/'default' || '%'/*END*/
|
|
123
124
|
```
|
|
124
125
|
|
|
125
126
|
**Code:**
|
|
@@ -142,13 +143,14 @@ console.log(sql);
|
|
|
142
143
|
|
|
143
144
|
```sql
|
|
144
145
|
SELECT * FROM activity
|
|
145
|
-
WHERE
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
WHERE
|
|
147
|
+
1 = 0
|
|
148
|
+
OR project_name LIKE '%' || 'api' || '%'
|
|
149
|
+
OR project_name LIKE '%' || 'batch' || '%'
|
|
150
|
+
OR project_name LIKE '%' || 'frontend' || '%'
|
|
149
151
|
```
|
|
150
152
|
|
|
151
|
-
|
|
153
|
+
#### 📚 API Reference
|
|
152
154
|
|
|
153
155
|
##### `new SQLBuilder()`
|
|
154
156
|
|
|
@@ -235,7 +237,7 @@ Parameters: [ 123, 'project_a', 'project_b' ]
|
|
|
235
237
|
| END | `/*END*/` | Marks the end of an `IF`, `BEGIN`, or `FOR` block. |
|
|
236
238
|
|
|
237
239
|
---
|
|
238
|
-
|
|
240
|
+
#### 💡 Supported Property Paths
|
|
239
241
|
|
|
240
242
|
For `/*variable*/` (Bind Variable) tags and the `collection` part of `/*FOR item:collection*/` tags, you can specify a path to access properties within the `entity` object.
|
|
241
243
|
|
|
@@ -252,7 +254,7 @@ For `/*variable*/` (Bind Variable) tags and the `collection` part of `/*FOR item
|
|
|
252
254
|
|
|
253
255
|
---
|
|
254
256
|
|
|
255
|
-
|
|
257
|
+
#### 💡 Supported `IF` Condition Syntax
|
|
256
258
|
|
|
257
259
|
The `condition` inside an `/*IF ...*/` tag is evaluated as a JavaScript expression against the `entity` object. To ensure security and maintain simplicity, only a **limited subset of JavaScript syntax** is supported.
|
|
258
260
|
|
|
@@ -277,11 +279,11 @@ The `condition` inside an `/*IF ...*/` tag is evaluated as a JavaScript expressi
|
|
|
277
279
|
|
|
278
280
|
---
|
|
279
281
|
|
|
280
|
-
|
|
282
|
+
#### 📜 License
|
|
281
283
|
|
|
282
284
|
This project is licensed under the MIT License. See the [LICENSE](https://opensource.org/licenses/MIT) file for details.
|
|
283
285
|
|
|
284
|
-
|
|
286
|
+
#### 🎓 Advanced Usage & Examples
|
|
285
287
|
|
|
286
288
|
This README covers the basic usage of the library. For more advanced use cases and a comprehensive look at how to verify its behavior, the test suite serves as practical and up-to-date documentation.
|
|
287
289
|
|
|
@@ -49,7 +49,7 @@ export declare class AbstractSyntaxTree {
|
|
|
49
49
|
* @param {Token[]} tokens
|
|
50
50
|
* @returns {Token[]}
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
shuntingYard(tokens: Token[]): Token[];
|
|
53
53
|
/**
|
|
54
54
|
* 逆ポーランド記法(Reverse Polish Notation)のトークンを評価する
|
|
55
55
|
*
|
|
@@ -57,6 +57,6 @@ export declare class AbstractSyntaxTree {
|
|
|
57
57
|
* @param {Record<string, any>} entity
|
|
58
58
|
* @returns {boolean}
|
|
59
59
|
*/
|
|
60
|
-
|
|
60
|
+
evaluateRpn(rpnTokens: Token[], entity: Record<string, any>): boolean;
|
|
61
61
|
}
|
|
62
62
|
export {};
|
|
@@ -63,13 +63,16 @@ class AbstractSyntaxTree {
|
|
|
63
63
|
*/
|
|
64
64
|
evaluateCondition(condition, entity) {
|
|
65
65
|
try {
|
|
66
|
+
// 一般的な条件チェックのルーチンをまとめて実施する
|
|
67
|
+
// 生成されたトークンに手を加えたい場合、各関数はpublicになっているので個別に呼び出し可能
|
|
66
68
|
const tokens = this.tokenize(condition); // トークン化
|
|
67
69
|
const rpnTokens = this.shuntingYard(tokens); // RPN変換
|
|
68
70
|
const result = this.evaluateRpn(rpnTokens, entity); // 評価
|
|
69
71
|
return result;
|
|
70
72
|
}
|
|
71
73
|
catch (error) {
|
|
72
|
-
|
|
74
|
+
error.condition = condition;
|
|
75
|
+
error.entity = entity;
|
|
73
76
|
throw error;
|
|
74
77
|
}
|
|
75
78
|
}
|
|
@@ -168,7 +171,7 @@ class AbstractSyntaxTree {
|
|
|
168
171
|
}
|
|
169
172
|
else {
|
|
170
173
|
// クォートが閉じられていない
|
|
171
|
-
throw new Error(
|
|
174
|
+
throw new Error(`Unterminated string literal: '${condition}', index: ${j}`);
|
|
172
175
|
}
|
|
173
176
|
default:
|
|
174
177
|
}
|
|
@@ -208,6 +211,7 @@ class AbstractSyntaxTree {
|
|
|
208
211
|
*/
|
|
209
212
|
shuntingYard(tokens) {
|
|
210
213
|
const output = [];
|
|
214
|
+
// operatorStackにはIDENTIFIERとPARENTHESISしか格納されないので、必ず{ value: string }を持つ
|
|
211
215
|
const operatorStack = [];
|
|
212
216
|
for (const token of tokens) {
|
|
213
217
|
switch (token.type) {
|
|
@@ -244,9 +248,9 @@ class AbstractSyntaxTree {
|
|
|
244
248
|
}
|
|
245
249
|
else if (token.value === ')') {
|
|
246
250
|
let foundLeftParen = false;
|
|
247
|
-
while (operatorStack.length
|
|
251
|
+
while (operatorStack.length) {
|
|
248
252
|
const op = operatorStack.pop();
|
|
249
|
-
if (
|
|
253
|
+
if (op.value === '(') {
|
|
250
254
|
foundLeftParen = true;
|
|
251
255
|
break;
|
|
252
256
|
}
|
|
@@ -262,7 +266,7 @@ class AbstractSyntaxTree {
|
|
|
262
266
|
}
|
|
263
267
|
while (operatorStack.length) {
|
|
264
268
|
const op = operatorStack.pop();
|
|
265
|
-
if (
|
|
269
|
+
if (op.value === '(' || op.value === ')') {
|
|
266
270
|
throw new Error('Mismatched parentheses');
|
|
267
271
|
}
|
|
268
272
|
output.push(op);
|
|
@@ -338,7 +342,7 @@ class AbstractSyntaxTree {
|
|
|
338
342
|
}
|
|
339
343
|
}
|
|
340
344
|
if (stack.length !== 1) {
|
|
341
|
-
throw new Error(
|
|
345
|
+
throw new Error(`Invalid expression: ${JSON.stringify(rpnTokens)}`);
|
|
342
346
|
}
|
|
343
347
|
return !!stack[0];
|
|
344
348
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-syntax-tree.js","sourceRoot":"","sources":["../src/abstract-syntax-tree.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AAYnC,8BAA8B;AAC9B,MAAM,UAAU,GAKZ;IACF,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC9C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC9C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC9C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC9C,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC/C,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC/C,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC7C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC9C,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC7C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAC9C,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,aAAa;CAC7D,CAAC;AAEF;;;GAGG;AACH,MAAa,kBAAkB;IAE7B;;;;;;OAMG;IACI,iBAAiB,CAAC,SAAiB,EAAE,MAA2B;QACrE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract-syntax-tree.js","sourceRoot":"","sources":["../src/abstract-syntax-tree.ts"],"names":[],"mappings":"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"}
|
package/lib/sql-builder.js
CHANGED
|
@@ -468,6 +468,8 @@ class SQLBuilder {
|
|
|
468
468
|
case c === ' ' || c === '\t':
|
|
469
469
|
// 空白文字
|
|
470
470
|
return i;
|
|
471
|
+
case c === ',':
|
|
472
|
+
return i;
|
|
471
473
|
default:
|
|
472
474
|
}
|
|
473
475
|
}
|
|
@@ -482,15 +484,9 @@ class SQLBuilder {
|
|
|
482
484
|
* @returns {boolean}
|
|
483
485
|
*/
|
|
484
486
|
evaluateCondition(condition, entity) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
return result;
|
|
489
|
-
}
|
|
490
|
-
catch (error) {
|
|
491
|
-
console.warn('Error evaluating condition:', condition, entity, error);
|
|
492
|
-
return false;
|
|
493
|
-
}
|
|
487
|
+
const ast = new abstract_syntax_tree_1.AbstractSyntaxTree();
|
|
488
|
+
const result = ast.evaluateCondition(condition, entity);
|
|
489
|
+
return result;
|
|
494
490
|
}
|
|
495
491
|
/**
|
|
496
492
|
* entityからparamで指定した値を文字列で取得する
|
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": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "This is a library for building SQL",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"version:minor": "npm version minor",
|
|
11
11
|
"version:major": "npm version major",
|
|
12
12
|
"prepack": "rm -rf lib && npm run build",
|
|
13
|
-
"pack": "npm pack --pack-destination=dest",
|
|
13
|
+
"pack": "rm -rf dest && mkdir -p dest && npm pack --pack-destination=dest",
|
|
14
14
|
"publish:npm": "bash ../bin/publish.sh",
|
|
15
15
|
"test:unit": "NODE_OPTIONS=--max-old-space-size=2048 npx jest --runInBand --logHeapUsage --detectOpenHandles --forceExit --errorOnDeprecated --coverage --silent --unhandled-rejections=strict"
|
|
16
16
|
},
|
|
@@ -45,12 +45,15 @@ export class AbstractSyntaxTree {
|
|
|
45
45
|
*/
|
|
46
46
|
public evaluateCondition(condition: string, entity: Record<string, any>): boolean {
|
|
47
47
|
try {
|
|
48
|
+
// 一般的な条件チェックのルーチンをまとめて実施する
|
|
49
|
+
// 生成されたトークンに手を加えたい場合、各関数はpublicになっているので個別に呼び出し可能
|
|
48
50
|
const tokens = this.tokenize(condition); // トークン化
|
|
49
51
|
const rpnTokens = this.shuntingYard(tokens); // RPN変換
|
|
50
52
|
const result = this.evaluateRpn(rpnTokens, entity); // 評価
|
|
51
53
|
return result;
|
|
52
|
-
} catch (error) {
|
|
53
|
-
|
|
54
|
+
} catch (error: any) {
|
|
55
|
+
error.condition = condition;
|
|
56
|
+
error.entity = entity;
|
|
54
57
|
throw error;
|
|
55
58
|
}
|
|
56
59
|
}
|
|
@@ -138,11 +141,11 @@ export class AbstractSyntaxTree {
|
|
|
138
141
|
while (j < condition.length && condition[j] !== quote) {
|
|
139
142
|
// エスケープ文字の処理 (\' や \\) は必要に応じて追加
|
|
140
143
|
if (condition[j] === '\\' && j + 1 < condition.length) {
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
strValue += condition[j+1];
|
|
145
|
+
j += 2;
|
|
143
146
|
} else {
|
|
144
|
-
|
|
145
|
-
|
|
147
|
+
strValue += condition[j];
|
|
148
|
+
j++;
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
151
|
if (condition[j] === quote) {
|
|
@@ -151,7 +154,7 @@ export class AbstractSyntaxTree {
|
|
|
151
154
|
continue;
|
|
152
155
|
} else {
|
|
153
156
|
// クォートが閉じられていない
|
|
154
|
-
throw new Error(
|
|
157
|
+
throw new Error(`Unterminated string literal: '${condition}', index: ${j}`);
|
|
155
158
|
}
|
|
156
159
|
default:
|
|
157
160
|
}
|
|
@@ -192,8 +195,9 @@ export class AbstractSyntaxTree {
|
|
|
192
195
|
* @param {Token[]} tokens
|
|
193
196
|
* @returns {Token[]}
|
|
194
197
|
*/
|
|
195
|
-
|
|
198
|
+
public shuntingYard(tokens: Token[]): Token[] {
|
|
196
199
|
const output: Token[] = [];
|
|
200
|
+
// operatorStackにはIDENTIFIERとPARENTHESISしか格納されないので、必ず{ value: string }を持つ
|
|
197
201
|
const operatorStack: (Token & { value: string })[] = [];
|
|
198
202
|
|
|
199
203
|
for (const token of tokens) {
|
|
@@ -231,9 +235,9 @@ export class AbstractSyntaxTree {
|
|
|
231
235
|
operatorStack.push(token);
|
|
232
236
|
} else if (token.value === ')') {
|
|
233
237
|
let foundLeftParen = false;
|
|
234
|
-
while (operatorStack.length
|
|
238
|
+
while (operatorStack.length) {
|
|
235
239
|
const op = operatorStack.pop()!;
|
|
236
|
-
if (
|
|
240
|
+
if (op.value === '(') {
|
|
237
241
|
foundLeftParen = true;
|
|
238
242
|
break;
|
|
239
243
|
}
|
|
@@ -250,7 +254,7 @@ export class AbstractSyntaxTree {
|
|
|
250
254
|
|
|
251
255
|
while (operatorStack.length) {
|
|
252
256
|
const op = operatorStack.pop()!;
|
|
253
|
-
if (
|
|
257
|
+
if (op.value === '(' || op.value === ')') {
|
|
254
258
|
throw new Error('Mismatched parentheses');
|
|
255
259
|
}
|
|
256
260
|
output.push(op);
|
|
@@ -266,7 +270,7 @@ export class AbstractSyntaxTree {
|
|
|
266
270
|
* @param {Record<string, any>} entity
|
|
267
271
|
* @returns {boolean}
|
|
268
272
|
*/
|
|
269
|
-
|
|
273
|
+
public evaluateRpn(rpnTokens: Token[], entity: Record<string, any>): boolean {
|
|
270
274
|
const stack: any[] = [];
|
|
271
275
|
|
|
272
276
|
for (const token of rpnTokens) {
|
|
@@ -312,7 +316,7 @@ export class AbstractSyntaxTree {
|
|
|
312
316
|
}
|
|
313
317
|
|
|
314
318
|
if (stack.length !== 1) {
|
|
315
|
-
throw new Error(
|
|
319
|
+
throw new Error(`Invalid expression: ${JSON.stringify(rpnTokens)}`);
|
|
316
320
|
}
|
|
317
321
|
return !!stack[0];
|
|
318
322
|
}
|
package/src/sql-builder.ts
CHANGED
|
@@ -488,6 +488,8 @@ export class SQLBuilder {
|
|
|
488
488
|
case c === ' ' || c === '\t':
|
|
489
489
|
// 空白文字
|
|
490
490
|
return i;
|
|
491
|
+
case c === ',':
|
|
492
|
+
return i;
|
|
491
493
|
default:
|
|
492
494
|
}
|
|
493
495
|
}
|
|
@@ -503,14 +505,9 @@ export class SQLBuilder {
|
|
|
503
505
|
* @returns {boolean}
|
|
504
506
|
*/
|
|
505
507
|
private evaluateCondition(condition: string, entity: Record<string, any>): boolean {
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
return result;
|
|
510
|
-
} catch (error) {
|
|
511
|
-
console.warn('Error evaluating condition:', condition, entity, error);
|
|
512
|
-
return false;
|
|
513
|
-
}
|
|
508
|
+
const ast = new AbstractSyntaxTree();
|
|
509
|
+
const result = ast.evaluateCondition(condition, entity);
|
|
510
|
+
return result;
|
|
514
511
|
}
|
|
515
512
|
|
|
516
513
|
/**
|