@restorecommerce/resource-base-interface 1.6.4 → 1.7.0
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/eslint.config.mjs +22 -0
- package/lib/core/GraphResourcesServiceBase.d.ts +9 -5
- package/lib/core/GraphResourcesServiceBase.d.ts.map +1 -0
- package/lib/core/GraphResourcesServiceBase.js +79 -110
- package/lib/core/GraphResourcesServiceBase.js.map +1 -1
- package/lib/core/ResourcesAPI.d.ts +26 -19
- package/lib/core/ResourcesAPI.d.ts.map +1 -0
- package/lib/core/ResourcesAPI.js +275 -398
- package/lib/core/ResourcesAPI.js.map +1 -1
- package/lib/core/ServiceBase.d.ts +29 -10
- package/lib/core/ServiceBase.d.ts.map +1 -0
- package/lib/core/ServiceBase.js +137 -242
- package/lib/core/ServiceBase.js.map +1 -1
- package/lib/core/index.d.ts +5 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/index.js +21 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/interfaces.d.ts +6 -72
- package/lib/core/interfaces.d.ts.map +1 -0
- package/lib/core/interfaces.js +18 -31
- package/lib/core/interfaces.js.map +1 -1
- package/lib/core/utils.d.ts +3 -1
- package/lib/core/utils.d.ts.map +1 -0
- package/lib/core/utils.js +28 -32
- package/lib/core/utils.js.map +1 -1
- package/lib/experimental/AccessControlledServiceBase.d.ts +30 -0
- package/lib/experimental/AccessControlledServiceBase.d.ts.map +1 -0
- package/lib/experimental/AccessControlledServiceBase.js +232 -0
- package/lib/experimental/AccessControlledServiceBase.js.map +1 -0
- package/lib/experimental/ClientRegister.d.ts +22 -0
- package/lib/experimental/ClientRegister.d.ts.map +1 -0
- package/lib/experimental/ClientRegister.js +33 -0
- package/lib/experimental/ClientRegister.js.map +1 -0
- package/lib/experimental/Pipe.d.ts +6 -0
- package/lib/experimental/Pipe.d.ts.map +1 -0
- package/lib/experimental/Pipe.js +14 -0
- package/lib/experimental/Pipe.js.map +1 -0
- package/lib/experimental/ResourceAggregator.d.ts +35 -0
- package/lib/experimental/ResourceAggregator.d.ts.map +1 -0
- package/lib/experimental/ResourceAggregator.js +94 -0
- package/lib/experimental/ResourceAggregator.js.map +1 -0
- package/lib/experimental/ResourceAwaitQueue.d.ts +12 -0
- package/lib/experimental/ResourceAwaitQueue.d.ts.map +1 -0
- package/lib/experimental/ResourceAwaitQueue.js +34 -0
- package/lib/experimental/ResourceAwaitQueue.js.map +1 -0
- package/lib/experimental/ResourceMap.d.ts +16 -0
- package/lib/experimental/ResourceMap.d.ts.map +1 -0
- package/lib/experimental/ResourceMap.js +51 -0
- package/lib/experimental/ResourceMap.js.map +1 -0
- package/lib/{core → experimental}/WorkerBase.d.ts +10 -14
- package/lib/experimental/WorkerBase.d.ts.map +1 -0
- package/lib/{core → experimental}/WorkerBase.js +44 -30
- package/lib/experimental/WorkerBase.js.map +1 -0
- package/lib/experimental/index.d.ts +7 -0
- package/lib/experimental/index.d.ts.map +1 -0
- package/lib/experimental/index.js +23 -0
- package/lib/experimental/index.js.map +1 -0
- package/lib/index.d.ts +5 -7
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +84 -144
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/package.json +23 -28
- package/tsconfig.json +11 -25
- package/lib/core/WorkerBase.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Pipe = void 0;
|
|
4
|
+
class Pipe {
|
|
5
|
+
value;
|
|
6
|
+
constructor(value) {
|
|
7
|
+
this.value = value;
|
|
8
|
+
}
|
|
9
|
+
then(fn) {
|
|
10
|
+
return new Pipe(fn(this.value));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Pipe = Pipe;
|
|
14
|
+
//# sourceMappingURL=Pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pipe.js","sourceRoot":"","sources":["../../src/experimental/Pipe.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAEG;IADlB,YACkB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IACvB,CAAC;IAEG,IAAI,CAAI,EAAe;QAC5B,OAAO,IAAI,IAAI,CAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;CACF;AARD,oBAQC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ServiceConfig } from '@restorecommerce/service-config';
|
|
2
|
+
import { type Logger } from '@restorecommerce/logger';
|
|
3
|
+
import { Resource, ResourceList, ResourceListResponse } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base';
|
|
4
|
+
import { type CallContext } from 'nice-grpc-common';
|
|
5
|
+
import { Subject } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/auth';
|
|
6
|
+
import { ResourceMap, OnMissingCallback } from './ResourceMap';
|
|
7
|
+
import { ClientRegister, CRUDServiceDefinition } from './ClientRegister';
|
|
8
|
+
export type Aggregation<T extends ResourceListResponse & ResourceList = any, C = any> = T & C;
|
|
9
|
+
export type ResolverParams<T = any, M = ResolverMap<T>> = [string, Map<string, T>, M?, T?];
|
|
10
|
+
export type ArrayResolverParams<T = any, M = ResolverMap<T>> = [string, Map<string, T>, M[]?, T[]?];
|
|
11
|
+
export type ElementOf<T = any> = T extends Array<infer E> ? E : T;
|
|
12
|
+
export type ResolverMap<T = any> = {
|
|
13
|
+
[K in keyof T]?: ResolverParams<T[K]> | ArrayResolverParams<T[K]> | T[K];
|
|
14
|
+
} & {};
|
|
15
|
+
export type ResolvedNode<T, M> = T extends ResolverParams ? (T[2] extends object ? Resolved<T[3] & T[2], T[2]> : T[3]) : M extends object ? Resolved<T & M, M> : T;
|
|
16
|
+
export type Resolved<T extends ResolverMap, M extends ResolverMap> = {
|
|
17
|
+
[K in keyof T]?: T[K] extends object ? ResolvedNode<T[K], M[K]> : T[K];
|
|
18
|
+
};
|
|
19
|
+
export declare const Resolver: <T, M>(search_key: string, source: Map<string, T>, map?: M) => ResolverParams<T, M>;
|
|
20
|
+
export declare const ArrayResolver: <T, M>(search_key: string, source: Map<string, T>, map?: M) => ArrayResolverParams<T, M>;
|
|
21
|
+
export declare class ResourceAggregator {
|
|
22
|
+
protected readonly cfg: ServiceConfig;
|
|
23
|
+
protected readonly logger: Logger;
|
|
24
|
+
protected readonly register: ClientRegister;
|
|
25
|
+
constructor(cfg: ServiceConfig, logger: Logger, register?: ClientRegister);
|
|
26
|
+
getByIds<R extends Resource>(ids: string | string[], service: CRUDServiceDefinition, subject?: Subject, context?: CallContext): Promise<ResourceMap<R>>;
|
|
27
|
+
aggregate<T extends object, C>(target: T, sources: {
|
|
28
|
+
service: CRUDServiceDefinition;
|
|
29
|
+
map_by_ids: (target: T) => string[];
|
|
30
|
+
container: string;
|
|
31
|
+
entity?: string;
|
|
32
|
+
}[], template?: C, subject?: Subject, context?: CallContext, strict?: OnMissingCallback): Promise<Aggregation<T, C>>;
|
|
33
|
+
}
|
|
34
|
+
export declare function resolve<T, M extends ResolverMap>(entity: T, resolverMap?: M): Resolved<T & M, M>;
|
|
35
|
+
//# sourceMappingURL=ResourceAggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAggregator.d.ts","sourceRoot":"","sources":["../../src/experimental/ResourceAggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResourceAggregator = exports.ArrayResolver = exports.Resolver = void 0;
|
|
4
|
+
exports.resolve = resolve;
|
|
5
|
+
const resource_base_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base");
|
|
6
|
+
const ResourceMap_1 = require("./ResourceMap");
|
|
7
|
+
const ClientRegister_1 = require("./ClientRegister");
|
|
8
|
+
const Resolver = (search_key, source, map) => [
|
|
9
|
+
search_key,
|
|
10
|
+
source,
|
|
11
|
+
map,
|
|
12
|
+
{},
|
|
13
|
+
];
|
|
14
|
+
exports.Resolver = Resolver;
|
|
15
|
+
const ArrayResolver = (search_key, source, map) => [
|
|
16
|
+
search_key,
|
|
17
|
+
source,
|
|
18
|
+
[map],
|
|
19
|
+
[]
|
|
20
|
+
];
|
|
21
|
+
exports.ArrayResolver = ArrayResolver;
|
|
22
|
+
class ResourceAggregator {
|
|
23
|
+
cfg;
|
|
24
|
+
logger;
|
|
25
|
+
register;
|
|
26
|
+
constructor(cfg, logger, register = new ClientRegister_1.ClientRegister(cfg, logger)) {
|
|
27
|
+
this.cfg = cfg;
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
this.register = register;
|
|
30
|
+
}
|
|
31
|
+
async getByIds(ids, service, subject, context) {
|
|
32
|
+
ids = [...new Set([ids].flatMap(id => id).filter(id => id))];
|
|
33
|
+
const request = ids?.length ? {
|
|
34
|
+
filters: [{
|
|
35
|
+
filters: [
|
|
36
|
+
{
|
|
37
|
+
field: '_key',
|
|
38
|
+
operation: resource_base_1.Filter_Operation.in,
|
|
39
|
+
value: JSON.stringify(ids),
|
|
40
|
+
type: resource_base_1.Filter_ValueType.ARRAY,
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}],
|
|
44
|
+
limit: ids.length,
|
|
45
|
+
subject,
|
|
46
|
+
} : undefined;
|
|
47
|
+
const client = this.register.get(service);
|
|
48
|
+
const response = request && await client.read(request, context);
|
|
49
|
+
const map = new ResourceMap_1.ResourceMap(response?.items?.map((item) => item.payload), service?.name?.toString());
|
|
50
|
+
return map;
|
|
51
|
+
}
|
|
52
|
+
async aggregate(target, sources, template, subject, context, strict = ResourceMap_1.DEFAULT_STRICT_CALLBACK) {
|
|
53
|
+
const ids = sources.map(source => source.map_by_ids(target));
|
|
54
|
+
const source_map = await Promise.all(sources.map((source, i) => this.getByIds(ids[i] ?? [], source.service, subject, context)));
|
|
55
|
+
const aggregation = Object.assign(target, ...sources.map((source, i) => ({
|
|
56
|
+
[source.container]: new ResourceMap_1.ResourceMap(source_map[i].getMany(ids[i]?.flatMap(ids => ids) ?? [], strict), source.entity)
|
|
57
|
+
})));
|
|
58
|
+
return aggregation;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.ResourceAggregator = ResourceAggregator;
|
|
62
|
+
function resolve(entity, resolverMap) {
|
|
63
|
+
if (!entity) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
else if (Array.isArray(entity)) {
|
|
67
|
+
return entity.map(value => resolve(value, resolverMap[0]));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return Object.assign(entity, ...Object.entries(resolverMap ?? {}).map(([k, r]) => {
|
|
71
|
+
const id = typeof r?.[0] === 'string' && entity[r[0]];
|
|
72
|
+
if (!id) {
|
|
73
|
+
return {
|
|
74
|
+
[k]: resolve(entity[k], r)
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
else if (Array.isArray(id)) {
|
|
78
|
+
return {
|
|
79
|
+
[k]: id.map(id => r[2]
|
|
80
|
+
? resolve(r[1]?.get(id.toString()), r[2])
|
|
81
|
+
: r[1]?.get(id.toString()))
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
else if (typeof id === 'string') {
|
|
85
|
+
return {
|
|
86
|
+
[k]: r[2]
|
|
87
|
+
? resolve(r[1]?.get(id), r[2])
|
|
88
|
+
: r[1]?.get(id)
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}).filter(e => e));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=ResourceAggregator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAggregator.js","sourceRoot":"","sources":["../../src/experimental/ResourceAggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type ResourceAwaitFunc<T> = (resource?: T) => void;
|
|
2
|
+
export type ResourceAwaitMutex<T> = {
|
|
3
|
+
resolve: ResourceAwaitFunc<T>;
|
|
4
|
+
reject: (error?: any) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare class ResourceAwaitQueue<T, K = string> extends Map<K, ResourceAwaitMutex<T>> {
|
|
7
|
+
set(key: K, value: ResourceAwaitMutex<T>): this;
|
|
8
|
+
await(key: K, timeout?: number): Promise<T>;
|
|
9
|
+
resolve(key: K, resource?: T): void;
|
|
10
|
+
reject(key: K, error?: any): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ResourceAwaitQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAwaitQueue.d.ts","sourceRoot":"","sources":["../../src/experimental/ResourceAwaitQueue.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,qBAAa,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAS3C,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAgBpC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;IAK5B,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG;CAIlC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResourceAwaitQueue = void 0;
|
|
4
|
+
class ResourceAwaitQueue extends Map {
|
|
5
|
+
set(key, value) {
|
|
6
|
+
if (this.has(key)) {
|
|
7
|
+
value.reject(new Error('Resource in use!'));
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return super.set(key, value);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
async await(key, timeout) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
this.set(key, { resolve, reject });
|
|
16
|
+
if (timeout) {
|
|
17
|
+
setTimeout(() => reject({
|
|
18
|
+
code: 500,
|
|
19
|
+
message: `Event ${key} did not respond before timeout of ${timeout}ms!`
|
|
20
|
+
}), timeout);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
resolve(key, resource) {
|
|
25
|
+
this.get(key)?.resolve(resource);
|
|
26
|
+
this.delete(key);
|
|
27
|
+
}
|
|
28
|
+
reject(key, error) {
|
|
29
|
+
this.get(key)?.reject(error);
|
|
30
|
+
this.delete(key);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.ResourceAwaitQueue = ResourceAwaitQueue;
|
|
34
|
+
//# sourceMappingURL=ResourceAwaitQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAwaitQueue.js","sourceRoot":"","sources":["../../src/experimental/ResourceAwaitQueue.ts"],"names":[],"mappings":";;;AAQA,MAAa,kBAAkC,SAAQ,GAA6B;IAClE,GAAG,CAAC,GAAM,EAAE,KAA4B;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9C,CAAC;aACI,CAAC;YACJ,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAM,EAAE,OAAgB;QACzC,OAAO,IAAI,OAAO,CAChB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC;oBACX,IAAI,EAAE,GAAG;oBACT,OAAO,EAAE,SAAS,GAAG,sCAAsC,OAAO,KAAK;iBACxE,CAAC,EAAE,OAAO,CACZ,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,OAAO,CAAC,GAAM,EAAE,QAAY;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,GAAM,EAAE,KAAW;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACF;AAnCD,gDAmCC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Resource } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base';
|
|
2
|
+
export type OnMissingCallback = (id?: string, entity?: string) => any;
|
|
3
|
+
export declare const DEFAULT_STRICT_CALLBACK: OnMissingCallback;
|
|
4
|
+
export declare const DEFAULT_STATUS_CALLBACK: OnMissingCallback;
|
|
5
|
+
export declare class ResourceMap<T extends Resource = any> extends Map<string, T> {
|
|
6
|
+
readonly entity: string;
|
|
7
|
+
protected _all?: T[];
|
|
8
|
+
get all(): T[];
|
|
9
|
+
constructor(items?: T[], entity?: string);
|
|
10
|
+
set(key: string, value: T): this;
|
|
11
|
+
clear(): void;
|
|
12
|
+
delete(key: string): boolean;
|
|
13
|
+
get(id: string, onMissing?: OnMissingCallback): T;
|
|
14
|
+
getMany(ids: string[], onMissing?: OnMissingCallback): T[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ResourceMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceMap.d.ts","sourceRoot":"","sources":["../../src/experimental/ResourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACT,MAAM,yFAAyF,CAAC;AAMjG,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;AAEtE,eAAO,MAAM,uBAAuB,EAAE,iBAKrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,iBAOpC,CAAC;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;aAUrD,MAAM;IATxB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAErB,IAAW,GAAG,QAGb;gBAGC,KAAK,CAAC,EAAE,CAAC,EAAE,EACK,MAAM,SAA8B;IAStC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAKzB,KAAK;IAKL,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,GAAG,CACjB,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,iBAA2C,GACrD,CAAC;IAUG,OAAO,CACZ,GAAG,EAAE,MAAM,EAAE,EACb,SAAS,GAAE,iBAA2C,GACrD,CAAC,EAAE;CAGP"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResourceMap = exports.DEFAULT_STATUS_CALLBACK = exports.DEFAULT_STRICT_CALLBACK = void 0;
|
|
4
|
+
const DEFAULT_STRICT_CALLBACK = (id, entity) => {
|
|
5
|
+
throw new Error(`Resource missing: { id: ${id}, entity: ${entity} }!`);
|
|
6
|
+
};
|
|
7
|
+
exports.DEFAULT_STRICT_CALLBACK = DEFAULT_STRICT_CALLBACK;
|
|
8
|
+
const DEFAULT_STATUS_CALLBACK = (id, entity) => ({
|
|
9
|
+
id,
|
|
10
|
+
code: 404,
|
|
11
|
+
message: `${entity ?? 'Entity'} ${id} is missing!`
|
|
12
|
+
});
|
|
13
|
+
exports.DEFAULT_STATUS_CALLBACK = DEFAULT_STATUS_CALLBACK;
|
|
14
|
+
class ResourceMap extends Map {
|
|
15
|
+
entity;
|
|
16
|
+
_all;
|
|
17
|
+
get all() {
|
|
18
|
+
this._all = this._all ?? [...this.values()];
|
|
19
|
+
return this._all;
|
|
20
|
+
}
|
|
21
|
+
constructor(items, entity = items[0]?.constructor?.name) {
|
|
22
|
+
super(items?.filter(item => item).map(item => [item.id, item]));
|
|
23
|
+
this.entity = entity;
|
|
24
|
+
}
|
|
25
|
+
set(key, value) {
|
|
26
|
+
delete this._all;
|
|
27
|
+
return super.set(key, value);
|
|
28
|
+
}
|
|
29
|
+
clear() {
|
|
30
|
+
delete this._all;
|
|
31
|
+
return super.clear();
|
|
32
|
+
}
|
|
33
|
+
delete(key) {
|
|
34
|
+
delete this._all;
|
|
35
|
+
return super.delete(key);
|
|
36
|
+
}
|
|
37
|
+
get(id, onMissing = exports.DEFAULT_STRICT_CALLBACK) {
|
|
38
|
+
if (id && onMissing && !this.has(id)) {
|
|
39
|
+
const error = onMissing(id, this.entity);
|
|
40
|
+
if (error) {
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return super.get(id);
|
|
45
|
+
}
|
|
46
|
+
getMany(ids, onMissing = exports.DEFAULT_STRICT_CALLBACK) {
|
|
47
|
+
return ids?.map(id => this.get(id, onMissing));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.ResourceMap = ResourceMap;
|
|
51
|
+
//# sourceMappingURL=ResourceMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceMap.js","sourceRoot":"","sources":["../../src/experimental/ResourceMap.ts"],"names":[],"mappings":";;;AAUO,MAAM,uBAAuB,GAAsB,CACxD,EAAW,EACX,MAAe,EACf,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,aAAa,MAAM,KAAK,CAAC,CAAC;AACzE,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC;AAEK,MAAM,uBAAuB,GAAsB,CACxD,EAAW,EACX,MAAe,EACP,EAAE,CAAC,CAAC;IACZ,EAAE;IACF,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,cAAc;CACnD,CAAC,CAAC;AAPU,QAAA,uBAAuB,2BAOjC;AAEH,MAAa,WAAsC,SAAQ,GAAc;IAUrD;IATR,IAAI,CAAO;IAErB,IAAW,GAAG;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,YACE,KAAW,EACK,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI;QAEpD,KAAK,CAAC,KAAK,EAAE,MAAM,CACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CACb,CAAC,GAAG,CACH,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CACxB,CAAC,CAAC;QANa,WAAM,GAAN,MAAM,CAA8B;IAOtD,CAAC;IAEe,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEe,KAAK;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEe,MAAM,CAAC,GAAW;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEe,GAAG,CACjB,EAAU,EACV,YAA+B,+BAAuB;QAEtD,IAAI,EAAE,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAEM,OAAO,CACZ,GAAa,EACb,YAA+B,+BAAuB;QAEtD,OAAO,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;AArDD,kCAqDC"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
3
|
-
import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
|
|
4
|
-
import { RedisClientType as RedisClient } from 'redis';
|
|
5
|
-
import { Logger } from 'winston';
|
|
1
|
+
import { type ServiceImplementation } from 'nice-grpc';
|
|
2
|
+
import { type CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
|
|
6
3
|
import { Server, OffsetStore, DatabaseProvider, CommandInterface } from '@restorecommerce/chassis-srv';
|
|
7
4
|
import { Events, Topic } from '@restorecommerce/kafka-client';
|
|
5
|
+
import { type Logger } from '@restorecommerce/logger';
|
|
8
6
|
import { BindConfig } from '@restorecommerce/chassis-srv/lib/microservice/transport/provider/grpc/index';
|
|
9
7
|
import { ProtoMetadata } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/commandinterface';
|
|
10
|
-
import {
|
|
11
|
-
|
|
8
|
+
import { type ServiceConfig } from '@restorecommerce/service-config';
|
|
9
|
+
import { ServiceBase } from '../index';
|
|
12
10
|
export type ReflectionService = ServiceImplementation<any>;
|
|
11
|
+
export type EventHandler = (msg: any, context?: any, config?: any, eventName?: string) => Promise<any>;
|
|
13
12
|
export interface ServiceBindConfig<T extends CompatServiceDefinition> extends BindConfig<T> {
|
|
14
13
|
name: string;
|
|
15
14
|
meta: ProtoMetadata;
|
|
@@ -20,7 +19,6 @@ export declare abstract class WorkerBase {
|
|
|
20
19
|
private _server;
|
|
21
20
|
private _db;
|
|
22
21
|
private _events;
|
|
23
|
-
private _redisClient;
|
|
24
22
|
private _offsetStore;
|
|
25
23
|
private _reflectionService;
|
|
26
24
|
private _commandInterface;
|
|
@@ -36,18 +34,14 @@ export declare abstract class WorkerBase {
|
|
|
36
34
|
protected set offsetStore(value: OffsetStore);
|
|
37
35
|
get events(): Events;
|
|
38
36
|
protected set events(value: Events);
|
|
39
|
-
get redisClient(): RedisClient;
|
|
40
|
-
protected set redisClient(value: RedisClient);
|
|
41
37
|
get commandInterface(): CommandInterface;
|
|
42
38
|
protected set commandInterface(value: CommandInterface);
|
|
43
39
|
get reflectionService(): ReflectionService;
|
|
44
40
|
protected set reflectionService(value: ReflectionService);
|
|
45
41
|
protected readonly services: Map<string, CommandInterface | import("nice-grpc").RawServiceImplementation<any, {}> | ServiceBase<any, any>>;
|
|
46
42
|
protected readonly topics: Map<string, Topic>;
|
|
47
|
-
protected readonly
|
|
48
|
-
protected readonly
|
|
49
|
-
handleQueuedJob: (msg: any, context: any, config: any, eventName: string) => Promise<Logger>;
|
|
50
|
-
};
|
|
43
|
+
protected readonly eventHandlers: Map<string, EventHandler>;
|
|
44
|
+
protected readonly jobHandler: ServiceImplementation<any>;
|
|
51
45
|
/**
|
|
52
46
|
* Override this factory function and return a list of ServiceBindConfig[].
|
|
53
47
|
* Each ServiceBindConfig expects a ServiceBase implementation,
|
|
@@ -57,6 +51,7 @@ export declare abstract class WorkerBase {
|
|
|
57
51
|
protected abstract initServices(): Promise<ServiceBindConfig<any>[]>;
|
|
58
52
|
protected bindServices(configs: ServiceBindConfig<any>[]): Promise<void>;
|
|
59
53
|
protected bindCommandInterface(configs: ServiceBindConfig<any>[]): Promise<void>;
|
|
54
|
+
protected bindJobHandler(): Promise<void>;
|
|
60
55
|
protected bindRefelctions(configs: ServiceBindConfig<any>[]): Promise<void>;
|
|
61
56
|
protected bindHealthCheck(): Promise<void>;
|
|
62
57
|
protected bindHandler(serviceName: string, functionName: string): (msg: any, context: any, config: any, eventName: string) => Promise<any>;
|
|
@@ -64,3 +59,4 @@ export declare abstract class WorkerBase {
|
|
|
64
59
|
start(cfg?: ServiceConfig, logger?: Logger): Promise<any>;
|
|
65
60
|
stop(): Promise<any>;
|
|
66
61
|
}
|
|
62
|
+
//# sourceMappingURL=WorkerBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerBase.d.ts","sourceRoot":"","sources":["../../src/experimental/WorkerBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,17 +9,16 @@ const commandinterface_1 = require("@restorecommerce/rc-grpc-clients/dist/genera
|
|
|
9
9
|
const health_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/grpc/health/v1/health");
|
|
10
10
|
const nice_grpc_server_reflection_1 = require("nice-grpc-server-reflection");
|
|
11
11
|
const service_config_1 = require("@restorecommerce/service-config");
|
|
12
|
+
const acs_client_1 = require("@restorecommerce/acs-client");
|
|
12
13
|
class WorkerBase {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
}
|
|
14
|
+
_cfg;
|
|
15
|
+
_logger;
|
|
16
|
+
_server;
|
|
17
|
+
_db;
|
|
18
|
+
_events;
|
|
19
|
+
_offsetStore;
|
|
20
|
+
_reflectionService;
|
|
21
|
+
_commandInterface;
|
|
23
22
|
get cfg() {
|
|
24
23
|
return this._cfg;
|
|
25
24
|
}
|
|
@@ -56,12 +55,6 @@ class WorkerBase {
|
|
|
56
55
|
set events(value) {
|
|
57
56
|
this._events = value;
|
|
58
57
|
}
|
|
59
|
-
get redisClient() {
|
|
60
|
-
return this._redisClient;
|
|
61
|
-
}
|
|
62
|
-
set redisClient(value) {
|
|
63
|
-
this._redisClient = value;
|
|
64
|
-
}
|
|
65
58
|
get commandInterface() {
|
|
66
59
|
return this._commandInterface;
|
|
67
60
|
}
|
|
@@ -74,16 +67,25 @@ class WorkerBase {
|
|
|
74
67
|
set reflectionService(value) {
|
|
75
68
|
this._reflectionService = value;
|
|
76
69
|
}
|
|
70
|
+
services = new Map();
|
|
71
|
+
topics = new Map();
|
|
72
|
+
eventHandlers = new Map();
|
|
73
|
+
jobHandler = {
|
|
74
|
+
handleQueuedJob: (msg, context, config, eventName) => {
|
|
75
|
+
return this.eventHandlers.get(msg?.type)(msg?.data?.payload, context, config, msg?.type).then(() => this.logger?.info(`Job ${msg?.type} done.`), (err) => this.logger?.error(`Job ${msg?.type} failed: ${err}`));
|
|
76
|
+
}
|
|
77
|
+
};
|
|
77
78
|
async bindServices(configs) {
|
|
78
|
-
this.logger?.
|
|
79
|
+
this.logger?.verbose('bind Services');
|
|
79
80
|
const serviceNames = this.cfg.get('serviceNames');
|
|
80
|
-
configs.
|
|
81
|
+
configs.forEach(config => {
|
|
82
|
+
this.logger?.debug('bind Service:', serviceNames?.[config.name] ?? config.name);
|
|
81
83
|
this.services.set(serviceNames?.[config.name] ?? config.name, config.implementation);
|
|
82
84
|
});
|
|
83
85
|
await Promise.all(configs.map(config => this.server.bind(serviceNames?.[config.name] ?? config.name, config)));
|
|
84
86
|
}
|
|
85
87
|
async bindCommandInterface(configs) {
|
|
86
|
-
this.logger?.
|
|
88
|
+
this.logger?.verbose('bind CommandInterface');
|
|
87
89
|
this.commandInterface = [...this.services.values()].find(service => service instanceof chassis_srv_1.CommandInterface);
|
|
88
90
|
if (this.commandInterface) {
|
|
89
91
|
return;
|
|
@@ -93,7 +95,11 @@ class WorkerBase {
|
|
|
93
95
|
this.logger?.warn('CommandInterface not initialized', 'serviceNames:cis for CommandInterface not set!');
|
|
94
96
|
return;
|
|
95
97
|
}
|
|
96
|
-
|
|
98
|
+
const redisConfig = this.cfg.get('redis');
|
|
99
|
+
redisConfig.db = this.cfg.get('redis:db-indexes:db-subject');
|
|
100
|
+
const redisClient = (0, redis_1.createClient)(redisConfig);
|
|
101
|
+
await redisClient.connect();
|
|
102
|
+
this.commandInterface = new chassis_srv_1.CommandInterface(this.server, this.cfg, this.logger, this.events, redisClient);
|
|
97
103
|
this.services.set(serviceName, this.commandInterface);
|
|
98
104
|
configs.push({
|
|
99
105
|
name: serviceName,
|
|
@@ -106,8 +112,17 @@ class WorkerBase {
|
|
|
106
112
|
implementation: this.commandInterface,
|
|
107
113
|
});
|
|
108
114
|
}
|
|
109
|
-
|
|
110
|
-
this.logger?.
|
|
115
|
+
async bindJobHandler() {
|
|
116
|
+
this.logger?.verbose('bind JobHandler');
|
|
117
|
+
const serviceName = this.cfg.get('serviceNames:cis');
|
|
118
|
+
if (!serviceName) {
|
|
119
|
+
this.logger?.warn('JobHandler not initialized', 'serviceNames:jobs for JobHandler not set!');
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.services.set(serviceName, this.jobHandler);
|
|
123
|
+
}
|
|
124
|
+
async bindRefelctions(configs) {
|
|
125
|
+
this.logger?.verbose('bind ReflectionService');
|
|
111
126
|
const serviceName = this.cfg.get('serviceNames:reflection');
|
|
112
127
|
if (!serviceName) {
|
|
113
128
|
this.logger?.warn('ReflectionService not initialized', 'serviceNames:reflection for ReflectionService not set!');
|
|
@@ -125,7 +140,7 @@ class WorkerBase {
|
|
|
125
140
|
});
|
|
126
141
|
}
|
|
127
142
|
async bindHealthCheck() {
|
|
128
|
-
this.logger?.
|
|
143
|
+
this.logger?.verbose('bind HealthCheckService');
|
|
129
144
|
const name = this.cfg.get('serviceNames:health');
|
|
130
145
|
if (!name) {
|
|
131
146
|
this.logger?.warn('HealthCheckService not initialized', 'serviceNames:health for HealthCheckService not set!');
|
|
@@ -153,7 +168,7 @@ class WorkerBase {
|
|
|
153
168
|
};
|
|
154
169
|
}
|
|
155
170
|
async bindEvents() {
|
|
156
|
-
this.logger?.
|
|
171
|
+
this.logger?.verbose('bind Events');
|
|
157
172
|
const serviceNames = this.cfg.get('serviceNames');
|
|
158
173
|
const kafkaCfg = this.cfg.get('events:kafka');
|
|
159
174
|
this.events = new kafka_client_1.Events(kafkaCfg, this.logger);
|
|
@@ -163,14 +178,14 @@ class WorkerBase {
|
|
|
163
178
|
const topicName = value.topic;
|
|
164
179
|
const topic = await this.events.topic(topicName);
|
|
165
180
|
const offsetValue = await this.offsetStore.getOffset(topicName);
|
|
166
|
-
this.logger?.
|
|
181
|
+
this.logger?.verbose('subscribing to topic with offset value', topicName, offsetValue);
|
|
167
182
|
Object.entries(value.events ?? {}).forEach(([eventName, handler]) => {
|
|
168
183
|
const i = handler.lastIndexOf('.');
|
|
169
184
|
const name = handler.slice(0, i);
|
|
170
185
|
const serviceName = serviceNames?.[name] ?? name;
|
|
171
186
|
const functionName = handler.slice(i + 1);
|
|
172
|
-
this.
|
|
173
|
-
topic.on(eventName, this.
|
|
187
|
+
this.eventHandlers.set(eventName, this.bindHandler(serviceName, functionName));
|
|
188
|
+
topic.on(eventName, this.eventHandlers.get(eventName), { startingOffset: offsetValue });
|
|
174
189
|
});
|
|
175
190
|
this.topics.set(key, topic);
|
|
176
191
|
}));
|
|
@@ -190,9 +205,7 @@ class WorkerBase {
|
|
|
190
205
|
}
|
|
191
206
|
this.server = new chassis_srv_1.Server(this.cfg.get('server'), this.logger);
|
|
192
207
|
this.db = await chassis_srv_1.database.get(this.cfg.get('database:main'), this.logger);
|
|
193
|
-
|
|
194
|
-
redisConfig.db = this.cfg.get('redis:db-indexes:db-subject');
|
|
195
|
-
this.redisClient = (0, redis_1.createClient)(redisConfig);
|
|
208
|
+
await this.bindJobHandler();
|
|
196
209
|
await this.bindEvents();
|
|
197
210
|
const serviceConfigs = await this.initServices();
|
|
198
211
|
await this.bindServices(serviceConfigs);
|
|
@@ -200,6 +213,7 @@ class WorkerBase {
|
|
|
200
213
|
await this.bindHealthCheck();
|
|
201
214
|
await this.bindRefelctions(serviceConfigs);
|
|
202
215
|
// start server
|
|
216
|
+
await (0, acs_client_1.initAuthZ)(this.cfg);
|
|
203
217
|
await this.server.start();
|
|
204
218
|
this.logger?.info('Server started successfully');
|
|
205
219
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerBase.js","sourceRoot":"","sources":["../../src/experimental/WorkerBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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("./ClientRegister"), exports);
|
|
18
|
+
__exportStar(require("./ResourceAggregator"), exports);
|
|
19
|
+
__exportStar(require("./ResourceAwaitQueue"), exports);
|
|
20
|
+
__exportStar(require("./ResourceMap"), exports);
|
|
21
|
+
__exportStar(require("./WorkerBase"), exports);
|
|
22
|
+
__exportStar(require("./Pipe"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,uDAAqC;AACrC,uDAAqC;AACrC,gDAA8B;AAC9B,+CAA6B;AAC7B,yCAAuB"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ReadRequest } from './core/interfaces';
|
|
1
2
|
/**
|
|
2
3
|
* convertToObject takes input contained in the proto structure defined in resource_base proto
|
|
3
4
|
* and converts it into Object understandable by the underlying DB implementation in chassis-srv
|
|
@@ -9,11 +10,8 @@ export declare const convertToObject: (input: any, obj?: any, currentOperator?:
|
|
|
9
10
|
/**
|
|
10
11
|
* converts input filters to json object understandable by chassis-srv for AQL conversion
|
|
11
12
|
* @param input input filters object
|
|
12
|
-
* @returns json object understandable by
|
|
13
|
+
* @returns json object understandable by chassis-srv for AQL conversion
|
|
13
14
|
*/
|
|
14
|
-
export declare const toObject: (input:
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
export { WorkerBase } from './core/WorkerBase';
|
|
18
|
-
export { GraphResourcesServiceBase } from './core/GraphResourcesServiceBase';
|
|
19
|
-
export { Filter, FilterOp, FilterOperation, FilterValueType, GraphFilters, GraphFilter, OperatorType, TraversalOptions, } from './core/interfaces';
|
|
15
|
+
export declare const toObject: (input: ReadRequest) => Record<string, any> | Record<string, any>[];
|
|
16
|
+
export * from './core';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA0D,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA6GxG;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,UAAW,GAAG,QAAQ,GAAG,oBAAoB,MAAM,QA0C9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,UAAW,WAAW,gDAa1C,CAAC;AAEF,cAAc,QAAQ,CAAC"}
|