namirasoft-core 1.3.63 → 1.3.64
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/dist/FilterItem.js +24 -18
- package/dist/FilterItem.js.map +1 -1
- package/package.json +2 -2
- package/src/FilterItem.ts +31 -18
package/dist/FilterItem.js
CHANGED
|
@@ -14,28 +14,34 @@ class FilterItem {
|
|
|
14
14
|
static parse(item) {
|
|
15
15
|
let ans = [];
|
|
16
16
|
if (item) {
|
|
17
|
+
let index = 0;
|
|
17
18
|
let items = item.split(/(?<!\\);/);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
let
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
let
|
|
19
|
+
let thereIsMore = () => {
|
|
20
|
+
return index < items.length;
|
|
21
|
+
};
|
|
22
|
+
let next = (name) => {
|
|
23
|
+
if (thereIsMore())
|
|
24
|
+
return items[index++];
|
|
25
|
+
throw ErrorOperation_1.ErrorOperation.getHTTP(400, `Next value is required for '${name}'. Must be separated by ;`);
|
|
26
|
+
};
|
|
27
|
+
while (thereIsMore()) {
|
|
28
|
+
let value_table = next("Table");
|
|
29
|
+
let table = new BaseMetaTable_1.BaseMetaTable(value_table, value_table);
|
|
30
|
+
let value_column = next("Column");
|
|
31
|
+
let column = new BaseMetaColumn_1.BaseMetaColumn(value_column, value_column, "", false);
|
|
32
|
+
let value_not = next("Not");
|
|
33
|
+
let not = value_not != "0";
|
|
34
|
+
if (value_not != "0" && value_not != "1")
|
|
35
|
+
ErrorOperation_1.ErrorOperation.throwHTTP(400, `Invalid value '${value_not}' for FilterItem.not, Only 0 and 1 are allowed.`);
|
|
36
|
+
let value_operator = next("Operator");
|
|
37
|
+
let operator = FilterItemOperator_1.FilterItemOperator.getByName(value_operator);
|
|
32
38
|
let values = [];
|
|
33
39
|
for (let j = 0; j < operator.count; j++) {
|
|
34
|
-
let
|
|
40
|
+
let value_value = next("Value Number " + (j + 1));
|
|
41
|
+
let value = value_value.replace(/\\;/gm, ";");
|
|
35
42
|
values.push(value);
|
|
36
43
|
}
|
|
37
|
-
ans.push(new FilterItem(
|
|
38
|
-
i += 4 + operator.count;
|
|
44
|
+
ans.push(new FilterItem(table, column, not, operator, ...values));
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
47
|
return ans;
|
|
@@ -47,7 +53,7 @@ class FilterItem {
|
|
|
47
53
|
this.operator = operator;
|
|
48
54
|
this.values = values;
|
|
49
55
|
if (this.values.length != operator.count)
|
|
50
|
-
throw new Error(`Invalid count of values: ${this.values.length}
|
|
56
|
+
throw new Error(`Invalid count of values: ${this.values.length}.${operator.count} is required.`);
|
|
51
57
|
}
|
|
52
58
|
getCommand() {
|
|
53
59
|
return [this.table.name, this.column.name, this.not ? "1" : "0", this.operator.name, ...this.values.map(x => x.replace(/;/gm, "\\;"))].join(";");
|
package/dist/FilterItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterItem.js","sourceRoot":"","sources":["../src/FilterItem.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,mDAAgD;AAChD,qDAAkD;AAClD,6DAA0D;AAE1D,MAAa,UAAU;IAOZ,MAAM,CAAC,SAAS,CAAC,OAA4B;QAEhD,IAAI,OAAO;YACP,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC;IACd,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,IAAmB;QAEnC,IAAI,GAAG,GAAiB,EAAE,CAAC;QAC3B,IAAI,IAAI,EACR;YACI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnC,
|
|
1
|
+
{"version":3,"file":"FilterItem.js","sourceRoot":"","sources":["../src/FilterItem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"framework": "npm",
|
|
9
9
|
"application": "package",
|
|
10
10
|
"private": false,
|
|
11
|
-
"version": "1.3.
|
|
11
|
+
"version": "1.3.64",
|
|
12
12
|
"author": "Amir Abolhasani",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"main": "./dist/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"build": ""
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@types/node": "^20.14.
|
|
20
|
+
"@types/node": "^20.14.7",
|
|
21
21
|
"axios": "^1.7.2",
|
|
22
22
|
"moment": "^2.30.1",
|
|
23
23
|
"phone": "^3.1.45"
|
package/src/FilterItem.ts
CHANGED
|
@@ -21,30 +21,43 @@ export class FilterItem
|
|
|
21
21
|
let ans: FilterItem[] = [];
|
|
22
22
|
if (item)
|
|
23
23
|
{
|
|
24
|
+
let index = 0;
|
|
24
25
|
let items = item.split(/(?<!\\);/);
|
|
25
|
-
|
|
26
|
+
let thereIsMore = (): boolean =>
|
|
26
27
|
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
return index < items.length;
|
|
29
|
+
};
|
|
30
|
+
let next = (name: string): string =>
|
|
31
|
+
{
|
|
32
|
+
if (thereIsMore())
|
|
33
|
+
return items[index++];
|
|
34
|
+
throw ErrorOperation.getHTTP(400, `Next value is required for '${name}'. Must be separated by ;`);
|
|
35
|
+
};
|
|
36
|
+
while (thereIsMore())
|
|
37
|
+
{
|
|
38
|
+
let value_table = next("Table");
|
|
39
|
+
let table = new BaseMetaTable(value_table, value_table);
|
|
40
|
+
|
|
41
|
+
let value_column = next("Column");
|
|
42
|
+
let column = new BaseMetaColumn(value_column, value_column, "", false)
|
|
43
|
+
|
|
44
|
+
let value_not = next("Not");
|
|
45
|
+
let not = value_not != "0"
|
|
46
|
+
if (value_not != "0" && value_not != "1")
|
|
47
|
+
ErrorOperation.throwHTTP(400, `Invalid value '${value_not}' for FilterItem.not, Only 0 and 1 are allowed.`);
|
|
48
|
+
|
|
49
|
+
let value_operator = next("Operator");
|
|
50
|
+
let operator = FilterItemOperator.getByName(value_operator);
|
|
51
|
+
|
|
40
52
|
let values: string[] = [];
|
|
41
53
|
for (let j = 0; j < operator.count; j++)
|
|
42
54
|
{
|
|
43
|
-
let
|
|
55
|
+
let value_value = next("Value Number " + (j + 1));
|
|
56
|
+
let value = value_value.replace(/\\;/gm, ";");
|
|
44
57
|
values.push(value);
|
|
45
58
|
}
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
|
|
60
|
+
ans.push(new FilterItem(table, column, not, operator, ...values));
|
|
48
61
|
}
|
|
49
62
|
}
|
|
50
63
|
return ans;
|
|
@@ -57,7 +70,7 @@ export class FilterItem
|
|
|
57
70
|
this.operator = operator;
|
|
58
71
|
this.values = values;
|
|
59
72
|
if (this.values.length != operator.count)
|
|
60
|
-
throw new Error(`Invalid count of values: ${this.values.length}
|
|
73
|
+
throw new Error(`Invalid count of values: ${this.values.length}.${operator.count} is required.`);
|
|
61
74
|
}
|
|
62
75
|
getCommand()
|
|
63
76
|
{
|