@feathersjs/transport-commons 5.0.0-pre.10 → 5.0.0-pre.16
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/CHANGELOG.md +60 -0
- package/lib/channels/index.d.ts +10 -10
- package/lib/channels/index.js.map +1 -1
- package/lib/channels/mixins.d.ts +2 -2
- package/lib/channels/mixins.js +1 -1
- package/lib/channels/mixins.js.map +1 -1
- package/lib/http.d.ts +3 -5
- package/lib/http.js +6 -11
- package/lib/http.js.map +1 -1
- package/lib/routing/index.d.ts +9 -4
- package/lib/routing/index.js +15 -15
- package/lib/routing/index.js.map +1 -1
- package/lib/routing/router.d.ts +1 -1
- package/package.json +10 -9
- package/src/channels/index.ts +11 -11
- package/src/channels/mixins.ts +3 -3
- package/src/http.ts +7 -14
- package/src/routing/index.ts +28 -23
- package/src/routing/router.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,66 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **express, koa:** make transports similar ([#2486](https://github.com/feathersjs/feathers/issues/2486)) ([26aa937](https://github.com/feathersjs/feathers/commit/26aa937c114fb8596dfefc599b1f53cead69c159))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **core:** add `context.http` and move `statusCode` there ([#2496](https://github.com/feathersjs/feathers/issues/2496)) ([b701bf7](https://github.com/feathersjs/feathers/commit/b701bf77fb83048aa1dffa492b3d77dd53f7b72b))
|
|
28
|
+
* **transport-commons:** Ability to register routes with custom params ([#2482](https://github.com/feathersjs/feathers/issues/2482)) ([497990a](https://github.com/feathersjs/feathers/commit/497990ae4a980e5a52a1f0f932db12cd0e6e254a))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
|
|
35
|
+
|
|
36
|
+
**Note:** Version bump only for package @feathersjs/transport-commons
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
|
|
43
|
+
|
|
44
|
+
**Note:** Version bump only for package @feathersjs/transport-commons
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
|
|
51
|
+
|
|
52
|
+
**Note:** Version bump only for package @feathersjs/transport-commons
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
|
|
59
|
+
|
|
60
|
+
**Note:** Version bump only for package @feathersjs/transport-commons
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
6
66
|
# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
|
|
7
67
|
|
|
8
68
|
**Note:** Version bump only for package @feathersjs/transport-commons
|
package/lib/channels/index.d.ts
CHANGED
|
@@ -5,19 +5,19 @@ import { keys, Event, Publisher } from './mixins';
|
|
|
5
5
|
import EventEmitter from 'events';
|
|
6
6
|
declare module '@feathersjs/feathers/lib/declarations' {
|
|
7
7
|
interface ServiceAddons<A, S> extends EventEmitter {
|
|
8
|
-
publish(publisher: Publisher<ServiceGenericType<S
|
|
9
|
-
publish(event: Event, publisher: Publisher<ServiceGenericType<S
|
|
10
|
-
registerPublisher(publisher: Publisher<ServiceGenericType<S
|
|
11
|
-
registerPublisher(event: Event, publisher: Publisher<ServiceGenericType<S
|
|
8
|
+
publish(publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
9
|
+
publish(event: Event, publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
10
|
+
registerPublisher(publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
11
|
+
registerPublisher(event: Event, publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
12
12
|
}
|
|
13
|
-
interface Application<
|
|
13
|
+
interface Application<Services, Settings> {
|
|
14
14
|
channels: string[];
|
|
15
|
-
channel(name: string[]): Channel;
|
|
15
|
+
channel(name: string | string[]): Channel;
|
|
16
16
|
channel(...names: string[]): Channel;
|
|
17
|
-
publish<T>(publisher: Publisher<T>): this;
|
|
18
|
-
publish<T>(event: Event, publisher: Publisher<T>): this;
|
|
19
|
-
registerPublisher<T>(publisher: Publisher<T>): this;
|
|
20
|
-
registerPublisher<T>(event: Event, publisher: Publisher<T>): this;
|
|
17
|
+
publish<T>(publisher: Publisher<T, this>): this;
|
|
18
|
+
publish<T>(event: Event, publisher: Publisher<T, this>): this;
|
|
19
|
+
registerPublisher<T>(publisher: Publisher<T, this>): this;
|
|
20
|
+
registerPublisher<T>(event: Event, publisher: Publisher<T, this>): this;
|
|
21
21
|
}
|
|
22
22
|
interface Params {
|
|
23
23
|
connection?: RealTimeConnection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":";;;AAAA,mDAAuF;AACvF,iDAAkD;AAClD,mCAAoD;AAEpD,iDAAqD;AACrD,qCAA4F;AAiCnF,qFAjC4B,aAAI,OAiC5B;AA9Bb,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,wCAAwC,CAAC,CAAC;AACpE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAI,CAAC;AA+B1B,SAAgB,QAAQ;IACtB,OAAO,CAAC,GAAgB,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;YAC1E,OAAO;SACR;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAA,qBAAY,GAAE,EAAE,IAAA,qBAAY,GAAE,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE;YACrC,GAAG;gBACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"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"}
|
package/lib/channels/mixins.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HookContext } from '@feathersjs/feathers';
|
|
1
|
+
import { Application, HookContext } from '@feathersjs/feathers';
|
|
2
2
|
import { Channel } from './channel/base';
|
|
3
3
|
declare const PUBLISHERS: unique symbol;
|
|
4
4
|
declare const CHANNELS: unique symbol;
|
|
@@ -16,7 +16,7 @@ export interface ChannelMixin {
|
|
|
16
16
|
}
|
|
17
17
|
export declare function channelMixin(): ChannelMixin;
|
|
18
18
|
export declare type Event = string | (typeof ALL_EVENTS);
|
|
19
|
-
export declare type Publisher<T = any> = (data: T, context: HookContext<
|
|
19
|
+
export declare type Publisher<T = any, A = Application, S = any> = (data: T, context: HookContext<A, S>) => Channel | Channel[] | void | Promise<Channel | Channel[] | void>;
|
|
20
20
|
export interface PublishMixin<T = any> {
|
|
21
21
|
[PUBLISHERS]: {
|
|
22
22
|
[ALL_EVENTS]?: Publisher<T>;
|
package/lib/channels/mixins.js
CHANGED
|
@@ -6,7 +6,7 @@ const feathers_1 = require("@feathersjs/feathers");
|
|
|
6
6
|
const commons_1 = require("@feathersjs/commons");
|
|
7
7
|
const base_1 = require("./channel/base");
|
|
8
8
|
const combined_1 = require("./channel/combined");
|
|
9
|
-
const debug = (0, commons_1.createDebug)('@feathersjs/transport-commons
|
|
9
|
+
const debug = (0, commons_1.createDebug)('@feathersjs/transport-commons/channels/mixins');
|
|
10
10
|
const PUBLISHERS = Symbol('@feathersjs/transport-commons/publishers');
|
|
11
11
|
const CHANNELS = Symbol('@feathersjs/transport-commons/channels');
|
|
12
12
|
const ALL_EVENTS = Symbol('@feathersjs/transport-commons/all-events');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/channels/mixins.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/channels/mixins.ts"],"names":[],"mappings":"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"}
|
package/lib/http.d.ts
CHANGED
|
@@ -12,9 +12,9 @@ export declare const statusCodes: {
|
|
|
12
12
|
success: number;
|
|
13
13
|
};
|
|
14
14
|
export declare const knownMethods: {
|
|
15
|
-
[key: string]:
|
|
15
|
+
[key: string]: string;
|
|
16
16
|
};
|
|
17
|
-
export declare function getServiceMethod(_httpMethod: string, id: unknown, headerOverride?: string):
|
|
17
|
+
export declare function getServiceMethod(_httpMethod: string, id: unknown, headerOverride?: string): string;
|
|
18
18
|
export declare const argumentsFor: {
|
|
19
19
|
get: ({ id, params }: ServiceParams) => (Params | NullableId)[];
|
|
20
20
|
find: ({ params }: ServiceParams) => Params[];
|
|
@@ -24,7 +24,5 @@ export declare const argumentsFor: {
|
|
|
24
24
|
remove: ({ id, params }: ServiceParams) => (Params | NullableId)[];
|
|
25
25
|
default: ({ data, params }: ServiceParams) => any[];
|
|
26
26
|
};
|
|
27
|
-
export declare function getData(context: HookContext
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
}): any;
|
|
27
|
+
export declare function getData(context: HookContext): any;
|
|
30
28
|
export declare function getStatusCode(context: HookContext, data?: any): number;
|
package/lib/http.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getStatusCode = exports.getData = exports.argumentsFor = exports.getServiceMethod = exports.knownMethods = exports.statusCodes = exports.METHOD_HEADER = void 0;
|
|
4
4
|
const lib_1 = require("@feathersjs/errors/lib");
|
|
5
|
-
const hooks_1 = require("@feathersjs/hooks");
|
|
6
5
|
exports.METHOD_HEADER = 'x-service-method';
|
|
7
6
|
exports.statusCodes = {
|
|
8
7
|
created: 201,
|
|
@@ -41,22 +40,18 @@ exports.argumentsFor = {
|
|
|
41
40
|
default: ({ data, params }) => [data, params]
|
|
42
41
|
};
|
|
43
42
|
function getData(context) {
|
|
44
|
-
if (!(context instanceof hooks_1.BaseHookContext)) {
|
|
45
|
-
return context;
|
|
46
|
-
}
|
|
47
43
|
return context.dispatch !== undefined
|
|
48
44
|
? context.dispatch
|
|
49
45
|
: context.result;
|
|
50
46
|
}
|
|
51
47
|
exports.getData = getData;
|
|
52
48
|
function getStatusCode(context, data) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
49
|
+
var _a;
|
|
50
|
+
if ((_a = context.http) === null || _a === void 0 ? void 0 : _a.statusCode) {
|
|
51
|
+
return context.http.statusCode;
|
|
52
|
+
}
|
|
53
|
+
if (context.method === 'create') {
|
|
54
|
+
return exports.statusCodes.created;
|
|
60
55
|
}
|
|
61
56
|
if (!data) {
|
|
62
57
|
return exports.statusCodes.noContent;
|
package/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";;;AAAA,gDAA0D;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";;;AAAA,gDAA0D;AAG7C,QAAA,aAAa,GAAG,kBAAkB,CAAC;AAQnC,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,OAAO,EAAE,GAAG;CACb,CAAC;AAEW,QAAA,YAAY,GAA8B;IACrD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,SAAgB,gBAAgB,CAAE,WAAmB,EAAE,EAAW,EAAE,cAAuB;IACzF,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE7C,IAAI,UAAU,KAAK,MAAM,IAAI,cAAc,EAAE;QAC3C,OAAO,cAAc,CAAC;KACvB;IAED,MAAM,YAAY,GAAG,oBAAY,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;IAED,IAAI,UAAU,KAAK,KAAK,EAAE;QACxB,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;KACrC;IAED,MAAM,IAAI,sBAAgB,CAAC,UAAU,WAAW,cAAc,CAAC,CAAC;AAClE,CAAC;AAlBD,4CAkBC;AAEY,QAAA,YAAY,GAAG;IAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,EAAE,EAAE,MAAM,CAAE;IACtD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,MAAM,CAAE;IAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,IAAI,EAAE,MAAM,CAAE;IAC7D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAE;IACrE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAE;IACpE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,EAAE,EAAE,MAAM,CAAE;IACzD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAiB,EAAE,EAAE,CAAC,CAAE,IAAI,EAAE,MAAM,CAAE;CAC/D,CAAA;AAED,SAAgB,OAAO,CAAE,OAAoB;IAC3C,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS;QACnC,CAAC,CAAC,OAAO,CAAC,QAAQ;QAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACrB,CAAC;AAJD,0BAIC;AAED,SAAgB,aAAa,CAAE,OAAoB,EAAE,IAAU;;IAC7D,IAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,UAAU,EAAE;QAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;KAChC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;QAC/B,OAAO,mBAAW,CAAC,OAAO,CAAC;KAC5B;IAED,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,mBAAW,CAAC,SAAS,CAAC;KAC9B;IAED,OAAO,mBAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAdD,sCAcC"}
|
package/lib/routing/index.d.ts
CHANGED
|
@@ -2,13 +2,18 @@ import { Application } from '@feathersjs/feathers';
|
|
|
2
2
|
import { Router } from './router';
|
|
3
3
|
declare module '@feathersjs/feathers/lib/declarations' {
|
|
4
4
|
interface RouteLookup {
|
|
5
|
-
service: Service
|
|
5
|
+
service: Service;
|
|
6
6
|
params: {
|
|
7
|
-
[key: string]:
|
|
7
|
+
[key: string]: any;
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
interface Application<
|
|
11
|
-
routes: Router<
|
|
10
|
+
interface Application<Services, Settings> {
|
|
11
|
+
routes: Router<{
|
|
12
|
+
service: Service;
|
|
13
|
+
params?: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
12
17
|
lookup(path: string): RouteLookup;
|
|
13
18
|
}
|
|
14
19
|
}
|
package/lib/routing/index.js
CHANGED
|
@@ -13,26 +13,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.routing = void 0;
|
|
14
14
|
const router_1 = require("./router");
|
|
15
15
|
__exportStar(require("./router"), exports);
|
|
16
|
+
const lookup = function (path) {
|
|
17
|
+
const result = this.routes.lookup(path);
|
|
18
|
+
if (result === null) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const { params: colonParams, data: { service, params: dataParams } } = result;
|
|
22
|
+
const params = dataParams ? { ...dataParams, ...colonParams } : colonParams;
|
|
23
|
+
return { service, params };
|
|
24
|
+
};
|
|
16
25
|
const routing = () => (app) => {
|
|
17
26
|
if (typeof app.lookup === 'function') {
|
|
18
27
|
return;
|
|
19
28
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
routes,
|
|
23
|
-
lookup(path) {
|
|
24
|
-
const result = this.routes.lookup(path);
|
|
25
|
-
if (result !== null) {
|
|
26
|
-
const { params, data: service } = result;
|
|
27
|
-
return { params, service };
|
|
28
|
-
}
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
29
|
+
app.routes = new router_1.Router();
|
|
30
|
+
app.lookup = lookup;
|
|
32
31
|
// Add a mixin that registers a service on the router
|
|
33
|
-
app.mixins.push((service, path) => {
|
|
34
|
-
|
|
35
|
-
app.routes.insert(
|
|
32
|
+
app.mixins.push((service, path, options) => {
|
|
33
|
+
const { routeParams: params = {} } = options;
|
|
34
|
+
app.routes.insert(path, { service, params });
|
|
35
|
+
app.routes.insert(`${path}/:__id`, { service, params });
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
38
|
exports.routing = routing;
|
package/lib/routing/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,qCAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,qCAAkC;AAiBlC,2CAAyB;AAEzB,MAAM,MAAM,GAAG,UAA6B,IAAY;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC;IAE9E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,GAAgB,EAAE,EAAE;IAChD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;QACpC,OAAO;KACR;IAED,GAAG,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAC1B,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAEpB,qDAAqD;IACrD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,IAAY,EAAE,OAAuB,EAAE,EAAE;QAC1E,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE7C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,OAAO,WAelB"}
|
package/lib/routing/router.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare class RouteNode<T = any> {
|
|
|
18
18
|
insert(path: string[], data: T): RouteNode<T>;
|
|
19
19
|
lookup(path: string[], info: LookupData): LookupResult<T> | null;
|
|
20
20
|
}
|
|
21
|
-
export declare class Router<T> {
|
|
21
|
+
export declare class Router<T = any> {
|
|
22
22
|
root: RouteNode<T>;
|
|
23
23
|
constructor(root?: RouteNode<T>);
|
|
24
24
|
getPath(path: string): string[];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feathersjs/transport-commons",
|
|
3
3
|
"description": "Shared functionality for websocket providers",
|
|
4
|
-
"version": "5.0.0-pre.
|
|
4
|
+
"version": "5.0.0-pre.16",
|
|
5
5
|
"homepage": "https://feathersjs.com",
|
|
6
6
|
"main": "lib/",
|
|
7
7
|
"types": "lib/",
|
|
@@ -52,18 +52,19 @@
|
|
|
52
52
|
"*.js"
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@feathersjs/commons": "^5.0.0-pre.
|
|
56
|
-
"@feathersjs/errors": "^5.0.0-pre.
|
|
55
|
+
"@feathersjs/commons": "^5.0.0-pre.16",
|
|
56
|
+
"@feathersjs/errors": "^5.0.0-pre.16",
|
|
57
|
+
"@feathersjs/feathers": "^5.0.0-pre.16",
|
|
57
58
|
"lodash": "^4.17.21"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
|
60
|
-
"@
|
|
61
|
+
"@types/lodash": "^4.14.178",
|
|
61
62
|
"@types/mocha": "^9.0.0",
|
|
62
|
-
"@types/node": "^
|
|
63
|
-
"mocha": "^9.1.
|
|
63
|
+
"@types/node": "^17.0.5",
|
|
64
|
+
"mocha": "^9.1.3",
|
|
64
65
|
"shx": "^0.3.3",
|
|
65
|
-
"ts-node": "^10.
|
|
66
|
-
"typescript": "^4.4
|
|
66
|
+
"ts-node": "^10.4.0",
|
|
67
|
+
"typescript": "^4.5.4"
|
|
67
68
|
},
|
|
68
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "f0cd227a82d159b528193bd33747c97684a48773"
|
|
69
70
|
}
|
package/src/channels/index.ts
CHANGED
|
@@ -11,24 +11,24 @@ const { CHANNELS } = keys;
|
|
|
11
11
|
|
|
12
12
|
declare module '@feathersjs/feathers/lib/declarations' {
|
|
13
13
|
interface ServiceAddons<A, S> extends EventEmitter { // eslint-disable-line
|
|
14
|
-
publish (publisher: Publisher<ServiceGenericType<S
|
|
15
|
-
publish (event: Event, publisher: Publisher<ServiceGenericType<S
|
|
14
|
+
publish (publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
15
|
+
publish (event: Event, publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
16
16
|
|
|
17
|
-
registerPublisher (publisher: Publisher<ServiceGenericType<S
|
|
18
|
-
registerPublisher (event: Event, publisher: Publisher<ServiceGenericType<S
|
|
17
|
+
registerPublisher (publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
18
|
+
registerPublisher (event: Event, publisher: Publisher<ServiceGenericType<S>, A, this>): this;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
interface Application<
|
|
21
|
+
interface Application<Services, Settings> { // eslint-disable-line
|
|
22
22
|
channels: string[];
|
|
23
23
|
|
|
24
|
-
channel (name: string[]): Channel;
|
|
24
|
+
channel (name: string | string[]): Channel;
|
|
25
25
|
channel (...names: string[]): Channel;
|
|
26
26
|
|
|
27
|
-
publish<T> (publisher: Publisher<T>): this;
|
|
28
|
-
publish<T> (event: Event, publisher: Publisher<T>): this;
|
|
27
|
+
publish<T> (publisher: Publisher<T, this>): this;
|
|
28
|
+
publish<T> (event: Event, publisher: Publisher<T, this>): this;
|
|
29
29
|
|
|
30
|
-
registerPublisher<T> (publisher: Publisher<T>): this;
|
|
31
|
-
registerPublisher<T> (event: Event, publisher: Publisher<T>): this;
|
|
30
|
+
registerPublisher<T> (publisher: Publisher<T, this>): this;
|
|
31
|
+
registerPublisher<T> (event: Event, publisher: Publisher<T, this>): this;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
interface Params {
|
|
@@ -51,7 +51,7 @@ export function channels () {
|
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
-
app.mixins.push((service: FeathersService
|
|
54
|
+
app.mixins.push((service: FeathersService, path: string) => {
|
|
55
55
|
const { serviceEvents } = getServiceOptions(service);
|
|
56
56
|
|
|
57
57
|
if (typeof service.publish === 'function') {
|
package/src/channels/mixins.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
|
|
2
|
-
import { HookContext, getServiceOptions } from '@feathersjs/feathers';
|
|
2
|
+
import { Application, HookContext, getServiceOptions } from '@feathersjs/feathers';
|
|
3
3
|
import { createDebug } from '@feathersjs/commons';
|
|
4
4
|
import { Channel } from './channel/base';
|
|
5
5
|
import { CombinedChannel } from './channel/combined';
|
|
6
6
|
|
|
7
|
-
const debug = createDebug('@feathersjs/transport-commons
|
|
7
|
+
const debug = createDebug('@feathersjs/transport-commons/channels/mixins');
|
|
8
8
|
const PUBLISHERS = Symbol('@feathersjs/transport-commons/publishers');
|
|
9
9
|
const CHANNELS = Symbol('@feathersjs/transport-commons/channels');
|
|
10
10
|
const ALL_EVENTS = Symbol('@feathersjs/transport-commons/all-events');
|
|
@@ -63,7 +63,7 @@ export function channelMixin () {
|
|
|
63
63
|
|
|
64
64
|
export type Event = string|(typeof ALL_EVENTS);
|
|
65
65
|
|
|
66
|
-
export type Publisher<T = any> = (data: T, context: HookContext<
|
|
66
|
+
export type Publisher<T = any, A = Application, S = any> = (data: T, context: HookContext<A, S>) => Channel | Channel[] | void | Promise<Channel | Channel[] | void>;
|
|
67
67
|
|
|
68
68
|
export interface PublishMixin<T = any> {
|
|
69
69
|
[PUBLISHERS]: { [ALL_EVENTS]?: Publisher<T>, [key: string]: Publisher<T> };
|
package/src/http.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { MethodNotAllowed } from '@feathersjs/errors/lib';
|
|
2
2
|
import { HookContext, NullableId, Params } from '@feathersjs/feathers';
|
|
3
|
-
import { BaseHookContext } from '@feathersjs/hooks';
|
|
4
3
|
|
|
5
4
|
export const METHOD_HEADER = 'x-service-method';
|
|
6
5
|
|
|
@@ -17,7 +16,7 @@ export const statusCodes = {
|
|
|
17
16
|
success: 200
|
|
18
17
|
};
|
|
19
18
|
|
|
20
|
-
export const knownMethods: { [key: string]:
|
|
19
|
+
export const knownMethods: { [key: string]: string } = {
|
|
21
20
|
post: 'create',
|
|
22
21
|
patch: 'patch',
|
|
23
22
|
put: 'update',
|
|
@@ -54,25 +53,19 @@ export const argumentsFor = {
|
|
|
54
53
|
default: ({ data, params }: ServiceParams) => [ data, params ]
|
|
55
54
|
}
|
|
56
55
|
|
|
57
|
-
export function getData (context: HookContext
|
|
58
|
-
if (!(context instanceof BaseHookContext)) {
|
|
59
|
-
return context;
|
|
60
|
-
}
|
|
61
|
-
|
|
56
|
+
export function getData (context: HookContext) {
|
|
62
57
|
return context.dispatch !== undefined
|
|
63
58
|
? context.dispatch
|
|
64
59
|
: context.result;
|
|
65
60
|
}
|
|
66
61
|
|
|
67
62
|
export function getStatusCode (context: HookContext, data?: any) {
|
|
68
|
-
if (context
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
63
|
+
if (context.http?.statusCode) {
|
|
64
|
+
return context.http.statusCode;
|
|
65
|
+
}
|
|
72
66
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
67
|
+
if (context.method === 'create') {
|
|
68
|
+
return statusCodes.created;
|
|
76
69
|
}
|
|
77
70
|
|
|
78
71
|
if (!data) {
|
package/src/routing/index.ts
CHANGED
|
@@ -1,45 +1,50 @@
|
|
|
1
|
-
import { Application, Service } from '@feathersjs/feathers';
|
|
1
|
+
import { Application, Service, ServiceOptions } from '@feathersjs/feathers';
|
|
2
2
|
import { Router } from './router';
|
|
3
3
|
|
|
4
4
|
declare module '@feathersjs/feathers/lib/declarations' {
|
|
5
5
|
interface RouteLookup {
|
|
6
|
-
service: Service
|
|
7
|
-
params: { [key: string]:
|
|
6
|
+
service: Service,
|
|
7
|
+
params: { [key: string]: any }
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
interface Application<
|
|
11
|
-
routes: Router<
|
|
10
|
+
interface Application<Services, Settings> { // eslint-disable-line
|
|
11
|
+
routes: Router<{
|
|
12
|
+
service: Service,
|
|
13
|
+
params?: { [key: string]: any }
|
|
14
|
+
}>;
|
|
12
15
|
lookup (path: string): RouteLookup;
|
|
13
16
|
}
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
export * from './router';
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
const lookup = function (this: Application, path: string) {
|
|
22
|
+
const result = this.routes.lookup(path);
|
|
23
|
+
|
|
24
|
+
if (result === null) {
|
|
25
|
+
return null;
|
|
21
26
|
}
|
|
22
27
|
|
|
23
|
-
const
|
|
28
|
+
const { params: colonParams, data: { service, params: dataParams } } = result;
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
routes,
|
|
27
|
-
lookup (this: Application, path: string) {
|
|
28
|
-
const result = this.routes.lookup(path);
|
|
30
|
+
const params = dataParams ? { ...dataParams, ...colonParams } : colonParams;
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
return { service, params };
|
|
33
|
+
};
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
export const routing = () => (app: Application) => {
|
|
36
|
+
if (typeof app.lookup === 'function') {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
40
|
+
app.routes = new Router();
|
|
41
|
+
app.lookup = lookup;
|
|
39
42
|
|
|
40
43
|
// Add a mixin that registers a service on the router
|
|
41
|
-
app.mixins.push((service: Service
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
app.mixins.push((service: Service, path: string, options: ServiceOptions) => {
|
|
45
|
+
const { routeParams: params = {} } = options;
|
|
46
|
+
|
|
47
|
+
app.routes.insert(path, { service, params });
|
|
48
|
+
app.routes.insert(`${path}/:__id`, { service, params });
|
|
44
49
|
});
|
|
45
50
|
};
|