@feathersjs/transport-commons 5.0.0-pre.14 → 5.0.0-pre.15

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 CHANGED
@@ -3,6 +3,23 @@
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.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
12
+
13
+
14
+ ### Features
15
+
16
+ * **core:** add `context.http` and move `statusCode` there ([#2496](https://github.com/feathersjs/feathers/issues/2496)) ([b701bf7](https://github.com/feathersjs/feathers/commit/b701bf77fb83048aa1dffa492b3d77dd53f7b72b))
17
+ * **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))
18
+
19
+
20
+
21
+
22
+
6
23
  # [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
7
24
 
8
25
  **Note:** Version bump only for package @feathersjs/transport-commons
@@ -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>>): this;
9
- publish(event: Event, publisher: Publisher<ServiceGenericType<S>>): this;
10
- registerPublisher(publisher: Publisher<ServiceGenericType<S>>): this;
11
- registerPublisher(event: Event, publisher: Publisher<ServiceGenericType<S>>): this;
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<ServiceTypes, AppSettings> {
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"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"}
@@ -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<T>) => Channel | Channel[] | void | Promise<Channel | Channel[] | void>;
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>;
@@ -1 +1 @@
1
- {"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/channels/mixins.ts"],"names":[],"mappings":"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"}
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]: any;
15
+ [key: string]: string;
16
16
  };
17
- export declare function getServiceMethod(_httpMethod: string, id: unknown, headerOverride?: string): any;
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
- if (context instanceof hooks_1.BaseHookContext) {
54
- if (context.statusCode) {
55
- return context.statusCode;
56
- }
57
- if (context.method === 'create') {
58
- return exports.statusCodes.created;
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;AAE1D,6CAAoD;AAEvC,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,GAA2B;IAClD,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,OAA2C;IAClE,IAAI,CAAC,CAAC,OAAO,YAAY,uBAAe,CAAC,EAAE;QACzC,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS;QACnC,CAAC,CAAC,OAAO,CAAC,QAAQ;QAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACrB,CAAC;AARD,0BAQC;AAED,SAAgB,aAAa,CAAE,OAAoB,EAAE,IAAU;IAC7D,IAAI,OAAO,YAAY,uBAAe,EAAE;QACtC,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,OAAO,CAAC,UAAU,CAAC;SAC3B;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC/B,OAAO,mBAAW,CAAC,OAAO,CAAC;SAC5B;KACF;IAED,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,mBAAW,CAAC,SAAS,CAAC;KAC9B;IAED,OAAO,mBAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAhBD,sCAgBC"}
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"}
@@ -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<any>;
5
+ service: Service;
6
6
  params: {
7
- [key: string]: string;
7
+ [key: string]: any;
8
8
  };
9
9
  }
10
- interface Application<ServiceTypes, AppSettings> {
11
- routes: Router<any>;
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
  }
@@ -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
- const routes = new router_1.Router();
21
- Object.assign(app, {
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
- app.routes.insert(path, service);
35
- app.routes.insert(`${path}/:__id`, service);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,qCAAkC;AAclC,2CAAyB;AAElB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,GAAgB,EAAE,EAAE;IAChD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;QACpC,OAAO;KACR;IAED,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,MAAM;QACN,MAAM,CAAqB,IAAY;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;gBAEzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aAC5B;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;IAEH,qDAAqD;IACrD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAqB,EAAE,IAAY,EAAE,EAAE;QACtD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,OAAO,WA2BlB"}
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"}
@@ -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.14",
4
+ "version": "5.0.0-pre.15",
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.14",
56
- "@feathersjs/errors": "^5.0.0-pre.14",
55
+ "@feathersjs/commons": "^5.0.0-pre.15",
56
+ "@feathersjs/errors": "^5.0.0-pre.15",
57
+ "@feathersjs/feathers": "^5.0.0-pre.15",
57
58
  "lodash": "^4.17.21"
58
59
  },
59
60
  "devDependencies": {
60
- "@feathersjs/feathers": "^5.0.0-pre.14",
61
+ "@types/lodash": "^4.14.176",
61
62
  "@types/mocha": "^9.0.0",
62
- "@types/node": "^16.10.4",
63
- "mocha": "^9.1.2",
63
+ "@types/node": "^16.11.6",
64
+ "mocha": "^9.1.3",
64
65
  "shx": "^0.3.3",
65
- "ts-node": "^10.3.0",
66
+ "ts-node": "^10.4.0",
66
67
  "typescript": "^4.4.4"
67
68
  },
68
- "gitHead": "9bb26276938aead1f3f582be5517a49a8ce00f09"
69
+ "gitHead": "8008bf4f8529a2a40b6a2f976c1f43ae13675693"
69
70
  }
@@ -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>>): this;
15
- publish (event: Event, publisher: Publisher<ServiceGenericType<S>>): this;
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>>): this;
18
- registerPublisher (event: Event, publisher: Publisher<ServiceGenericType<S>>): this;
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<ServiceTypes, AppSettings> { // eslint-disable-line
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<any>, path: string) => {
54
+ app.mixins.push((service: FeathersService, path: string) => {
55
55
  const { serviceEvents } = getServiceOptions(service);
56
56
 
57
57
  if (typeof service.publish === 'function') {
@@ -1,5 +1,5 @@
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';
@@ -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<T>) => Channel | Channel[] | void | Promise<Channel | Channel[] | void>;
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]: any } = {
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|{ [key: string]: any }) {
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 instanceof BaseHookContext) {
69
- if (context.statusCode) {
70
- return context.statusCode;
71
- }
63
+ if (context.http?.statusCode) {
64
+ return context.http.statusCode;
65
+ }
72
66
 
73
- if (context.method === 'create') {
74
- return statusCodes.created;
75
- }
67
+ if (context.method === 'create') {
68
+ return statusCodes.created;
76
69
  }
77
70
 
78
71
  if (!data) {
@@ -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<any>,
7
- params: { [key: string]: string }
6
+ service: Service,
7
+ params: { [key: string]: any }
8
8
  }
9
9
 
10
- interface Application<ServiceTypes, AppSettings> { // eslint-disable-line
11
- routes: Router<any>;
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
- export const routing = () => (app: Application) => {
19
- if (typeof app.lookup === 'function') {
20
- return;
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 routes = new Router();
28
+ const { params: colonParams, data: { service, params: dataParams } } = result;
24
29
 
25
- Object.assign(app, {
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
- if (result !== null) {
31
- const { params, data: service } = result;
32
+ return { service, params };
33
+ };
32
34
 
33
- return { params, service };
34
- }
35
+ export const routing = () => (app: Application) => {
36
+ if (typeof app.lookup === 'function') {
37
+ return;
38
+ }
35
39
 
36
- return result;
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<any>, path: string) => {
42
- app.routes.insert(path, service);
43
- app.routes.insert(`${path}/:__id`, service);
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
  };
@@ -77,7 +77,7 @@ export class RouteNode<T = any> {
77
77
  }
78
78
  }
79
79
 
80
- export class Router<T> {
80
+ export class Router<T = any> {
81
81
  constructor (public root: RouteNode<T> = new RouteNode<T>('', 0)) {}
82
82
 
83
83
  getPath (path: string) {