eservices-back-core 2.1.4 → 2.1.6
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/agents/agent.d.ts +6 -0
- package/dist/agents/agent.d.ts.map +1 -0
- package/dist/agents/agent.js +12 -0
- package/dist/agents/agent.js.map +1 -0
- package/dist/agents/text-search-agent.d.ts +34 -0
- package/dist/agents/text-search-agent.d.ts.map +1 -0
- package/dist/agents/text-search-agent.js +84 -0
- package/dist/agents/text-search-agent.js.map +1 -0
- package/dist/app.js +4 -1
- package/dist/app.js.map +1 -1
- package/dist/auth/auth-manager.d.ts +9 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +9 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/auth/reload-session-promisify.d.ts.map +1 -1
- package/dist/auth/reload-session-promisify.js +10 -1
- package/dist/auth/reload-session-promisify.js.map +1 -1
- package/dist/auth/use-auth.d.ts.map +1 -1
- package/dist/auth/use-auth.js +6 -0
- package/dist/auth/use-auth.js.map +1 -1
- package/dist/auth/wait-identity-client.d.ts +2 -0
- package/dist/auth/wait-identity-client.d.ts.map +1 -0
- package/dist/auth/wait-identity-client.js +6 -0
- package/dist/auth/wait-identity-client.js.map +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/controller/close-api/actions-controller.d.ts +7 -0
- package/dist/controller/close-api/actions-controller.d.ts.map +1 -0
- package/dist/controller/close-api/actions-controller.js +75 -0
- package/dist/controller/close-api/actions-controller.js.map +1 -0
- package/dist/controller/close-api/communication-controller.d.ts +8 -0
- package/dist/controller/close-api/communication-controller.d.ts.map +1 -0
- package/dist/controller/close-api/communication-controller.js +89 -0
- package/dist/controller/close-api/communication-controller.js.map +1 -0
- package/dist/controller/close-api/history-controller.d.ts +5 -0
- package/dist/controller/close-api/history-controller.d.ts.map +1 -0
- package/dist/controller/close-api/history-controller.js +29 -0
- package/dist/controller/close-api/history-controller.js.map +1 -0
- package/dist/controller/close-api/rules-validator-controller.d.ts +5 -0
- package/dist/controller/close-api/rules-validator-controller.d.ts.map +1 -0
- package/dist/controller/close-api/rules-validator-controller.js +21 -0
- package/dist/controller/close-api/rules-validator-controller.js.map +1 -0
- package/dist/controller/close-api-controller.d.ts +8 -0
- package/dist/controller/close-api-controller.d.ts.map +1 -0
- package/dist/controller/close-api-controller.js +39 -0
- package/dist/controller/close-api-controller.js.map +1 -0
- package/dist/dtos/dto-list-options.d.ts +3 -0
- package/dist/dtos/dto-list-options.d.ts.map +1 -0
- package/dist/dtos/dto-list-options.js +17 -0
- package/dist/dtos/dto-list-options.js.map +1 -0
- package/dist/dtos/dto-list-setting.d.ts.map +1 -1
- package/dist/dtos/dto-list-setting.js +3 -1
- package/dist/dtos/dto-list-setting.js.map +1 -1
- package/dist/middleware/test-middleware.d.ts +8 -0
- package/dist/middleware/test-middleware.d.ts.map +1 -0
- package/dist/middleware/test-middleware.js +27 -0
- package/dist/middleware/test-middleware.js.map +1 -0
- package/dist/router/close/actions-route.d.ts +3 -0
- package/dist/router/close/actions-route.d.ts.map +1 -0
- package/dist/router/close/actions-route.js +13 -0
- package/dist/router/close/actions-route.js.map +1 -0
- package/dist/router/close/audit-router.d.ts +3 -0
- package/dist/router/close/audit-router.d.ts.map +1 -0
- package/dist/router/close/audit-router.js +11 -0
- package/dist/router/close/audit-router.js.map +1 -0
- package/dist/router/close/client-router.d.ts +3 -0
- package/dist/router/close/client-router.d.ts.map +1 -0
- package/dist/router/close/client-router.js +11 -0
- package/dist/router/close/client-router.js.map +1 -0
- package/dist/router/close/communication-router.d.ts +3 -0
- package/dist/router/close/communication-router.d.ts.map +1 -0
- package/dist/router/close/communication-router.js +14 -0
- package/dist/router/close/communication-router.js.map +1 -0
- package/dist/router/close/presentation-router.d.ts +3 -0
- package/dist/router/close/presentation-router.d.ts.map +1 -0
- package/dist/router/close/presentation-router.js +11 -0
- package/dist/router/close/presentation-router.js.map +1 -0
- package/dist/router/close/rules-validator-router.d.ts +3 -0
- package/dist/router/close/rules-validator-router.d.ts.map +1 -0
- package/dist/router/close/rules-validator-router.js +11 -0
- package/dist/router/close/rules-validator-router.js.map +1 -0
- package/dist/services/action-service.d.ts +2 -3
- package/dist/services/action-service.d.ts.map +1 -1
- package/dist/services/action-service.js +3 -3
- package/dist/services/action-service.js.map +1 -1
- package/dist/services/list-setting-service.d.ts +1 -0
- package/dist/services/list-setting-service.d.ts.map +1 -1
- package/dist/services/user-manager-service.d.ts +5 -0
- package/dist/services/user-manager-service.d.ts.map +1 -0
- package/dist/services/user-manager-service.js +24 -0
- package/dist/services/user-manager-service.js.map +1 -0
- package/dist/socket/configuration-read-socket.d.ts +2 -0
- package/dist/socket/configuration-read-socket.d.ts.map +1 -0
- package/dist/socket/configuration-read-socket.js +18 -0
- package/dist/socket/configuration-read-socket.js.map +1 -0
- package/dist/socket/entity-count-socket.d.ts +7 -0
- package/dist/socket/entity-count-socket.d.ts.map +1 -0
- package/dist/socket/entity-count-socket.js +40 -0
- package/dist/socket/entity-count-socket.js.map +1 -0
- package/dist/socket/entity-read-socket.d.ts +10 -0
- package/dist/socket/entity-read-socket.d.ts.map +1 -0
- package/dist/socket/entity-read-socket.js +57 -0
- package/dist/socket/entity-read-socket.js.map +1 -0
- package/dist/socket/events/tool_execute.d.ts.map +1 -1
- package/dist/socket/events/tool_execute.js +5 -2
- package/dist/socket/events/tool_execute.js.map +1 -1
- package/dist/socket/metadata-read-socket.d.ts +10 -0
- package/dist/socket/metadata-read-socket.d.ts.map +1 -0
- package/dist/socket/metadata-read-socket.js +63 -0
- package/dist/socket/metadata-read-socket.js.map +1 -0
- package/dist/store/Store.d.ts +60 -0
- package/dist/store/Store.d.ts.map +1 -0
- package/dist/store/Store.js +83 -0
- package/dist/store/Store.js.map +1 -0
- package/dist/store/actions.d.ts +26 -0
- package/dist/store/actions.d.ts.map +1 -0
- package/dist/store/actions.js +23 -0
- package/dist/store/actions.js.map +1 -0
- package/dist/store/index.d.ts +2 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +10 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/reducer.d.ts +45 -0
- package/dist/store/reducer.d.ts.map +1 -0
- package/dist/store/reducer.js +27 -0
- package/dist/store/reducer.js.map +1 -0
- package/dist/types/value-hooks.d.ts +3 -1
- package/dist/types/value-hooks.d.ts.map +1 -1
- package/dist/utils/iterate-entity-value-with-hooks.js +15 -18
- package/dist/utils/iterate-entity-value-with-hooks.js.map +1 -1
- package/dist/utils/value-hooks.d.ts.map +1 -1
- package/dist/utils/value-hooks.js +40 -0
- package/dist/utils/value-hooks.js.map +1 -1
- package/package.json +1 -1
- package/dist/model/filter-config.d.ts +0 -69
- package/dist/model/filter-config.d.ts.map +0 -1
- package/dist/model/filter-config.js +0 -146
- package/dist/model/filter-config.js.map +0 -1
- package/dist/store/filters-store.d.ts +0 -7
- package/dist/store/filters-store.d.ts.map +0 -1
- package/dist/store/filters-store.js +0 -28
- package/dist/store/filters-store.js.map +0 -1
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const metadata_service_1 = __importDefault(require("../services/metadata-service"));
|
|
7
7
|
const jenesius_vue_form_1 = require("jenesius-vue-form");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
8
9
|
class ValueHooks {
|
|
9
10
|
static exec(name, params = {}) {
|
|
10
11
|
return store[name](params);
|
|
@@ -36,6 +37,45 @@ const store = {
|
|
|
36
37
|
return;
|
|
37
38
|
jenesius_vue_form_1.utils.deletePropByName(entityValues, options.fieldName);
|
|
38
39
|
};
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* @description Сравнение двух объектов и установление дополнительного поля, в котором хранится состояние объекта.
|
|
43
|
+
* @param options
|
|
44
|
+
*/
|
|
45
|
+
'search-reference-changes': (options) => {
|
|
46
|
+
const SEARCH_OPERATION_CODE = 'M';
|
|
47
|
+
/**
|
|
48
|
+
* Возвращает объект с изменёнными полями.
|
|
49
|
+
* @param sourceObject исходные объект
|
|
50
|
+
* @param targetObject объект с которым сравниваем. В основном это Target из sourceObject
|
|
51
|
+
* @param ignoredFields Поля, которые необходимо игнорировать при поиске изменения.
|
|
52
|
+
*/
|
|
53
|
+
function getChanges(sourceObject, targetObject, ignoredFields) {
|
|
54
|
+
const changes = {};
|
|
55
|
+
Object.keys(sourceObject).forEach(key => {
|
|
56
|
+
if (ignoredFields.includes(key))
|
|
57
|
+
return;
|
|
58
|
+
const sourceValue = sourceObject[key];
|
|
59
|
+
const targetValue = targetObject[key];
|
|
60
|
+
if (sourceValue !== targetValue)
|
|
61
|
+
changes[key] = targetValue;
|
|
62
|
+
});
|
|
63
|
+
return changes;
|
|
64
|
+
}
|
|
65
|
+
function isValidObject(data) {
|
|
66
|
+
return Object.prototype.hasOwnProperty.call(data, 'OperationCode')
|
|
67
|
+
&& Object.prototype.hasOwnProperty.call(data, 'Target')
|
|
68
|
+
&& !!data.Target;
|
|
69
|
+
}
|
|
70
|
+
return (entityValues, params) => {
|
|
71
|
+
if (params.type !== 'entity')
|
|
72
|
+
return;
|
|
73
|
+
if (typeof entityValues !== 'object' || entityValues === null)
|
|
74
|
+
return;
|
|
75
|
+
if (isValidObject(entityValues) && entityValues.OperationCode === SEARCH_OPERATION_CODE) {
|
|
76
|
+
entityValues[constants_1.FIELD_NAME_REFERENCE_CHANGES] = getChanges(entityValues, entityValues.Target, [] || options.ignoredFields);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
39
79
|
}
|
|
40
80
|
};
|
|
41
81
|
//# sourceMappingURL=value-hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-hooks.js","sourceRoot":"","sources":["../../src/utils/value-hooks.ts"],"names":[],"mappings":";;;;;AACA,oFAA2D;AAC3D,yDAAwC;
|
|
1
|
+
{"version":3,"file":"value-hooks.js","sourceRoot":"","sources":["../../src/utils/value-hooks.ts"],"names":[],"mappings":";;;;;AACA,oFAA2D;AAC3D,yDAAwC;AACxC,4CAA0D;AAI1D,MAAqB,UAAU;IAE3B,MAAM,CAAC,IAAI,CAAC,IAAwB,EAAE,SAAkB,EAAE;QACtD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;CACJ;AALD,6BAKC;AAED,MAAM,KAAK,GAAiD;IACxD,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;QACzB,OAAO,CAAC,UAAmB,EAAE,MAAwB,EAAE,EAAE;YACrD,MAAM,EAAC,UAAU,EAAE,SAAS,EAAC,GAAG,MAAM,CAAC;YACvC,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,OAAO;YAC1C,MAAM,aAAa,GAAG,0BAAe,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACjF,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,MAAK,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBACrG,OAAO,UAAU,GAAG,GAAG,CAAC;QAChC,CAAC,CAAA;IACL,CAAC;IACD,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC9B,OAAO,CAAC,YAAqB,EAAE,MAAwB,EAAE,EAAE;YACvD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,MAAM;gBAAE,OAAO;YACnF,yBAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,yBAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACjH,yBAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAA;IACL,CAAC;IACD,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;QACxB,OAAO,CAAC,YAAqB,EAAE,MAAwB,EAAE,EAAE;YACvD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,MAAM;gBAAE,OAAO;YACnF,yBAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAA;IACL,CAAC;IACD;;;OAGG;IACH,0BAA0B,EAAE,CAAC,OAAgD,EAAE,EAAE;QAC7E,MAAM,qBAAqB,GAAG,GAAG,CAAA;QAEjC;;;;;WAKG;QACH,SAAS,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,aAAuB;YACnE,MAAM,OAAO,GAAwB,EAAE,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO;gBACxC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAEtC,IAAI,WAAW,KAAK,WAAW;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;YAChE,CAAC,CAAC,CAAA;YAEF,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,SAAS,aAAa,CAAC,IAAY;YAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;mBAC3D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;mBACpD,CAAC,CAAE,IAA0B,CAAC,MAAM,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE;YAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAErC,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI;gBAAE,OAAO;YAEtE,IAAI,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,KAAK,qBAAqB,EAAE,CAAC;gBACtF,YAAY,CAAC,wCAA4B,CAAC,GAAG,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;YAC5H,CAAC;QACL,CAAC,CAAA;IACL,CAAC;CACJ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { IFilterEnum, IFilterNumber, IFilterString } from "../utils/Filter";
|
|
2
|
-
/**
|
|
3
|
-
* @description Класс предназначенный для работы с фильтрами. Предоставляет одиночные static методы
|
|
4
|
-
* при помощи, которых можно самостоятельно создать фильтр или полноценный механизм задачи фильтра
|
|
5
|
-
* через объект(Более краткий и удобный) через new.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* const filter = new Filter([
|
|
9
|
-
* ["eq", ["Name", "Jack"] ],
|
|
10
|
-
* ["eq", ["Age", "@age"] ]
|
|
11
|
-
* ]);
|
|
12
|
-
* const data = { age: 25 }
|
|
13
|
-
* const strFilter = filter.generate(data);
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* const filter = new Filter([
|
|
17
|
-
* "or",
|
|
18
|
-
* [
|
|
19
|
-
* ["in", ["Status", ["A", "D"] ] ],
|
|
20
|
-
* ["in", ["Type", "$userType" ] ]
|
|
21
|
-
* ]
|
|
22
|
-
* ])
|
|
23
|
-
* const data = {
|
|
24
|
-
* userType: ["User", "Person"]
|
|
25
|
-
* }
|
|
26
|
-
* const strFilter = filter.generate(data)
|
|
27
|
-
*/
|
|
28
|
-
export default class Filter {
|
|
29
|
-
static readonly AVAILABLE_OPERATION: string[];
|
|
30
|
-
private readonly compileFn;
|
|
31
|
-
get valid(): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* @description Массив обзятальных полей, еоторый заправшиваются в конфигурации фильтра.
|
|
34
|
-
*/
|
|
35
|
-
readonly requiredArguments: string[];
|
|
36
|
-
private addRequiredArgument;
|
|
37
|
-
constructor(value: unknown);
|
|
38
|
-
generate(data?: ICompileData): string;
|
|
39
|
-
private compileItem;
|
|
40
|
-
private compileExpressionByType;
|
|
41
|
-
private compileArray;
|
|
42
|
-
private compileEqual;
|
|
43
|
-
private compileInclude;
|
|
44
|
-
private isRequiredValue;
|
|
45
|
-
private isValidObjectExpression;
|
|
46
|
-
private checkForRequiredValue;
|
|
47
|
-
private convertValue;
|
|
48
|
-
/**
|
|
49
|
-
* @description Not Equal(!==).
|
|
50
|
-
* @param name
|
|
51
|
-
* @param values
|
|
52
|
-
*/
|
|
53
|
-
static notEq(name: string, values: IFilterString | IFilterNumber): string;
|
|
54
|
-
/**
|
|
55
|
-
* @description Equal(===)
|
|
56
|
-
* @param name
|
|
57
|
-
* @param values
|
|
58
|
-
*/
|
|
59
|
-
static eq(name: string, values: IFilterString | IFilterNumber | IFilterEnum): string;
|
|
60
|
-
/**
|
|
61
|
-
* @description Include.
|
|
62
|
-
* @param name
|
|
63
|
-
* @param values
|
|
64
|
-
*/
|
|
65
|
-
static in(name: string, values: IFilterEnum): string;
|
|
66
|
-
}
|
|
67
|
-
type ICompileData = Record<string, any>;
|
|
68
|
-
export {};
|
|
69
|
-
//# sourceMappingURL=filter-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-config.d.ts","sourceRoot":"","sources":["../../src/model/filter-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM1E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,QAAQ,CAAC,mBAAmB,WAAkC;IAErE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,IAAI,KAAK,YAER;IAED;;OAEG;IAEH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAC1C,OAAO,CAAC,mBAAmB;gBAKf,KAAK,EAAE,OAAO;IAOnB,QAAQ,CAAC,IAAI,GAAE,YAAiB;IAIvC,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,YAAY;IAKpB;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa;IAIhE;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,WAAW;IAK5E;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;CAI9C;AAaD,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA"}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const use_logger_1 = require("../logger/use-logger");
|
|
4
|
-
function wrapString(str) {
|
|
5
|
-
return typeof str === 'string' ? `'${str}'` : `${str}`;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* @description Класс предназначенный для работы с фильтрами. Предоставляет одиночные static методы
|
|
9
|
-
* при помощи, которых можно самостоятельно создать фильтр или полноценный механизм задачи фильтра
|
|
10
|
-
* через объект(Более краткий и удобный) через new.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* const filter = new Filter([
|
|
14
|
-
* ["eq", ["Name", "Jack"] ],
|
|
15
|
-
* ["eq", ["Age", "@age"] ]
|
|
16
|
-
* ]);
|
|
17
|
-
* const data = { age: 25 }
|
|
18
|
-
* const strFilter = filter.generate(data);
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* const filter = new Filter([
|
|
22
|
-
* "or",
|
|
23
|
-
* [
|
|
24
|
-
* ["in", ["Status", ["A", "D"] ] ],
|
|
25
|
-
* ["in", ["Type", "$userType" ] ]
|
|
26
|
-
* ]
|
|
27
|
-
* ])
|
|
28
|
-
* const data = {
|
|
29
|
-
* userType: ["User", "Person"]
|
|
30
|
-
* }
|
|
31
|
-
* const strFilter = filter.generate(data)
|
|
32
|
-
*/
|
|
33
|
-
class Filter {
|
|
34
|
-
get valid() {
|
|
35
|
-
return !!this.compileFn;
|
|
36
|
-
}
|
|
37
|
-
addRequiredArgument(name) {
|
|
38
|
-
this.requiredArguments.push(name);
|
|
39
|
-
}
|
|
40
|
-
constructor(value) {
|
|
41
|
-
this.compileFn = null;
|
|
42
|
-
/**
|
|
43
|
-
* @description Массив обзятальных полей, еоторый заправшиваются в конфигурации фильтра.
|
|
44
|
-
*/
|
|
45
|
-
this.requiredArguments = [];
|
|
46
|
-
try {
|
|
47
|
-
this.compileFn = this.compileItem(value);
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
50
|
-
use_logger_1.Logger.error(e);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
generate(data = {}) {
|
|
54
|
-
return this.compileFn(data);
|
|
55
|
-
}
|
|
56
|
-
compileItem(item) {
|
|
57
|
-
if (Array.isArray(item)) {
|
|
58
|
-
return (Filter.AVAILABLE_OPERATION.includes(item[0]))
|
|
59
|
-
? this.compileExpressionByType(item[0], item[1])
|
|
60
|
-
: this.compileExpressionByType('and', item);
|
|
61
|
-
}
|
|
62
|
-
else if (typeof item === 'string') {
|
|
63
|
-
return () => item;
|
|
64
|
-
}
|
|
65
|
-
else if (this.isValidObjectExpression(item))
|
|
66
|
-
return this.compileExpressionByType(item.operation, item.arguments);
|
|
67
|
-
else {
|
|
68
|
-
throw new Error(`Unknown filter item ${JSON.stringify(item)}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
compileExpressionByType(type, data) {
|
|
72
|
-
switch (type) {
|
|
73
|
-
case 'and':
|
|
74
|
-
case 'or': {
|
|
75
|
-
if (!Array.isArray(data))
|
|
76
|
-
throw new Error(`Filter Config: with "and" should be provided array data.`);
|
|
77
|
-
return this.compileArray(type, data);
|
|
78
|
-
}
|
|
79
|
-
case 'eq': return this.compileEqual(data[0], data[1]);
|
|
80
|
-
case 'in': return this.compileInclude(data[0], data[1]);
|
|
81
|
-
default: throw new Error(`filter-config: Unknown operation '${type}'`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
compileArray(type, data) {
|
|
85
|
-
const arrayCompileItems = data.map(item => this.compileItem(item));
|
|
86
|
-
return (compileValues) => '( ' + arrayCompileItems.map(fn => fn(compileValues)).join(` ${type} `) + ' )';
|
|
87
|
-
}
|
|
88
|
-
compileEqual(field, value) {
|
|
89
|
-
this.checkForRequiredValue(value);
|
|
90
|
-
return (compileValues) => Filter.eq(field, this.convertValue(value, compileValues));
|
|
91
|
-
}
|
|
92
|
-
compileInclude(field, value) {
|
|
93
|
-
this.checkForRequiredValue(value);
|
|
94
|
-
return (compileValues) => Filter.in(field, this.convertValue(value, compileValues));
|
|
95
|
-
}
|
|
96
|
-
isRequiredValue(value) {
|
|
97
|
-
if (typeof value !== 'string')
|
|
98
|
-
return false;
|
|
99
|
-
return value.startsWith('@');
|
|
100
|
-
}
|
|
101
|
-
isValidObjectExpression(data) {
|
|
102
|
-
if (!(typeof data === 'object' && data !== null))
|
|
103
|
-
return false;
|
|
104
|
-
return Filter.AVAILABLE_OPERATION.includes(data.operation);
|
|
105
|
-
}
|
|
106
|
-
checkForRequiredValue(value) {
|
|
107
|
-
if (!this.isRequiredValue(value))
|
|
108
|
-
return;
|
|
109
|
-
this.addRequiredArgument(value);
|
|
110
|
-
}
|
|
111
|
-
convertValue(value, compileValues) {
|
|
112
|
-
if (typeof value !== 'string')
|
|
113
|
-
return value;
|
|
114
|
-
return compileValues[value] || value;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* @description Not Equal(!==).
|
|
118
|
-
* @param name
|
|
119
|
-
* @param values
|
|
120
|
-
*/
|
|
121
|
-
static notEq(name, values) {
|
|
122
|
-
return `@${name} nq ${wrapString(values)}`;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* @description Equal(===)
|
|
126
|
-
* @param name
|
|
127
|
-
* @param values
|
|
128
|
-
*/
|
|
129
|
-
static eq(name, values) {
|
|
130
|
-
if (Array.isArray(values))
|
|
131
|
-
return Filter.in(name, values);
|
|
132
|
-
return `@${name} eq ${wrapString(values)}`;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* @description Include.
|
|
136
|
-
* @param name
|
|
137
|
-
* @param values
|
|
138
|
-
*/
|
|
139
|
-
static in(name, values) {
|
|
140
|
-
const parsedValues = values.map(wrapString).join(', ');
|
|
141
|
-
return `@${name} in (${parsedValues})`;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
Filter.AVAILABLE_OPERATION = ['and', 'or', 'eq', 'nq', 'in'];
|
|
145
|
-
exports.default = Filter;
|
|
146
|
-
//# sourceMappingURL=filter-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-config.js","sourceRoot":"","sources":["../../src/model/filter-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters-store.d.ts","sourceRoot":"","sources":["../../src/store/filters-store.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,wBAAwB,CAAC;;gBAK3B,MAAM;iBAGL,OAAO,MAAM,EAAE,GAAG,CAAC;;AAN3C,wBAoBI"}
|
|
@@ -1,28 +0,0 @@
|
|
|
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
|
-
const filter_config_1 = __importDefault(require("../model/filter-config"));
|
|
7
|
-
exports.default = (function FiltersStore() {
|
|
8
|
-
const state = {};
|
|
9
|
-
function get(name) {
|
|
10
|
-
return state[name];
|
|
11
|
-
}
|
|
12
|
-
function init(data) {
|
|
13
|
-
Object.keys(data)
|
|
14
|
-
.forEach(name => {
|
|
15
|
-
try {
|
|
16
|
-
state[name] = new filter_config_1.default(data[name]);
|
|
17
|
-
}
|
|
18
|
-
catch (e) {
|
|
19
|
-
console.log(e);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
return {
|
|
24
|
-
get,
|
|
25
|
-
init
|
|
26
|
-
};
|
|
27
|
-
})();
|
|
28
|
-
//# sourceMappingURL=filters-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters-store.js","sourceRoot":"","sources":["../../src/store/filters-store.ts"],"names":[],"mappings":";;;;;AAAA,2EAAkD;AAElD,kBAAe,CAAC,SAAS,YAAY;IACjC,MAAM,KAAK,GAAiC,EAAE,CAAA;IAE9C,SAAS,GAAG,CAAC,IAAY;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,SAAS,IAAI,CAAC,IAAyB;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aAChB,OAAO,CAAC,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IACD,OAAO;QACH,GAAG;QACH,IAAI;KACP,CAAA;AACL,CAAC,CAAC,EAAE,CAAA"}
|