@livequery/nestjs 2.0.1 → 2.0.2
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.
|
@@ -3,11 +3,15 @@ import { LivequeryRequest, WebsocketSyncPayload } from "@livequery/types";
|
|
|
3
3
|
export type LivequeryDatasourceOptions<T> = Array<T & {
|
|
4
4
|
refs: string[];
|
|
5
5
|
}>;
|
|
6
|
-
export type LivequeryDatasource<Options = {}, StreamPayload = {},
|
|
7
|
-
init(routes: LivequeryDatasourceOptions<Options>,
|
|
6
|
+
export type LivequeryDatasource<Options = {}, StreamPayload = {}, Connection = any> = {
|
|
7
|
+
init(routes: LivequeryDatasourceOptions<Options>, connections: {
|
|
8
|
+
[name: string]: Connection;
|
|
9
|
+
}): Promise<void>;
|
|
8
10
|
query(query: LivequeryRequest): any;
|
|
9
11
|
enable_realtime?: (stream: Observable<StreamPayload>) => Observable<WebsocketSyncPayload>;
|
|
10
12
|
};
|
|
11
|
-
export declare const createDatasourceMapper: <Options, StreamPayload,
|
|
12
|
-
new (): LivequeryDatasource<Options, StreamPayload,
|
|
13
|
-
}, inject_tokens
|
|
13
|
+
export declare const createDatasourceMapper: <Options, StreamPayload, Connection>(factory: {
|
|
14
|
+
new (): LivequeryDatasource<Options, StreamPayload, Connection>;
|
|
15
|
+
}, inject_tokens: {
|
|
16
|
+
[connection_name: string]: any;
|
|
17
|
+
}, ...observables: Array<Observable<StreamPayload>>) => [(options: Options) => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void, import("@nestjs/common").FactoryProvider<any>];
|
|
@@ -4,7 +4,7 @@ import { UseLivequeryInterceptor } from "../LivequeryInterceptor.js";
|
|
|
4
4
|
import { PathHelper } from "./PathHelper.js";
|
|
5
5
|
import { merge } from "rxjs";
|
|
6
6
|
import { LivequeryWebsocketSync } from "../LivequeryWebsocketSync.js";
|
|
7
|
-
export const createDatasourceMapper = (factory, inject_tokens
|
|
7
|
+
export const createDatasourceMapper = (factory, inject_tokens, ...observables) => {
|
|
8
8
|
const observable = merge(...observables);
|
|
9
9
|
const RouteConfigList = [];
|
|
10
10
|
const decorator = (options) => applyDecorators((target, method) => RouteConfigList.push({ target, method, options }), UseLivequeryInterceptor(), UseInterceptors(LivequeryDatasourceInterceptors), (_target, _method, descriptor) => {
|
|
@@ -18,10 +18,11 @@ export const createDatasourceMapper = (factory, inject_tokens = [], ...observabl
|
|
|
18
18
|
});
|
|
19
19
|
const provider = {
|
|
20
20
|
provide: factory,
|
|
21
|
-
inject: [{ token: LivequeryWebsocketSync, optional: true }, ...inject_tokens],
|
|
21
|
+
inject: [{ token: LivequeryWebsocketSync, optional: true }, ...Object.values(inject_tokens)],
|
|
22
22
|
useFactory: async (ws, ...injects) => {
|
|
23
23
|
const ds = new factory();
|
|
24
|
-
|
|
24
|
+
const map = Object.keys(inject_tokens).reduce((acc, key, i) => ({ ...acc, [key]: injects[i] }), {});
|
|
25
|
+
await ds.init(getDatasourceMetadatas(), map);
|
|
25
26
|
ws && ds.enable_realtime?.(observable).subscribe(change => ws.broadcast(change));
|
|
26
27
|
return ds;
|
|
27
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDatasourceMapper.js","sourceRoot":"","sources":["../../../src/helpers/createDatasourceMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAY,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAc,MAAM,MAAM,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"createDatasourceMapper.js","sourceRoot":"","sources":["../../../src/helpers/createDatasourceMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAY,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAc,MAAM,MAAM,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AActE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,OAA2E,EAC3E,aAAiD,EACjD,GAAG,WAA6C,EAClD,EAAE;IAEA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,CAAA;IAExC,MAAM,eAAe,GAA6D,EAAE,CAAC;IAErF,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,eAAe,CACnD,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EACrE,uBAAuB,EAAE,EACzB,eAAe,CAAC,+BAA+B,CAAC,EAChD,CAAC,OAAO,EAAE,OAAO,EAAE,UAA8B,EAAE,EAAE;QACjD,OAAO,CAAC,cAAc,CAAC,2BAA2B,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IAClF,CAAC,CACJ,CAAA;IAID,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC9D,OAAO;YACH,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAY;YACpC,IAAI,EAAE,UAAU,CAAC,IAAI,CACjB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EACtD,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAC5D,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;SACxC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAa;QACvB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5F,UAAU,EAAE,KAAK,EAAE,EAA0B,EAAE,GAAI,OAAO,EAAE,EAAE;YAC1D,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAA;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;YACnG,MAAM,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,GAAG,CAAC,CAAA;YAC5C,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,CAC5C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CACjC,CAAA;YACD,OAAO,EAAE,CAAA;QACb,CAAC;KACJ,CAAA;IAGD,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAwC,CAAA;AACvE,CAAC,CAAA"}
|
package/package.json
CHANGED