@nx-ddd/common 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/README.md +7 -0
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -0
- package/package.json +6 -0
- package/utilities/index.d.ts +2 -0
- package/utilities/index.js +6 -0
- package/utilities/index.js.map +1 -0
- package/utilities/query/index.d.ts +1 -0
- package/utilities/query/index.js +5 -0
- package/utilities/query/index.js.map +1 -0
- package/utilities/query/query.resolver.d.ts +1 -0
- package/utilities/query/query.resolver.js +62 -0
- package/utilities/query/query.resolver.js.map +1 -0
- package/utilities/to-object.d.ts +1 -0
- package/utilities/to-object.js +13 -0
- package/utilities/to-object.js.map +1 -0
package/README.md
ADDED
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './utilities/to-object';
|
package/index.js
ADDED
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/common/src/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC"}
|
package/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/common/src/utilities/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,sDAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './query.resolver';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/common/src/utilities/query/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const filterByQuery: <T>(items: T[], queryString: string, dlm?: Record<string, string>) => T[];
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterByQuery = void 0;
|
|
4
|
+
const to_object_1 = require("@nx-ddd/common/utilities/to-object");
|
|
5
|
+
const flat_1 = require("flat");
|
|
6
|
+
exports.filterByQuery = (items, queryString, dlm = {}) => {
|
|
7
|
+
return new QueryResolver(dlm).resolve(items, queryString);
|
|
8
|
+
};
|
|
9
|
+
class QueryResolver {
|
|
10
|
+
constructor(map) {
|
|
11
|
+
this.inQueryByKey = (items, query) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const [not, _key, value] = this.parseQuery(query);
|
|
14
|
+
const key = (_b = (_a = this.REVERSED_MAP) === null || _a === void 0 ? void 0 : _a[_key]) !== null && _b !== void 0 ? _b : _key;
|
|
15
|
+
return items.filter(item => { var _a; return _not(_in((_a = flat_1.flatten(to_object_1.toObject(item))) === null || _a === void 0 ? void 0 : _a[key], value), not); });
|
|
16
|
+
};
|
|
17
|
+
this.gtQueryByKey = (items, query) => {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
const [_key, value] = query.split('>');
|
|
20
|
+
const key = (_b = (_a = this.REVERSED_MAP) === null || _a === void 0 ? void 0 : _a[_key]) !== null && _b !== void 0 ? _b : _key;
|
|
21
|
+
return items.filter(item => { var _a; return _gt((_a = flat_1.flatten(to_object_1.toObject(item))) === null || _a === void 0 ? void 0 : _a[key], value); });
|
|
22
|
+
};
|
|
23
|
+
this.inQuery = (items, query) => {
|
|
24
|
+
return items.filter(item => Object.values(flat_1.flatten(to_object_1.toObject(item))).some(value => _in(value, query)));
|
|
25
|
+
};
|
|
26
|
+
this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => (Object.assign(Object.assign({}, p), { [v]: k })), {});
|
|
27
|
+
}
|
|
28
|
+
resolve(items, queryString) {
|
|
29
|
+
return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));
|
|
30
|
+
}
|
|
31
|
+
resolveQueries(items, queries) {
|
|
32
|
+
return queries.reduce((_items, query) => {
|
|
33
|
+
if (query.includes(':'))
|
|
34
|
+
return this.inQueryByKey(_items, query);
|
|
35
|
+
if (query.includes('='))
|
|
36
|
+
return this.inQueryByKey(_items, query);
|
|
37
|
+
if (query.includes('>'))
|
|
38
|
+
return this.gtQueryByKey(_items, query);
|
|
39
|
+
if (query.includes('<'))
|
|
40
|
+
return this.inQueryByKey(_items, query);
|
|
41
|
+
return this.inQuery(_items, query);
|
|
42
|
+
}, items);
|
|
43
|
+
}
|
|
44
|
+
parseQuery(query) {
|
|
45
|
+
const [_key, value] = query.split(':');
|
|
46
|
+
return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const _not = (bool, not) => {
|
|
50
|
+
return not ? !bool : bool;
|
|
51
|
+
};
|
|
52
|
+
const _in = (value, query) => {
|
|
53
|
+
return typeof value === 'string' ? value === null || value === void 0 ? void 0 : value.includes(query) : false;
|
|
54
|
+
};
|
|
55
|
+
const _gt = (value, query) => {
|
|
56
|
+
return typeof value === 'string'
|
|
57
|
+
? parseFloat(value) > parseFloat(query)
|
|
58
|
+
: typeof value === 'number'
|
|
59
|
+
? value > parseFloat(query)
|
|
60
|
+
: false;
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=query.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.resolver.js","sourceRoot":"","sources":["../../../../../libs/common/src/utilities/query/query.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const toObject: (obj: object) => object;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toObject = void 0;
|
|
4
|
+
const getAllProps = (obj, keys = Object.keys(obj)) => {
|
|
5
|
+
const proto = Object.getPrototypeOf(obj);
|
|
6
|
+
keys = Object.getOwnPropertyNames(proto)
|
|
7
|
+
.filter(v => v !== '__proto__')
|
|
8
|
+
.filter(v => Object.getOwnPropertyDescriptor(proto, v).get instanceof Function)
|
|
9
|
+
.concat(keys);
|
|
10
|
+
return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);
|
|
11
|
+
};
|
|
12
|
+
exports.toObject = (obj) => getAllProps(obj).reduce((p, k) => (Object.assign(Object.assign({}, p), { [k]: obj[k] })), {});
|
|
13
|
+
//# sourceMappingURL=to-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-object.js","sourceRoot":"","sources":["../../../../libs/common/src/utilities/to-object.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,OAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAY,EAAE;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC;SAC9E,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC,CAAA;AAEY,QAAA,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,iCAAK,CAAC,KAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,EAAE,CAAC,CAAC"}
|