@scx-js/scx-data 0.0.1
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/field_filter/FieldFilter.js +40 -0
- package/field_filter/FieldFilterBuilder.js +25 -0
- package/field_filter/FieldFilterImpl.js +81 -0
- package/field_filter/FilterMode.js +5 -0
- package/field_filter/serializer/FieldFilterSerializer.js +28 -0
- package/index.js +6 -0
- package/package.json +13 -0
- package/query/GroupBy.js +36 -0
- package/query/Logic.js +144 -0
- package/query/LogicType.js +7 -0
- package/query/OrderBy.js +42 -0
- package/query/OrderByType.js +8 -0
- package/query/Query.js +60 -0
- package/query/QueryBuilder.js +176 -0
- package/query/QueryImpl.js +143 -0
- package/query/QueryLike.js +89 -0
- package/query/QueryOption.js +74 -0
- package/query/Where.js +59 -0
- package/query/WhereClause.js +43 -0
- package/query/WhereType.js +109 -0
- package/query/serializer/GroupBySerializer.js +50 -0
- package/query/serializer/OrderBySerializer.js +54 -0
- package/query/serializer/QuerySerializer.js +35 -0
- package/query/serializer/WhereSerializer.js +79 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
import {Where} from "../Where.js";
|
2
|
+
import {isArray} from "../../../scx-common/index.js";
|
3
|
+
import {Query} from "../Query.js";
|
4
|
+
import {WhereClause} from "../WhereClause.js";
|
5
|
+
import {Logic} from "../Logic.js";
|
6
|
+
|
7
|
+
class WhereSerializer {
|
8
|
+
|
9
|
+
serialize(obj) {
|
10
|
+
if (obj instanceof String) {
|
11
|
+
return this.serializeString(obj);
|
12
|
+
}
|
13
|
+
if (obj instanceof WhereClause) {
|
14
|
+
return this.serializeWhereClause(obj);
|
15
|
+
}
|
16
|
+
if (obj instanceof Logic) {
|
17
|
+
return this.serializeLogic(obj);
|
18
|
+
}
|
19
|
+
if (obj instanceof Where) {
|
20
|
+
return this.serializeWhere(obj);
|
21
|
+
}
|
22
|
+
if (obj instanceof Query) {
|
23
|
+
return this.serializeQuery(obj.getWhere());
|
24
|
+
}
|
25
|
+
if (isArray(obj)) {
|
26
|
+
return this.serializeAll(obj);
|
27
|
+
}
|
28
|
+
return obj;
|
29
|
+
}
|
30
|
+
|
31
|
+
serializeString(str) {
|
32
|
+
return str;
|
33
|
+
}
|
34
|
+
|
35
|
+
serializeWhereClause(w) {
|
36
|
+
return {
|
37
|
+
"@type": "WhereClause",
|
38
|
+
"whereClause": w.whereClause(),
|
39
|
+
"params": w.params(),
|
40
|
+
};
|
41
|
+
}
|
42
|
+
|
43
|
+
serializeLogic(l) {
|
44
|
+
return {
|
45
|
+
"@type": "Logic",
|
46
|
+
"logicType": l.logicType(),
|
47
|
+
"clauses": this.serializeAll(l.clauses()),
|
48
|
+
};
|
49
|
+
}
|
50
|
+
|
51
|
+
serializeWhere(w) {
|
52
|
+
return {
|
53
|
+
"@type": "Where",
|
54
|
+
"name": w.name(),
|
55
|
+
"whereType": w.whereType(),
|
56
|
+
"value1": w.value1(),
|
57
|
+
"value2": w.value2(),
|
58
|
+
"info": w.info(),
|
59
|
+
};
|
60
|
+
}
|
61
|
+
|
62
|
+
serializeQuery(w) {
|
63
|
+
return this.serializeAll(w.getWhere());
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
serializeAll(objs) {
|
68
|
+
const arr = [];
|
69
|
+
for (let i = 0; i < objs.length; i = i + 1) {
|
70
|
+
arr[i] = this.serialize(objs[i]);
|
71
|
+
}
|
72
|
+
return arr;
|
73
|
+
}
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
export {
|
78
|
+
WhereSerializer,
|
79
|
+
};
|