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.
@@ -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
- for (let i = 0; i < items.length;) {
19
- if (i + 4 >= items.length)
20
- ErrorOperation_1.ErrorOperation.throwHTTP(400, "Invalid value for FilterItem: " + item);
21
- let tableIndex = i;
22
- let columnIndex = i + 1;
23
- let notIndex = i + 2;
24
- let operatorIndex = i + 3;
25
- let valueIndex = i + 4;
26
- let table = items[tableIndex];
27
- let column = items[columnIndex];
28
- let not = items[notIndex] != "0";
29
- if (items[notIndex] != "0" && items[notIndex] != "1")
30
- ErrorOperation_1.ErrorOperation.throwHTTP(400, "Invalid value for FilterItem.not: " + items[notIndex]);
31
- let operator = FilterItemOperator_1.FilterItemOperator.getByName(items[operatorIndex]);
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 value = items[valueIndex + j].replace(/\\;/gm, ";");
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(new BaseMetaTable_1.BaseMetaTable(table, table), new BaseMetaColumn_1.BaseMetaColumn(column, column, "", false), not, operator, ...values));
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}. ${operator.count} is required.`);
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(";");
@@ -1 +1 @@
1
- {"version":3,"file":"FilterItem.js","sourceRoot":"","sources":["../src/FilterItem.ts"],"names":[],"mappings":"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"}
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.63",
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.6",
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
- for (let i = 0; i < items.length;)
26
+ let thereIsMore = (): boolean =>
26
27
  {
27
- if (i + 4 >= items.length)
28
- ErrorOperation.throwHTTP(400, "Invalid value for FilterItem: " + item);
29
- let tableIndex = i;
30
- let columnIndex = i + 1;
31
- let notIndex = i + 2;
32
- let operatorIndex = i + 3;
33
- let valueIndex = i + 4;
34
- let table = items[tableIndex];
35
- let column = items[columnIndex];
36
- let not = items[notIndex] != "0";
37
- if (items[notIndex] != "0" && items[notIndex] != "1")
38
- ErrorOperation.throwHTTP(400, "Invalid value for FilterItem.not: " + items[notIndex]);
39
- let operator = FilterItemOperator.getByName(items[operatorIndex]);
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 value = items[valueIndex + j].replace(/\\;/gm, ";");
55
+ let value_value = next("Value Number " + (j + 1));
56
+ let value = value_value.replace(/\\;/gm, ";");
44
57
  values.push(value);
45
58
  }
46
- ans.push(new FilterItem(new BaseMetaTable(table, table), new BaseMetaColumn(column, column, "", false), not, operator, ...values));
47
- i += 4 + operator.count;
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}. ${operator.count} is required.`);
73
+ throw new Error(`Invalid count of values: ${this.values.length}.${operator.count} is required.`);
61
74
  }
62
75
  getCommand()
63
76
  {