@livequery/nestjs 1.0.30 → 1.0.31
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/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -14,3 +14,4 @@ __exportStar(require("./src/LivequeryRequest"), exports);
|
|
|
14
14
|
__exportStar(require("./src/LivequeryInterceptor"), exports);
|
|
15
15
|
__exportStar(require("./src/LivequeryWebsocketSync"), exports);
|
|
16
16
|
__exportStar(require("./src/PathHelper"), exports);
|
|
17
|
+
__exportStar(require("./src/UseDatasource"), exports);
|
|
@@ -5,8 +5,6 @@ export declare class LivequeryInterceptor implements NestInterceptor {
|
|
|
5
5
|
constructor(LivequeryWebsocketSync?: LivequeryWebsocketSync);
|
|
6
6
|
intercept(context: ExecutionContext, next: CallHandler): import("rxjs").Observable<{
|
|
7
7
|
data: any;
|
|
8
|
-
} | {
|
|
9
|
-
error: any;
|
|
10
8
|
}>;
|
|
11
9
|
}
|
|
12
10
|
export declare const UseLivequeryInterceptor: () => MethodDecorator & ClassDecorator;
|
|
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.UseLivequeryInterceptor = exports.LivequeryInterceptor = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const LivequeryWebsocketSync_1 = require("./LivequeryWebsocketSync");
|
|
18
|
-
const rxjs_1 = require("rxjs");
|
|
19
18
|
const operators_1 = require("rxjs/operators");
|
|
20
19
|
const LivequeryRequest_1 = require("./LivequeryRequest");
|
|
21
20
|
const PathHelper_1 = require("./PathHelper");
|
|
@@ -60,7 +59,7 @@ let LivequeryInterceptor = class LivequeryInterceptor {
|
|
|
60
59
|
};
|
|
61
60
|
const socket_id = req.headers.socket_id;
|
|
62
61
|
socket_id && this.LivequeryWebsocketSync?.listen(socket_id, collection_ref, doc_id);
|
|
63
|
-
return next.handle().pipe((0, operators_1.map)(data => ({ data }))
|
|
62
|
+
return next.handle().pipe((0, operators_1.map)(data => ({ data })));
|
|
64
63
|
}
|
|
65
64
|
};
|
|
66
65
|
LivequeryInterceptor = __decorate([
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { LivequeryRequest } from "@livequery/types";
|
|
2
|
+
import { CallHandler, ExecutionContext } from "@nestjs/common";
|
|
3
|
+
import { ModuleRef, Reflector } from "@nestjs/core";
|
|
4
|
+
declare type Datasource = {
|
|
5
|
+
query(req: LivequeryRequest): Promise<any>;
|
|
6
|
+
};
|
|
7
|
+
export declare class UseDatasource {
|
|
8
|
+
private moduleRef;
|
|
9
|
+
private reflector;
|
|
10
|
+
static readonly UseDatasourceMetadata: unique symbol;
|
|
11
|
+
private static ControllerList;
|
|
12
|
+
constructor(moduleRef: ModuleRef, reflector: Reflector);
|
|
13
|
+
static createDatasourceMapper<T>(factory: {
|
|
14
|
+
new (): Datasource;
|
|
15
|
+
}): [(options: T) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void, () => {
|
|
16
|
+
paths: {
|
|
17
|
+
ref: string;
|
|
18
|
+
schema_ref: string;
|
|
19
|
+
is_collection: boolean;
|
|
20
|
+
doc_id: string;
|
|
21
|
+
collection_ref: string;
|
|
22
|
+
}[];
|
|
23
|
+
options: T;
|
|
24
|
+
}[]];
|
|
25
|
+
intercept(context: ExecutionContext, next: CallHandler): Promise<import("rxjs").Observable<any>>;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var UseDatasource_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.UseDatasource = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const core_1 = require("@nestjs/core");
|
|
16
|
+
const LivequeryInterceptor_1 = require("./LivequeryInterceptor");
|
|
17
|
+
const LivequeryRequest_1 = require("./LivequeryRequest");
|
|
18
|
+
const PathHelper_1 = require("./PathHelper");
|
|
19
|
+
const rxjs_1 = require("rxjs");
|
|
20
|
+
let UseDatasource = UseDatasource_1 = class UseDatasource {
|
|
21
|
+
moduleRef;
|
|
22
|
+
reflector;
|
|
23
|
+
static UseDatasourceMetadata = Symbol();
|
|
24
|
+
static ControllerList = [];
|
|
25
|
+
constructor(moduleRef, reflector) {
|
|
26
|
+
this.moduleRef = moduleRef;
|
|
27
|
+
this.reflector = reflector;
|
|
28
|
+
}
|
|
29
|
+
static createDatasourceMapper(factory) {
|
|
30
|
+
const decorator = (options) => (0, common_1.applyDecorators)((0, common_1.UseInterceptors)(LivequeryInterceptor_1.LivequeryInterceptor), (0, common_1.UseInterceptors)(this), (0, common_1.SetMetadata)(this.UseDatasourceMetadata, { options, factory }), (target, method) => this.ControllerList.push({
|
|
31
|
+
target: target.constructor,
|
|
32
|
+
method,
|
|
33
|
+
options
|
|
34
|
+
}));
|
|
35
|
+
const list = () => this.ControllerList.map(({ method, target, options }) => {
|
|
36
|
+
const paths = PathHelper_1.PathHelper.nestjsPathResolver(target, method).map(path => {
|
|
37
|
+
return PathHelper_1.PathHelper.livequeryPathExtractor(path);
|
|
38
|
+
});
|
|
39
|
+
return { paths, options: options };
|
|
40
|
+
}).flat(2);
|
|
41
|
+
return [decorator, list];
|
|
42
|
+
}
|
|
43
|
+
async intercept(context, next) {
|
|
44
|
+
const request = context.switchToHttp().getRequest();
|
|
45
|
+
const livequery = request[LivequeryRequest_1.LivequeryRequestKey];
|
|
46
|
+
const { factory } = this.reflector.get(UseDatasource_1.UseDatasourceMetadata, context.getHandler());
|
|
47
|
+
const ds = await this.moduleRef.get(factory);
|
|
48
|
+
const result = await ds.query(livequery);
|
|
49
|
+
return next.handle().pipe((0, rxjs_1.map)(data => data ?? result));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
UseDatasource = UseDatasource_1 = __decorate([
|
|
53
|
+
(0, common_1.Injectable)(),
|
|
54
|
+
__metadata("design:paramtypes", [core_1.ModuleRef,
|
|
55
|
+
core_1.Reflector])
|
|
56
|
+
], UseDatasource);
|
|
57
|
+
exports.UseDatasource = UseDatasource;
|