ys.knife.query.js 0.0.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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/agg.d.ts +27 -0
- package/dist/agg.d.ts.map +1 -0
- package/dist/agg.js +59 -0
- package/dist/agg.js.map +1 -0
- package/dist/api.d.ts +16 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +86 -0
- package/dist/api.js.map +1 -0
- package/dist/constant.d.ts +8 -0
- package/dist/constant.d.ts.map +1 -0
- package/dist/constant.js +17 -0
- package/dist/constant.js.map +1 -0
- package/dist/default.d.ts +6 -0
- package/dist/default.d.ts.map +1 -0
- package/dist/default.js +7 -0
- package/dist/default.js.map +1 -0
- package/dist/expression.d.ts +8 -0
- package/dist/expression.d.ts.map +1 -0
- package/dist/expression.js +20 -0
- package/dist/expression.js.map +1 -0
- package/dist/filter.d.ts +46 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +131 -0
- package/dist/filter.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/limit.d.ts +3 -0
- package/dist/limit.d.ts.map +1 -0
- package/dist/limit.js +7 -0
- package/dist/limit.js.map +1 -0
- package/dist/orderby.d.ts +24 -0
- package/dist/orderby.d.ts.map +1 -0
- package/dist/orderby.js +57 -0
- package/dist/orderby.js.map +1 -0
- package/dist/pagedlist.d.ts +24 -0
- package/dist/pagedlist.d.ts.map +1 -0
- package/dist/pagedlist.js +3 -0
- package/dist/pagedlist.js.map +1 -0
- package/dist/query.d.ts +33 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +125 -0
- package/dist/query.js.map +1 -0
- package/dist/select.d.ts +19 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +53 -0
- package/dist/select.js.map +1 -0
- package/dist/type.d.ts +15 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js +33 -0
- package/dist/type.js.map +1 -0
- package/package.json +51 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 yscorecore
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# ys.knife.query.js
|
package/dist/agg.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DeepKeys } from "./type";
|
|
2
|
+
export declare enum AggType {
|
|
3
|
+
Sum = "sum()",
|
|
4
|
+
Min = "min()",
|
|
5
|
+
Max = "max()",
|
|
6
|
+
Avg = "avg()",
|
|
7
|
+
Count = "count()",
|
|
8
|
+
DistinctCount = "distinctcount()"
|
|
9
|
+
}
|
|
10
|
+
export declare class AggItem {
|
|
11
|
+
protected type: AggType;
|
|
12
|
+
protected path: string;
|
|
13
|
+
protected name: string | null;
|
|
14
|
+
constructor(path: string, type: AggType, name: string | null);
|
|
15
|
+
toString(): string;
|
|
16
|
+
}
|
|
17
|
+
export declare class AggInfo {
|
|
18
|
+
protected items: AggItem[];
|
|
19
|
+
constructor(...aggItems: AggItem[]);
|
|
20
|
+
append(path: string, type?: AggType, name?: string | null): AggInfo;
|
|
21
|
+
toString(): string;
|
|
22
|
+
}
|
|
23
|
+
export declare class AggInfoOf<T> extends AggInfo {
|
|
24
|
+
append(path: DeepKeys<T>, type?: AggType, name?: string | null): AggInfoOf<T>;
|
|
25
|
+
}
|
|
26
|
+
export declare function agg<T>(path: DeepKeys<T>, type?: AggType, name?: string | null): AggInfoOf<T>;
|
|
27
|
+
//# sourceMappingURL=agg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agg.d.ts","sourceRoot":"","sources":["../src/agg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,oBAAY,OAAO;IACf,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,UAAU;IACb,KAAK,YAAY;IACjB,aAAa,oBAAoB;CACpC;AACD,qBAAa,OAAO;IAChB,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;gBAClB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5D,QAAQ;CAOX;AAED,qBAAa,OAAO;IAChB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAM;gBACpB,GAAG,QAAQ,EAAE,OAAO,EAAE;IAGlC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO;IAItF,QAAQ;CAOX;AACD,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,OAAO;IACrC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAAC,CAAC,CAAC;CAInG;AACD,wBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAE/G"}
|
package/dist/agg.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggInfoOf = exports.AggInfo = exports.AggItem = exports.AggType = void 0;
|
|
4
|
+
exports.agg = agg;
|
|
5
|
+
var AggType;
|
|
6
|
+
(function (AggType) {
|
|
7
|
+
AggType["Sum"] = "sum()";
|
|
8
|
+
AggType["Min"] = "min()";
|
|
9
|
+
AggType["Max"] = "max()";
|
|
10
|
+
AggType["Avg"] = "avg()";
|
|
11
|
+
AggType["Count"] = "count()";
|
|
12
|
+
AggType["DistinctCount"] = "distinctcount()";
|
|
13
|
+
})(AggType || (exports.AggType = AggType = {}));
|
|
14
|
+
class AggItem {
|
|
15
|
+
constructor(path, type, name) {
|
|
16
|
+
this.path = path;
|
|
17
|
+
this.type = type;
|
|
18
|
+
this.name = name;
|
|
19
|
+
}
|
|
20
|
+
toString() {
|
|
21
|
+
if (this.name) {
|
|
22
|
+
return `${this.path}.${this.type}.as(${this.name})`;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return `${this.path}.${this.type}`;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.AggItem = AggItem;
|
|
30
|
+
class AggInfo {
|
|
31
|
+
constructor(...aggItems) {
|
|
32
|
+
this.items = [];
|
|
33
|
+
this.items.push(...(aggItems.filter(item => item !== null)));
|
|
34
|
+
}
|
|
35
|
+
append(path, type = AggType.Sum, name = null) {
|
|
36
|
+
this.items.push(new AggItem(path, type, name));
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
toString() {
|
|
40
|
+
if (this.items.length === 0)
|
|
41
|
+
return '';
|
|
42
|
+
return this.items
|
|
43
|
+
.filter(item => item !== null)
|
|
44
|
+
.map(item => item.toString())
|
|
45
|
+
.join(',');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.AggInfo = AggInfo;
|
|
49
|
+
class AggInfoOf extends AggInfo {
|
|
50
|
+
append(path, type = AggType.Sum, name = null) {
|
|
51
|
+
super.append(path, type, name);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.AggInfoOf = AggInfoOf;
|
|
56
|
+
function agg(path, type = AggType.Sum, name = null) {
|
|
57
|
+
return new AggInfoOf().append(path, type, name);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=agg.js.map
|
package/dist/agg.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agg.js","sourceRoot":"","sources":["../src/agg.ts"],"names":[],"mappings":";;;AAmDA,kBAEC;AAnDD,IAAY,OAOX;AAPD,WAAY,OAAO;IACf,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,4BAAiB,CAAA;IACjB,4CAAiC,CAAA;AACrC,CAAC,EAPW,OAAO,uBAAP,OAAO,QAOlB;AACD,MAAa,OAAO;IAIhB,YAAY,IAAY,EAAE,IAAa,EAAE,IAAmB;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;IACL,CAAC;CACJ;AAhBD,0BAgBC;AAED,MAAa,OAAO;IAEhB,YAAY,GAAG,QAAmB;QADxB,UAAK,GAAc,EAAE,CAAC;QAE5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,CAAC,IAAY,EAAE,OAAgB,OAAO,CAAC,GAAG,EAAE,OAAsB,IAAI;QACxE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAhBD,0BAgBC;AACD,MAAa,SAAa,SAAQ,OAAO;IACrC,MAAM,CAAC,IAAiB,EAAE,OAAgB,OAAO,CAAC,GAAG,EAAE,OAAsB,IAAI;QAC7E,KAAK,CAAC,MAAM,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AALD,8BAKC;AACD,SAAgB,GAAG,CAAI,IAAiB,EAAE,OAAgB,OAAO,CAAC,GAAG,EAAE,OAAsB,IAAI;IAC7F,OAAO,IAAI,SAAS,EAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACtD,CAAC"}
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PagedList, AggResult, BaseReq } from "./pagedlist";
|
|
2
|
+
import { ListReq, PageReq } from "./pagedlist";
|
|
3
|
+
import { FilterInfo } from "./filter";
|
|
4
|
+
import { AggInfo } from "./agg";
|
|
5
|
+
type PageFunc<T> = (req: PageReq) => Promise<PagedList<T>>;
|
|
6
|
+
export interface IdEntity {
|
|
7
|
+
id: string | number;
|
|
8
|
+
}
|
|
9
|
+
export declare function findBy<T>(func: PageFunc<T>, key: keyof T, val: string | number | boolean | bigint): Promise<T | null>;
|
|
10
|
+
export declare function findById<T extends IdEntity>(func: PageFunc<T>, id: number | string): Promise<T | null>;
|
|
11
|
+
export declare function count<T>(func: PageFunc<T>, filter: FilterInfo): Promise<number>;
|
|
12
|
+
export declare function asList<T>(func: PageFunc<T>, listReq: ListReq): Promise<T[]>;
|
|
13
|
+
export declare function all<T>(func: PageFunc<T>, baseReq: BaseReq, maxPageSize?: number): Promise<T[]>;
|
|
14
|
+
export declare function aggValue<T>(func: PageFunc<T>, agg: AggInfo, filter: FilterInfo | null): Promise<AggResult>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAU,UAAU,EAAY,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAG3D,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAW3H;AACD,wBAAsB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAE5G;AACD,wBAAsB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrF;AACD,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAGjF;AACD,wBAAsB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,MAAwB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBrH;AACD,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAQhH"}
|
package/dist/api.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.findBy = findBy;
|
|
16
|
+
exports.findById = findById;
|
|
17
|
+
exports.count = count;
|
|
18
|
+
exports.asList = asList;
|
|
19
|
+
exports.all = all;
|
|
20
|
+
exports.aggValue = aggValue;
|
|
21
|
+
const filter_1 = require("./filter");
|
|
22
|
+
const constant_1 = require("./constant");
|
|
23
|
+
const default_1 = __importDefault(require("./default"));
|
|
24
|
+
function findBy(func, key, val) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const res = yield func({
|
|
27
|
+
limit: 1,
|
|
28
|
+
offset: 0,
|
|
29
|
+
filter: (0, filter_1.filter)(key, filter_1.Operator.Equals, (0, constant_1.con)(val)).toString(),
|
|
30
|
+
});
|
|
31
|
+
if (res.items.length > 0) {
|
|
32
|
+
return res.items[0];
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function findById(func, id) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
return findBy(func, "id", id);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function count(func, filter) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const res = yield func({
|
|
47
|
+
limit: 0,
|
|
48
|
+
offset: 0,
|
|
49
|
+
filter: filter === null || filter === void 0 ? void 0 : filter.toString(),
|
|
50
|
+
});
|
|
51
|
+
return res.totalCount;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function asList(func, listReq) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const res = yield func(listReq);
|
|
57
|
+
return res.items;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function all(func_1, baseReq_1) {
|
|
61
|
+
return __awaiter(this, arguments, void 0, function* (func, baseReq, maxPageSize = default_1.default.maxLimit) {
|
|
62
|
+
let resArray = [];
|
|
63
|
+
let offset = 0;
|
|
64
|
+
while (true) {
|
|
65
|
+
const res = yield func(Object.assign(Object.assign({}, baseReq), { limit: maxPageSize, offset: offset }));
|
|
66
|
+
resArray = resArray.concat(res.items);
|
|
67
|
+
offset += maxPageSize;
|
|
68
|
+
if (res.items.length == 0 || !res.hasNext) {
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return resArray;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function aggValue(func, agg, filter) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const res = yield func({
|
|
78
|
+
limit: 0,
|
|
79
|
+
offset: 0,
|
|
80
|
+
filter: filter === null || filter === void 0 ? void 0 : filter.toString(),
|
|
81
|
+
agg: agg.toString()
|
|
82
|
+
});
|
|
83
|
+
return res.agg;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,wBAWC;AACD,4BAEC;AACD,sBAOC;AACD,wBAGC;AACD,kBAiBC;AACD,4BAQC;AAjED,qCAAwD;AACxD,yCAAiC;AAEjC,wDAA+B;AAS/B,SAAsB,MAAM,CAAI,IAAiB,EAAE,GAAY,EAAE,GAAuC;;QACpG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,IAAA,eAAM,EAAI,GAAG,EAAE,iBAAQ,CAAC,MAAM,EAAE,IAAA,cAAG,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC/D,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CAAA;AACD,SAAsB,QAAQ,CAAqB,IAAiB,EAAE,EAAmB;;QACrF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;CAAA;AACD,SAAsB,KAAK,CAAI,IAAiB,EAAE,MAAkB;;QAChE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,UAAU,CAAC;IAC1B,CAAC;CAAA;AACD,SAAsB,MAAM,CAAI,IAAiB,EAAE,OAAgB;;QAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC,KAAK,CAAC;IACrB,CAAC;CAAA;AACD,SAAsB,GAAG;yDAAI,IAAiB,EAAE,OAAgB,EAAE,cAAsB,iBAAM,CAAC,QAAQ;QACnG,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,MAAM,IAAI,iCACf,OAAO,KACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,IAChB,CAAC;YACH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,WAAW,CAAC;YACtB,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CAAA;AACD,SAAsB,QAAQ,CAAI,IAAiB,EAAE,GAAY,EAAE,MAAyB;;QACxF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE;YAC1B,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,GAAgB,CAAC;IAChC,CAAC;CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type ValueType = string | number | boolean | bigint | null | (string | null)[] | (number | null)[];
|
|
2
|
+
export declare class Constant {
|
|
3
|
+
constructor(con: ValueType);
|
|
4
|
+
private con;
|
|
5
|
+
toString(): string;
|
|
6
|
+
}
|
|
7
|
+
export declare function con(exp: ValueType): Constant;
|
|
8
|
+
//# sourceMappingURL=constant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1G,qBAAa,QAAQ;gBACL,GAAG,EAAE,SAAS;IAG1B,OAAO,CAAC,GAAG,CAAY;IACvB,QAAQ,IAAI,MAAM;CAGrB;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAE5C"}
|
package/dist/constant.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Constant = void 0;
|
|
4
|
+
exports.con = con;
|
|
5
|
+
class Constant {
|
|
6
|
+
constructor(con) {
|
|
7
|
+
this.con = con;
|
|
8
|
+
}
|
|
9
|
+
toString() {
|
|
10
|
+
return JSON.stringify(this.con);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Constant = Constant;
|
|
14
|
+
function con(exp) {
|
|
15
|
+
return new Constant(exp);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":";;;AAWA,kBAEC;AAZD,MAAa,QAAQ;IACjB,YAAY,GAAc;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACJ;AARD,4BAQC;AAED,SAAgB,GAAG,CAAC,GAAc;IAC9B,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":";;;;AAAA,wBAGC"}
|
package/dist/default.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,IAAI;CACjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;gBACP,GAAG,EAAE,MAAM;IAGvB,OAAO,CAAC,GAAG,CAAS;IACb,MAAM,IAAI,MAAM;IAGvB,QAAQ,IAAI,MAAM;CAGrB;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE3C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Expression = void 0;
|
|
4
|
+
exports.exp = exp;
|
|
5
|
+
class Expression {
|
|
6
|
+
constructor(exp) {
|
|
7
|
+
this.exp = exp;
|
|
8
|
+
}
|
|
9
|
+
getExp() {
|
|
10
|
+
return this.exp;
|
|
11
|
+
}
|
|
12
|
+
toString() {
|
|
13
|
+
return this.exp;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.Expression = Expression;
|
|
17
|
+
function exp(exp) {
|
|
18
|
+
return new Expression(exp);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":";;;AAaA,kBAEC;AAfD,MAAa,UAAU;IACnB,YAAY,GAAW;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACD,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAXD,gCAWC;AAED,SAAgB,GAAG,CAAC,GAAW;IAC3B,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/filter.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DeepKeysOrConstantOrExpression, ConstantOrExpression } from "./type";
|
|
2
|
+
export declare enum Operator {
|
|
3
|
+
Equals = "==",
|
|
4
|
+
NotEquals = "!=",
|
|
5
|
+
GreaterThan = ">",
|
|
6
|
+
LessThanOrEqual = "<=",
|
|
7
|
+
LessThan = "<",
|
|
8
|
+
GreaterThanOrEqual = ">=",
|
|
9
|
+
Between = "between",
|
|
10
|
+
NotBetween = "not between",
|
|
11
|
+
In = "in",
|
|
12
|
+
NotIn = "not in",
|
|
13
|
+
StartsWith = "starts",
|
|
14
|
+
NotStartsWith = "not starts",
|
|
15
|
+
EndsWith = "ends",
|
|
16
|
+
NotEndsWith = "not ends",
|
|
17
|
+
Contains = "contains",
|
|
18
|
+
NotContains = "not contains"
|
|
19
|
+
}
|
|
20
|
+
export declare enum CombinType {
|
|
21
|
+
AndItems = 1,
|
|
22
|
+
OrItems = 2,
|
|
23
|
+
SingleItem = 0
|
|
24
|
+
}
|
|
25
|
+
export declare class FilterInfo {
|
|
26
|
+
static readonly Operator_And = "and";
|
|
27
|
+
static readonly Operator_Or = "or";
|
|
28
|
+
protected left: ConstantOrExpression | null | undefined;
|
|
29
|
+
protected right: ConstantOrExpression | null | undefined;
|
|
30
|
+
protected op: Operator | null | undefined;
|
|
31
|
+
protected combinType: CombinType;
|
|
32
|
+
protected items: FilterInfo[];
|
|
33
|
+
constructor(left: ConstantOrExpression | null, op: Operator | null, right: ConstantOrExpression | null, combinType?: CombinType, items?: FilterInfo[]);
|
|
34
|
+
toString(): string;
|
|
35
|
+
andAlso(other: FilterInfo): FilterInfo;
|
|
36
|
+
orElse(other: FilterInfo): FilterInfo;
|
|
37
|
+
static createOr(...items: FilterInfo[]): FilterInfo;
|
|
38
|
+
static createAnd(...items: FilterInfo[]): FilterInfo;
|
|
39
|
+
}
|
|
40
|
+
export declare class FilterInfoOf<T> extends FilterInfo {
|
|
41
|
+
constructor(left: DeepKeysOrConstantOrExpression<T> | null, op: Operator | null, right: DeepKeysOrConstantOrExpression<T> | null, combinType?: CombinType, items?: FilterInfo[]);
|
|
42
|
+
and(left: DeepKeysOrConstantOrExpression<T>, op: Operator, right: DeepKeysOrConstantOrExpression<T>): FilterInfoOf<T>;
|
|
43
|
+
or(left: DeepKeysOrConstantOrExpression<T>, op: Operator, right: DeepKeysOrConstantOrExpression<T>): FilterInfoOf<T>;
|
|
44
|
+
}
|
|
45
|
+
export declare function filter<T>(left: DeepKeysOrConstantOrExpression<T>, op: Operator, right: DeepKeysOrConstantOrExpression<T>): FilterInfoOf<T>;
|
|
46
|
+
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAc,MAAM,QAAQ,CAAC;AAC1F,oBAAY,QAAQ;IAChB,MAAM,OAAO;IACb,SAAS,OAAO;IAChB,WAAW,MAAM;IACjB,eAAe,OAAO;IACtB,QAAQ,MAAM;IACd,kBAAkB,OAAO;IACzB,OAAO,YAAY;IACnB,UAAU,gBAAgB;IAC1B,EAAE,OAAO;IACT,KAAK,WAAW;IAChB,UAAU,WAAW;IACrB,aAAa,eAAe;IAC5B,QAAQ,SAAS;IACjB,WAAW,aAAa;IACxB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;CAC/B;AACD,oBAAY,UAAU;IAClB,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,UAAU,IAAI;CACjB;AAED,qBAAa,UAAU;IACnB,MAAM,CAAC,QAAQ,CAAC,YAAY,SAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,QAAQ;IAEnC,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;IACxD,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAM;gBAEvB,IAAI,EAAE,oBAAoB,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAAE,UAAU,GAAE,UAAkC,EAAE,KAAK,GAAE,UAAU,EAAO;IAShL,QAAQ,IAAI,MAAM;IAgBX,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAetC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;WAe9B,QAAQ,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU;WAG5C,SAAS,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU;CAI9D;AAGD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;gBAC/B,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,GAAE,UAAkC,EAAE,KAAK,GAAE,UAAU,EAAO;IAInM,GAAG,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAerH,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;CAe9H;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE1I"}
|
package/dist/filter.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilterInfoOf = exports.FilterInfo = exports.CombinType = exports.Operator = void 0;
|
|
4
|
+
exports.filter = filter;
|
|
5
|
+
const type_1 = require("./type");
|
|
6
|
+
var Operator;
|
|
7
|
+
(function (Operator) {
|
|
8
|
+
Operator["Equals"] = "==";
|
|
9
|
+
Operator["NotEquals"] = "!=";
|
|
10
|
+
Operator["GreaterThan"] = ">";
|
|
11
|
+
Operator["LessThanOrEqual"] = "<=";
|
|
12
|
+
Operator["LessThan"] = "<";
|
|
13
|
+
Operator["GreaterThanOrEqual"] = ">=";
|
|
14
|
+
Operator["Between"] = "between";
|
|
15
|
+
Operator["NotBetween"] = "not between";
|
|
16
|
+
Operator["In"] = "in";
|
|
17
|
+
Operator["NotIn"] = "not in";
|
|
18
|
+
Operator["StartsWith"] = "starts";
|
|
19
|
+
Operator["NotStartsWith"] = "not starts";
|
|
20
|
+
Operator["EndsWith"] = "ends";
|
|
21
|
+
Operator["NotEndsWith"] = "not ends";
|
|
22
|
+
Operator["Contains"] = "contains";
|
|
23
|
+
Operator["NotContains"] = "not contains";
|
|
24
|
+
})(Operator || (exports.Operator = Operator = {}));
|
|
25
|
+
var CombinType;
|
|
26
|
+
(function (CombinType) {
|
|
27
|
+
CombinType[CombinType["AndItems"] = 1] = "AndItems";
|
|
28
|
+
CombinType[CombinType["OrItems"] = 2] = "OrItems";
|
|
29
|
+
CombinType[CombinType["SingleItem"] = 0] = "SingleItem";
|
|
30
|
+
})(CombinType || (exports.CombinType = CombinType = {}));
|
|
31
|
+
class FilterInfo {
|
|
32
|
+
constructor(left, op, right, combinType = CombinType.SingleItem, items = []) {
|
|
33
|
+
this.items = [];
|
|
34
|
+
this.left = left;
|
|
35
|
+
this.right = right;
|
|
36
|
+
this.op = op;
|
|
37
|
+
this.combinType = combinType;
|
|
38
|
+
this.items = items;
|
|
39
|
+
}
|
|
40
|
+
toString() {
|
|
41
|
+
switch (this.combinType) {
|
|
42
|
+
case CombinType.AndItems:
|
|
43
|
+
return this.items.filter(item => item !== null)
|
|
44
|
+
.map(item => `(${item.toString()})`)
|
|
45
|
+
.join(` ${FilterInfo.Operator_And} `);
|
|
46
|
+
case CombinType.OrItems:
|
|
47
|
+
return this.items.filter(item => item !== null)
|
|
48
|
+
.map(item => `(${item.toString()})`)
|
|
49
|
+
.join(` ${FilterInfo.Operator_Or} `);
|
|
50
|
+
default:
|
|
51
|
+
return `${this.left} ${this.op} ${this.right}`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
andAlso(other) {
|
|
55
|
+
if (this.combinType == CombinType.AndItems) {
|
|
56
|
+
if (other.combinType == CombinType.AndItems) {
|
|
57
|
+
this.items = this.items.concat(other.items);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.items.push(other);
|
|
61
|
+
}
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return FilterInfo.createAnd(this, other);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
orElse(other) {
|
|
69
|
+
if (this.combinType == CombinType.OrItems) {
|
|
70
|
+
if (other.combinType == CombinType.OrItems) {
|
|
71
|
+
this.items = this.items.concat(other.items);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.items.push(other);
|
|
75
|
+
}
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return FilterInfo.createOr(this, other);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
static createOr(...items) {
|
|
83
|
+
return new FilterInfo(null, null, null, CombinType.OrItems, items);
|
|
84
|
+
}
|
|
85
|
+
static createAnd(...items) {
|
|
86
|
+
return new FilterInfo(null, null, null, CombinType.AndItems, items);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.FilterInfo = FilterInfo;
|
|
90
|
+
FilterInfo.Operator_And = "and";
|
|
91
|
+
FilterInfo.Operator_Or = "or";
|
|
92
|
+
class FilterInfoOf extends FilterInfo {
|
|
93
|
+
constructor(left, op, right, combinType = CombinType.SingleItem, items = []) {
|
|
94
|
+
super((0, type_1.toValueExp)(left), op, (0, type_1.toValueExp)(right), combinType, items);
|
|
95
|
+
}
|
|
96
|
+
and(left, op, right) {
|
|
97
|
+
const other = new FilterInfoOf(left, op, right);
|
|
98
|
+
if (this.combinType == CombinType.AndItems) {
|
|
99
|
+
if (other.combinType == CombinType.AndItems) {
|
|
100
|
+
this.items = this.items.concat(other.items);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.items.push(other);
|
|
104
|
+
}
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return new FilterInfoOf(null, null, null, CombinType.AndItems, [this, other]);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
or(left, op, right) {
|
|
112
|
+
const other = new FilterInfoOf(left, op, right);
|
|
113
|
+
if (this.combinType == CombinType.OrItems) {
|
|
114
|
+
if (other.combinType == CombinType.OrItems) {
|
|
115
|
+
this.items = this.items.concat(other.items);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.items.push(other);
|
|
119
|
+
}
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
return new FilterInfoOf(null, null, null, CombinType.OrItems, [this, other]);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.FilterInfoOf = FilterInfoOf;
|
|
128
|
+
function filter(left, op, right) {
|
|
129
|
+
return new FilterInfoOf(left, op, right);
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./agg";
|
|
2
|
+
export * from "./api";
|
|
3
|
+
export * from "./constant";
|
|
4
|
+
export * from "./default";
|
|
5
|
+
export * from "./expression";
|
|
6
|
+
export * from "./filter";
|
|
7
|
+
export * from "./limit";
|
|
8
|
+
export * from "./orderby";
|
|
9
|
+
export * from "./pagedlist";
|
|
10
|
+
export * from "./query";
|
|
11
|
+
export * from "./select";
|
|
12
|
+
export * from "./type";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./agg"), exports);
|
|
18
|
+
__exportStar(require("./api"), exports);
|
|
19
|
+
__exportStar(require("./constant"), exports);
|
|
20
|
+
__exportStar(require("./default"), exports);
|
|
21
|
+
__exportStar(require("./expression"), exports);
|
|
22
|
+
__exportStar(require("./filter"), exports);
|
|
23
|
+
__exportStar(require("./limit"), exports);
|
|
24
|
+
__exportStar(require("./orderby"), exports);
|
|
25
|
+
__exportStar(require("./pagedlist"), exports);
|
|
26
|
+
__exportStar(require("./query"), exports);
|
|
27
|
+
__exportStar(require("./select"), exports);
|
|
28
|
+
__exportStar(require("./type"), exports);
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,wCAAsB;AACtB,6CAA2B;AAC3B,4CAA0B;AAC1B,+CAA6B;AAC7B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB;AACzB,yCAAuB"}
|
package/dist/limit.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../src/limit.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;CAErB"}
|
package/dist/limit.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit.js","sourceRoot":"","sources":["../src/limit.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;CAErB;AAFD,8BAEC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DeepKeysOrExpression } from "./type";
|
|
2
|
+
import { Expression } from "./expression";
|
|
3
|
+
export declare enum OrderByType {
|
|
4
|
+
Asc = "asc()",
|
|
5
|
+
Desc = "desc()"
|
|
6
|
+
}
|
|
7
|
+
export declare class OrderByItem {
|
|
8
|
+
protected path: Expression;
|
|
9
|
+
protected type: OrderByType;
|
|
10
|
+
constructor(path: Expression, type: OrderByType);
|
|
11
|
+
toString(): string;
|
|
12
|
+
}
|
|
13
|
+
export declare class OrderByInfo {
|
|
14
|
+
items: OrderByItem[];
|
|
15
|
+
constructor(...orderbyItems: OrderByItem[]);
|
|
16
|
+
toString(): string;
|
|
17
|
+
add(path: Expression, type?: OrderByType): OrderByInfo;
|
|
18
|
+
}
|
|
19
|
+
export declare class OrderByInfoOf<T> extends OrderByInfo {
|
|
20
|
+
then(path: DeepKeysOrExpression<T>): OrderByInfoOf<T>;
|
|
21
|
+
thenDesc(path: DeepKeysOrExpression<T>): OrderByInfoOf<T>;
|
|
22
|
+
}
|
|
23
|
+
export declare function orderby<T>(path: DeepKeysOrExpression<T>, type?: OrderByType): OrderByInfoOf<T>;
|
|
24
|
+
//# sourceMappingURL=orderby.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderby.d.ts","sourceRoot":"","sources":["../src/orderby.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAS,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oBAAY,WAAW;IACnB,GAAG,UAAU;IACb,IAAI,WAAW;CAClB;AACD,qBAAa,WAAW;IACpB,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEhB,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW;IAIxC,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,WAAW;IACb,KAAK,EAAE,WAAW,EAAE,CAAM;gBAErB,GAAG,YAAY,EAAE,WAAW,EAAE;IAInC,QAAQ,IAAI,MAAM;IAOlB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAE,WAA6B,GAAG,WAAW;CAIjF;AAED,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,WAAW;IACtC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAIrD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAInE;AACD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,WAA6B,GAAG,aAAa,CAAC,CAAC,CAAC,CAI/G"}
|
package/dist/orderby.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderByInfoOf = exports.OrderByInfo = exports.OrderByItem = exports.OrderByType = void 0;
|
|
4
|
+
exports.orderby = orderby;
|
|
5
|
+
const type_1 = require("./type");
|
|
6
|
+
var OrderByType;
|
|
7
|
+
(function (OrderByType) {
|
|
8
|
+
OrderByType["Asc"] = "asc()";
|
|
9
|
+
OrderByType["Desc"] = "desc()";
|
|
10
|
+
})(OrderByType || (exports.OrderByType = OrderByType = {}));
|
|
11
|
+
class OrderByItem {
|
|
12
|
+
constructor(path, type) {
|
|
13
|
+
this.path = path;
|
|
14
|
+
this.type = type;
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
return `${this.path}.${this.type.toString()}`;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.OrderByItem = OrderByItem;
|
|
21
|
+
class OrderByInfo {
|
|
22
|
+
constructor(...orderbyItems) {
|
|
23
|
+
this.items = [];
|
|
24
|
+
this.items.push(...(orderbyItems.filter(item => item !== null)));
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
if (this.items.length === 0)
|
|
28
|
+
return '';
|
|
29
|
+
return this.items
|
|
30
|
+
.filter(item => item !== null)
|
|
31
|
+
.map(item => item.toString())
|
|
32
|
+
.join(',');
|
|
33
|
+
}
|
|
34
|
+
add(path, type = OrderByType.Asc) {
|
|
35
|
+
this.items.push(new OrderByItem(path, type));
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.OrderByInfo = OrderByInfo;
|
|
40
|
+
// generic
|
|
41
|
+
class OrderByInfoOf extends OrderByInfo {
|
|
42
|
+
then(path) {
|
|
43
|
+
this.add((0, type_1.toExp)(path), OrderByType.Asc);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
thenDesc(path) {
|
|
47
|
+
this.add((0, type_1.toExp)(path), OrderByType.Desc);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.OrderByInfoOf = OrderByInfoOf;
|
|
52
|
+
function orderby(path, type = OrderByType.Asc) {
|
|
53
|
+
const info = new OrderByInfoOf();
|
|
54
|
+
info.add((0, type_1.toExp)(path), type);
|
|
55
|
+
return info;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=orderby.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderby.js","sourceRoot":"","sources":["../src/orderby.ts"],"names":[],"mappings":";;;AAkDA,0BAIC;AAtDD,iCAAqD;AAGrD,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AACD,MAAa,WAAW;IAIpB,YAAY,IAAgB,EAAE,IAAiB;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACM,QAAQ;QACX,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IAClD,CAAC;CACJ;AAXD,kCAWC;AAED,MAAa,WAAW;IAGpB,YAAY,GAAG,YAA2B;QAFnC,UAAK,GAAkB,EAAE,CAAC;QAG7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEM,QAAQ;QACX,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACM,GAAG,CAAC,IAAgB,EAAE,OAAoB,WAAW,CAAC,GAAG;QAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAlBD,kCAkBC;AACD,UAAU;AACV,MAAa,aAAiB,SAAQ,WAAW;IACtC,IAAI,CAAC,IAA6B;QACrC,IAAI,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,QAAQ,CAAC,IAA6B;QACzC,IAAI,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AATD,sCASC;AACD,SAAgB,OAAO,CAAI,IAA6B,EAAE,OAAoB,WAAW,CAAC,GAAG;IACzF,MAAM,IAAI,GAAG,IAAI,aAAa,EAAK,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface AggResult {
|
|
2
|
+
[key: string]: number | string | null;
|
|
3
|
+
}
|
|
4
|
+
export interface PagedList<T> {
|
|
5
|
+
limit: number;
|
|
6
|
+
offset: number;
|
|
7
|
+
totalCount: number;
|
|
8
|
+
hasNext: boolean;
|
|
9
|
+
agg?: AggResult;
|
|
10
|
+
items: T[];
|
|
11
|
+
}
|
|
12
|
+
export interface BaseReq {
|
|
13
|
+
filter?: string | null;
|
|
14
|
+
orderBy?: string | null;
|
|
15
|
+
select?: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface ListReq extends BaseReq {
|
|
18
|
+
limit: number;
|
|
19
|
+
offset: number;
|
|
20
|
+
}
|
|
21
|
+
export interface PageReq extends ListReq {
|
|
22
|
+
agg?: string | null;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=pagedlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagedlist.d.ts","sourceRoot":"","sources":["../src/pagedlist.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACzC;AACD,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,CAAC;CACd;AACD,MAAM,WAAW,OAAO;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AACD,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACpC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagedlist.js","sourceRoot":"","sources":["../src/pagedlist.ts"],"names":[],"mappings":""}
|
package/dist/query.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AggInfo, AggType } from "./agg";
|
|
2
|
+
import { FilterInfo, Operator } from "./filter";
|
|
3
|
+
import { OrderByInfo, OrderByType } from "./orderby";
|
|
4
|
+
import { FieldKeys, SelectInfo } from "./select";
|
|
5
|
+
import { DeepKeys, DeepKeysOrConstantOrExpression, DeepKeysOrExpression } from "./type";
|
|
6
|
+
import { PageReq } from "./pagedlist";
|
|
7
|
+
export declare class QueryBuilder {
|
|
8
|
+
protected _filterInfo?: FilterInfo;
|
|
9
|
+
protected _orderByInfo?: OrderByInfo;
|
|
10
|
+
protected _selectInfo?: SelectInfo;
|
|
11
|
+
protected _aggInfo?: AggInfo;
|
|
12
|
+
protected _limit: number;
|
|
13
|
+
protected _offset: number;
|
|
14
|
+
build(): PageReq;
|
|
15
|
+
withAgg(agg: AggInfo): QueryBuilder;
|
|
16
|
+
withFilter(filter: FilterInfo): QueryBuilder;
|
|
17
|
+
withOrderBy(orderby: OrderByInfo): QueryBuilder;
|
|
18
|
+
withSelect(select: SelectInfo): QueryBuilder;
|
|
19
|
+
offset(offset: number): QueryBuilder;
|
|
20
|
+
limit(limit: number): QueryBuilder;
|
|
21
|
+
}
|
|
22
|
+
export declare class QueryBuilderOf<T> extends QueryBuilder {
|
|
23
|
+
where(left: DeepKeysOrConstantOrExpression<T>, op: Operator | undefined, right: DeepKeysOrConstantOrExpression<T>): QueryBuilderOf<T>;
|
|
24
|
+
orderby(path: DeepKeysOrExpression<T>, type?: OrderByType): QueryBuilderOf<T>;
|
|
25
|
+
orderbyDesc(path: DeepKeysOrExpression<T>): QueryBuilderOf<T>;
|
|
26
|
+
thenby(path: DeepKeysOrExpression<T>, type?: OrderByType): QueryBuilderOf<T>;
|
|
27
|
+
thenbyDesc(path: DeepKeysOrExpression<T>): QueryBuilderOf<T>;
|
|
28
|
+
agg(path: DeepKeys<T>, type?: AggType, name?: string | null): QueryBuilderOf<T>;
|
|
29
|
+
include(...names: FieldKeys<T>[]): QueryBuilderOf<T>;
|
|
30
|
+
exclude(...names: FieldKeys<T>[]): QueryBuilderOf<T>;
|
|
31
|
+
}
|
|
32
|
+
export declare function query<T>(): QueryBuilderOf<T>;
|
|
33
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,OAAO,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,WAAW,EAAe,WAAW,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,8BAA8B,EAAE,oBAAoB,EAAqB,MAAM,QAAQ,CAAC;AAE3G,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,qBAAa,YAAY;IAErB,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACnC,SAAS,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;IACrC,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAuB;IAC/C,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAEvB,KAAK,IAAI,OAAO;IAmBhB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY;IAInC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAI5C,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY;IAI/C,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAI5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAIpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;CAI5C;AAED,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAExC,KAAK,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,YAAkB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAS3I,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,WAA6B,GAAG,cAAc,CAAC,CAAC,CAAC;IAI9F,WAAW,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAG7D,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,WAA6B,GAAG,cAAc,CAAC,CAAC,CAAC;IAQ7F,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAG5D,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,cAAc,CAAC,CAAC,CAAC;IAQlG,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;IAQpD,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;CAQ9D;AACD,wBAAgB,KAAK,CAAC,CAAC,uBAEtB"}
|
package/dist/query.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.QueryBuilderOf = exports.QueryBuilder = void 0;
|
|
7
|
+
exports.query = query;
|
|
8
|
+
const agg_1 = require("./agg");
|
|
9
|
+
const filter_1 = require("./filter");
|
|
10
|
+
const orderby_1 = require("./orderby");
|
|
11
|
+
const select_1 = require("./select");
|
|
12
|
+
const type_1 = require("./type");
|
|
13
|
+
const default_1 = __importDefault(require("./default"));
|
|
14
|
+
class QueryBuilder {
|
|
15
|
+
constructor() {
|
|
16
|
+
this._limit = default_1.default.defaultLimit;
|
|
17
|
+
this._offset = 0;
|
|
18
|
+
}
|
|
19
|
+
build() {
|
|
20
|
+
const res = {
|
|
21
|
+
limit: this._limit,
|
|
22
|
+
offset: this._offset
|
|
23
|
+
};
|
|
24
|
+
if (this._filterInfo) {
|
|
25
|
+
res.filter = this._filterInfo.toString();
|
|
26
|
+
}
|
|
27
|
+
if (this._orderByInfo) {
|
|
28
|
+
res.orderBy = this._orderByInfo.toString();
|
|
29
|
+
}
|
|
30
|
+
if (this._selectInfo) {
|
|
31
|
+
res.select = this._selectInfo.toString();
|
|
32
|
+
}
|
|
33
|
+
if (this._aggInfo) {
|
|
34
|
+
res.agg = this._aggInfo.toString();
|
|
35
|
+
}
|
|
36
|
+
return res;
|
|
37
|
+
}
|
|
38
|
+
withAgg(agg) {
|
|
39
|
+
this._aggInfo = agg;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
withFilter(filter) {
|
|
43
|
+
this._filterInfo = filter;
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
withOrderBy(orderby) {
|
|
47
|
+
this._orderByInfo = orderby;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
withSelect(select) {
|
|
51
|
+
this._selectInfo = select;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
offset(offset) {
|
|
55
|
+
this._offset = offset;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
limit(limit) {
|
|
59
|
+
this._limit = limit;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.QueryBuilder = QueryBuilder;
|
|
64
|
+
class QueryBuilderOf extends QueryBuilder {
|
|
65
|
+
where(left, op = filter_1.Operator.Equals, right) {
|
|
66
|
+
if (this._filterInfo) {
|
|
67
|
+
this._filterInfo = this._filterInfo.andAlso(new filter_1.FilterInfo((0, type_1.toValueExp)(left), op, (0, type_1.toValueExp)(right)));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this._filterInfo = new filter_1.FilterInfo((0, type_1.toValueExp)(left), op, (0, type_1.toValueExp)(right));
|
|
71
|
+
}
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
orderby(path, type = orderby_1.OrderByType.Asc) {
|
|
75
|
+
this._orderByInfo = new orderby_1.OrderByInfo(new orderby_1.OrderByItem((0, type_1.toExp)(path), type));
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
orderbyDesc(path) {
|
|
79
|
+
return this.orderby(path, orderby_1.OrderByType.Desc);
|
|
80
|
+
}
|
|
81
|
+
thenby(path, type = orderby_1.OrderByType.Asc) {
|
|
82
|
+
if (this._orderByInfo) {
|
|
83
|
+
this._orderByInfo.add((0, type_1.toExp)(path), type);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this._orderByInfo = new orderby_1.OrderByInfo(new orderby_1.OrderByItem((0, type_1.toExp)(path), type));
|
|
87
|
+
}
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
thenbyDesc(path) {
|
|
91
|
+
return this.thenby(path, orderby_1.OrderByType.Desc);
|
|
92
|
+
}
|
|
93
|
+
agg(path, type = agg_1.AggType.Sum, name = null) {
|
|
94
|
+
if (this._aggInfo) {
|
|
95
|
+
this._aggInfo.append(path, type, name);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this._aggInfo = new agg_1.AggInfo(new agg_1.AggItem(path, type, name));
|
|
99
|
+
}
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
include(...names) {
|
|
103
|
+
if (this._selectInfo) {
|
|
104
|
+
this._selectInfo.appendItems(...names.map(t => new select_1.SelectItem(t.toString())));
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this._selectInfo = new select_1.SelectInfo(...names.map(t => new select_1.SelectItem(t.toString())));
|
|
108
|
+
}
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
exclude(...names) {
|
|
112
|
+
if (this._selectInfo) {
|
|
113
|
+
this._selectInfo.appendItems(...names.map(t => new select_1.SelectItem(t.toString(), true)));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this._selectInfo = new select_1.SelectInfo(...names.map(t => new select_1.SelectItem(t.toString(), true)));
|
|
117
|
+
}
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.QueryBuilderOf = QueryBuilderOf;
|
|
122
|
+
function query() {
|
|
123
|
+
return new QueryBuilderOf();
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/select.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class SelectItem {
|
|
2
|
+
private exclude;
|
|
3
|
+
private name;
|
|
4
|
+
constructor(name: string, exclude?: boolean);
|
|
5
|
+
toString(): string;
|
|
6
|
+
}
|
|
7
|
+
export declare class SelectInfo {
|
|
8
|
+
protected items: SelectItem[];
|
|
9
|
+
constructor(...selectItems: SelectItem[]);
|
|
10
|
+
toString(): string;
|
|
11
|
+
appendItems(...names: SelectItem[]): SelectInfo;
|
|
12
|
+
}
|
|
13
|
+
export declare class SelectInfoOf<T> extends SelectInfo {
|
|
14
|
+
include(...names: FieldKeys<T>[]): SelectInfoOf<T>;
|
|
15
|
+
exclude(...names: FieldKeys<T>[]): SelectInfoOf<T>;
|
|
16
|
+
}
|
|
17
|
+
export type FieldKeys<T> = "[default]" | "[complex]" | "[all]" | keyof T;
|
|
18
|
+
export declare function select<T>(...names: FieldKeys<T>[]): SelectInfoOf<T>;
|
|
19
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../src/select.ts"],"names":[],"mappings":"AACA,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAK3C,QAAQ,IAAI,MAAM;CAI5B;AACD,qBAAa,UAAU;IACnB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAM;gBAEvB,GAAG,WAAW,EAAE,UAAU,EAAE;IAIxC,QAAQ,IAAI,MAAM;IAOX,WAAW,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU;CAQzD;AAED,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;IACpC,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAIlD,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;CAI5D;AACD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;AAEzE,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAEnE"}
|
package/dist/select.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelectInfoOf = exports.SelectInfo = exports.SelectItem = void 0;
|
|
4
|
+
exports.select = select;
|
|
5
|
+
class SelectItem {
|
|
6
|
+
constructor(name, exclude = false) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.exclude = exclude;
|
|
9
|
+
}
|
|
10
|
+
toString() {
|
|
11
|
+
return this.exclude ? `-${this.name}` : this.name;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.SelectItem = SelectItem;
|
|
15
|
+
class SelectInfo {
|
|
16
|
+
constructor(...selectItems) {
|
|
17
|
+
this.items = [];
|
|
18
|
+
this.items.push(...(selectItems.filter(item => item !== null)));
|
|
19
|
+
}
|
|
20
|
+
toString() {
|
|
21
|
+
if (this.items.length === 0)
|
|
22
|
+
return '';
|
|
23
|
+
return this.items
|
|
24
|
+
.filter(item => item !== null)
|
|
25
|
+
.map(item => item.toString())
|
|
26
|
+
.join(',');
|
|
27
|
+
}
|
|
28
|
+
appendItems(...names) {
|
|
29
|
+
if (this.items) {
|
|
30
|
+
this.items = this.items.concat(names);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.items = names;
|
|
34
|
+
}
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.SelectInfo = SelectInfo;
|
|
39
|
+
class SelectInfoOf extends SelectInfo {
|
|
40
|
+
include(...names) {
|
|
41
|
+
this.appendItems(...names.map(t => new SelectItem(t.toString())));
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
exclude(...names) {
|
|
45
|
+
this.appendItems(...names.map(t => new SelectItem(t.toString(), true)));
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.SelectInfoOf = SelectInfoOf;
|
|
50
|
+
function select(...names) {
|
|
51
|
+
return new SelectInfoOf().include(...names);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../src/select.ts"],"names":[],"mappings":";;;AAmDA,wBAEC;AApDD,MAAa,UAAU;IAInB,YAAY,IAAY,EAAE,UAAmB,KAAK;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACtD,CAAC;CAEJ;AAbD,gCAaC;AACD,MAAa,UAAU;IAGnB,YAAY,GAAG,WAAyB;QAF9B,UAAK,GAAiB,EAAE,CAAC;QAG/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACM,WAAW,CAAC,GAAG,KAAmB;QACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAtBD,gCAsBC;AAED,MAAa,YAAgB,SAAQ,UAAU;IACpC,OAAO,CAAC,GAAG,KAAqB;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAA;IACf,CAAC;IACM,OAAO,CAAC,GAAG,KAAqB;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AATD,oCASC;AAGD,SAAgB,MAAM,CAAI,GAAG,KAAqB;IAC9C,OAAO,IAAI,YAAY,EAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/type.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Expression } from "./expression";
|
|
2
|
+
import { Constant } from "./constant";
|
|
3
|
+
export type DeepKeys<T> = T extends object ? {
|
|
4
|
+
[K in keyof T]-?: K extends string | number ? `${K}` | `${K}.${DeepKeys<T[K]>}` : never;
|
|
5
|
+
}[keyof T] : never;
|
|
6
|
+
export type Keys<T> = {
|
|
7
|
+
[K in keyof T]: K;
|
|
8
|
+
}[keyof T];
|
|
9
|
+
export type ConstantOrExpression = Constant | Expression;
|
|
10
|
+
export type DeepKeysOrExpression<T> = DeepKeys<T> | Expression;
|
|
11
|
+
export type DeepKeysOrConstantOrExpression<T> = keyof T | DeepKeys<T> | ConstantOrExpression;
|
|
12
|
+
export declare function key<T>(prop: DeepKeys<T>): string;
|
|
13
|
+
export declare function toExp<T>(path: DeepKeysOrExpression<T>): Expression;
|
|
14
|
+
export declare function toValueExp<T>(path: DeepKeysOrConstantOrExpression<T> | null): ConstantOrExpression | null;
|
|
15
|
+
//# sourceMappingURL=type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACpC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GACzC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GACjC,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,GACR,KAAK,CAAC;AAEZ,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;KACjB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;CACpB,CAAC,MAAM,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;AAE7F,wBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAEhD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,UAAU,CAMlE;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,oBAAoB,GAAG,IAAI,CAUzG"}
|
package/dist/type.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.key = key;
|
|
4
|
+
exports.toExp = toExp;
|
|
5
|
+
exports.toValueExp = toValueExp;
|
|
6
|
+
const expression_1 = require("./expression");
|
|
7
|
+
const constant_1 = require("./constant");
|
|
8
|
+
function key(prop) {
|
|
9
|
+
return prop.toString();
|
|
10
|
+
}
|
|
11
|
+
function toExp(path) {
|
|
12
|
+
if (path instanceof expression_1.Expression) {
|
|
13
|
+
return path;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return new expression_1.Expression(path);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function toValueExp(path) {
|
|
20
|
+
if (path == null) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
else if (path instanceof expression_1.Expression) {
|
|
24
|
+
return path;
|
|
25
|
+
}
|
|
26
|
+
else if (path instanceof constant_1.Constant) {
|
|
27
|
+
return path;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return new expression_1.Expression(path);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=type.js.map
|
package/dist/type.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":";;AAsBA,kBAEC;AAED,sBAMC;AACD,gCAUC;AA3CD,6CAA0C;AAC1C,yCAAsC;AAqBtC,SAAgB,GAAG,CAAI,IAAiB;IACpC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,KAAK,CAAI,IAA6B;IAClD,IAAI,IAAI,YAAY,uBAAU,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AACD,SAAgB,UAAU,CAAI,IAA8C;IACxE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,uBAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,mBAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,uBAAU,CAAC,IAAc,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ys.knife.query.js",
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "ys.knife.query.js是一个用于构建查询的基础类库,提供了丰富的API用于创建和管理查询表达式",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"clean": "rimraf dist reports coverage",
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"lint": "pnpm eslint src/**/*.ts",
|
|
12
|
+
"fix-lint": "pnpm eslint src/**/*.ts --fix",
|
|
13
|
+
"prepublishOnly": "pnpm run clean && pnpm run lint && pnpm run test && pnpm run build",
|
|
14
|
+
"postversion": "git push && git push --tags"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/yscorecore/ys.knife.query.js.git"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"ys.knife.query",
|
|
22
|
+
"ys.knife.query.js"
|
|
23
|
+
],
|
|
24
|
+
"author": "Pengbo",
|
|
25
|
+
"license": "ISC",
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/yscorecore/ys.knife.query.js/issues"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://github.com/yscorecore/ys.knife.query.js#readme",
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@eslint/js": "^9.9.0",
|
|
32
|
+
"@types/jest": "^29.5.12",
|
|
33
|
+
"@types/node": "^22.2.0",
|
|
34
|
+
"@typescript-eslint/eslint-plugin": "^8.1.0",
|
|
35
|
+
"@typescript-eslint/parser": "^8.1.0",
|
|
36
|
+
"eslint": "^9.9.0",
|
|
37
|
+
"globals": "^15.9.0",
|
|
38
|
+
"jest": "^29.7.0",
|
|
39
|
+
"jest-html-reporters": "^3.1.7",
|
|
40
|
+
"rimraf": "^6.0.1",
|
|
41
|
+
"rollup": "^4.20.0",
|
|
42
|
+
"rollup-plugin-typescript2": "^0.36.0",
|
|
43
|
+
"ts-jest": "^29.2.4",
|
|
44
|
+
"typescript": "^5.5.4",
|
|
45
|
+
"typescript-eslint": "^8.1.0"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {},
|
|
48
|
+
"files": [
|
|
49
|
+
"./dist/*"
|
|
50
|
+
]
|
|
51
|
+
}
|