@cspell/cspell-service-bus 6.4.2 → 6.5.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.
@@ -7,24 +7,20 @@ export interface SystemServiceBus extends Dispatcher {
7
7
  readonly subsystems: SubsystemServiceBus[];
8
8
  }
9
9
  export declare function createSystemServiceBus(): SystemServiceBus;
10
- declare const TypeRequestRegisterHandler: "System:RegisterHandler";
11
- export declare class RequestRegisterHandlerFactory extends ServiceRequest<typeof TypeRequestRegisterHandler, SubsystemServiceBus> {
10
+ export declare const RequestRegisterHandlerFactory: ServiceRequestFactory<ServiceRequest<"System:RegisterHandler", {
12
11
  readonly requestPrefix: string;
13
12
  readonly handler: Handler;
14
- static type: "System:RegisterHandler";
15
- private constructor();
16
- static is(req: ServiceRequest): req is RequestRegisterHandlerFactory;
17
- static create(requestPrefix: string, handler: Handler): RequestRegisterHandlerFactory;
18
- }
19
- declare const TypeRequestCreateSubsystem: "System:CreateSubsystem";
20
- export declare class RequestCreateSubsystemFactory extends ServiceRequest<typeof TypeRequestCreateSubsystem, SubsystemServiceBus> {
13
+ }, SubsystemServiceBus>, {
14
+ readonly requestPrefix: string;
15
+ readonly handler: Handler;
16
+ }, "System:RegisterHandler">;
17
+ export declare const RequestCreateSubsystemFactory: ServiceRequestFactory<ServiceRequest<"System:CreateSubsystem", {
21
18
  readonly name: string;
22
19
  readonly requestPattern: string | RegExp;
23
- static type: "System:CreateSubsystem";
24
- private constructor();
25
- static is(req: ServiceRequest): req is RequestCreateSubsystemFactory;
26
- static create(name: string, requestPattern: string | RegExp): RequestCreateSubsystemFactory;
27
- }
20
+ }, SubsystemServiceBus>, {
21
+ readonly name: string;
22
+ readonly requestPattern: string | RegExp;
23
+ }, "System:CreateSubsystem">;
28
24
  interface SubsystemServiceBus extends Dispatcher {
29
25
  readonly name: string;
30
26
  readonly requestPattern: string | RegExp;
@@ -4,6 +4,7 @@ exports.createSubsystemServiceBus = exports.RequestCreateSubsystemFactory = expo
4
4
  const assert_1 = require("./assert");
5
5
  const bus_1 = require("./bus");
6
6
  const request_1 = require("./request");
7
+ const requestFactory_1 = require("./requestFactory");
7
8
  class SystemServiceBusImpl {
8
9
  constructor() {
9
10
  this.serviceBus = (0, bus_1.createServiceBus)();
@@ -12,8 +13,8 @@ class SystemServiceBusImpl {
12
13
  this.createSubsystem('Default Subsystem', '' /* match everything */);
13
14
  }
14
15
  bindDefaultHandlers() {
15
- this.serviceBus.addHandler((0, bus_1.createRequestHandler)(RequestCreateSubsystemFactory, (req) => {
16
- const { name, requestPattern } = req;
16
+ this.serviceBus.addHandler((0, bus_1.createRequestHandler)(exports.RequestCreateSubsystemFactory, (req) => {
17
+ const { name, requestPattern } = req.params;
17
18
  const sub = createSubsystemServiceBus(name, requestPattern);
18
19
  this._subsystems.push(sub);
19
20
  this.serviceBus.addHandler(sub.handler);
@@ -24,12 +25,12 @@ class SystemServiceBusImpl {
24
25
  return this.serviceBus.dispatch(request);
25
26
  }
26
27
  createSubsystem(name, requestPattern) {
27
- const res = this.dispatch(RequestCreateSubsystemFactory.create(name, requestPattern));
28
+ const res = this.dispatch(exports.RequestCreateSubsystemFactory.create({ name, requestPattern }));
28
29
  (0, assert_1.assert)(res?.value);
29
30
  return res.value;
30
31
  }
31
32
  registerHandler(requestPrefix, handler) {
32
- const request = RequestRegisterHandlerFactory.create(requestPrefix, handler);
33
+ const request = exports.RequestRegisterHandlerFactory.create({ requestPrefix, handler });
33
34
  this.serviceBus.dispatch(request);
34
35
  }
35
36
  registerRequestHandler(requestDef, fn, name, description) {
@@ -44,37 +45,9 @@ function createSystemServiceBus() {
44
45
  }
45
46
  exports.createSystemServiceBus = createSystemServiceBus;
46
47
  const TypeRequestRegisterHandler = 'System:RegisterHandler';
47
- class RequestRegisterHandlerFactory extends request_1.ServiceRequest {
48
- constructor(requestPrefix, handler) {
49
- super(RequestRegisterHandlerFactory.type);
50
- this.requestPrefix = requestPrefix;
51
- this.handler = handler;
52
- }
53
- static is(req) {
54
- return req instanceof RequestRegisterHandlerFactory;
55
- }
56
- static create(requestPrefix, handler) {
57
- return new RequestRegisterHandlerFactory(requestPrefix, handler);
58
- }
59
- }
60
- exports.RequestRegisterHandlerFactory = RequestRegisterHandlerFactory;
61
- RequestRegisterHandlerFactory.type = TypeRequestRegisterHandler;
48
+ exports.RequestRegisterHandlerFactory = (0, requestFactory_1.requestFactory)(TypeRequestRegisterHandler);
62
49
  const TypeRequestCreateSubsystem = 'System:CreateSubsystem';
63
- class RequestCreateSubsystemFactory extends request_1.ServiceRequest {
64
- constructor(name, requestPattern) {
65
- super(RequestCreateSubsystemFactory.type);
66
- this.name = name;
67
- this.requestPattern = requestPattern;
68
- }
69
- static is(req) {
70
- return req instanceof RequestCreateSubsystemFactory;
71
- }
72
- static create(name, requestPattern) {
73
- return new RequestCreateSubsystemFactory(name, requestPattern);
74
- }
75
- }
76
- exports.RequestCreateSubsystemFactory = RequestCreateSubsystemFactory;
77
- RequestCreateSubsystemFactory.type = TypeRequestCreateSubsystem;
50
+ exports.RequestCreateSubsystemFactory = (0, requestFactory_1.requestFactory)(TypeRequestCreateSubsystem);
78
51
  class SubsystemServiceBusImpl extends bus_1.ServiceBus {
79
52
  constructor(name, requestPattern) {
80
53
  super();
@@ -84,7 +57,7 @@ class SubsystemServiceBusImpl extends bus_1.ServiceBus {
84
57
  typeof requestPattern === 'string'
85
58
  ? (reqType) => reqType.startsWith(requestPattern)
86
59
  : (reqType) => requestPattern.test(reqType);
87
- const handleRegistration = (0, bus_1.createRequestHandler)(RequestRegisterHandlerFactory, (req, next) => this.handleRegistrationReq(req, next), 'Subsystem Register Handlers for ' + name, `Matches against: <${requestPattern.toString()}>`);
60
+ const handleRegistration = (0, bus_1.createRequestHandler)(exports.RequestRegisterHandlerFactory, (req, next) => this.handleRegistrationReq(req, next), 'Subsystem Register Handlers for ' + name, `Matches against: <${requestPattern.toString()}>`);
88
61
  this.addHandler(handleRegistration);
89
62
  this.handler = {
90
63
  name: 'Subsystem: ' + name,
@@ -94,17 +67,17 @@ class SubsystemServiceBusImpl extends bus_1.ServiceBus {
94
67
  }
95
68
  handleRegistrationReq(request, next) {
96
69
  // console.log(`${this.name}.handleRegistrationReq %o`, request);
97
- if (!this.canHandleType(request.requestPrefix)) {
70
+ if (!this.canHandleType(request.params.requestPrefix)) {
98
71
  // console.log(`${this.name}.handleRegistrationReq skip`);
99
72
  return next(request);
100
73
  }
101
74
  // console.log(`${this.name}.handleRegistrationReq add ***`);
102
- this.addHandler(request.handler);
75
+ this.addHandler(request.params.handler);
103
76
  return (0, request_1.createResponse)(this);
104
77
  }
105
78
  _handler(dispatcher) {
106
79
  return (next) => (req) => {
107
- if (!this.canHandleType(req.type) && !RequestRegisterHandlerFactory.is(req))
80
+ if (!this.canHandleType(req.type) && !exports.RequestRegisterHandlerFactory.is(req))
108
81
  return next(req);
109
82
  const dispatch = this.reduceHandlers(this.handlers, req, dispatcher, next);
110
83
  return dispatch(req);
package/dist/bus.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IsARequest, RequestResponseType, ServiceRequest, ServiceRequestFactory } from './request';
1
+ import { IsARequest, RequestResponseType, ServiceRequest, ServiceRequestFactory, ServiceRequestFactoryRequestType } from './request';
2
2
  export interface Dispatcher {
3
3
  dispatch<R extends ServiceRequest>(request: R): RequestResponseType<R>;
4
4
  }
@@ -12,13 +12,14 @@ export declare class ServiceBus implements Dispatcher {
12
12
  protected reduceHandlers<R extends ServiceRequest>(handlers: readonly Handler[], request: R, dispatcher: Dispatcher, defaultHandler: HandleRequest): HandleRequest;
13
13
  }
14
14
  export declare function createServiceBus(handlers?: Handler[]): ServiceBus;
15
- export declare type HandleRequestFn<R extends ServiceRequest> = (request: R, next: HandleRequestKnown<R>, dispatch: Dispatcher) => RequestResponseType<R>;
15
+ export declare type HandleRequestFn<R extends ServiceRequest> = (request: R, next: HandleRequest, dispatch: Dispatcher) => RequestResponseType<R>;
16
16
  export interface HandleRequest {
17
17
  <R extends ServiceRequest>(request: R): any;
18
18
  }
19
19
  export interface HandleRequestKnown<R extends ServiceRequest> {
20
20
  (request: R): RequestResponseType<R>;
21
21
  }
22
+ export declare type FactoryRequestHandler<T extends ServiceRequestFactory<ServiceRequest>, R extends ServiceRequest = ServiceRequestFactoryRequestType<T>> = HandleRequestKnown<R>;
22
23
  export interface HandlerNext {
23
24
  (next: HandleRequest): HandleRequest;
24
25
  }
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export { ServiceRequest } from './request';
2
- export { ServiceBus, createServiceBus } from './bus';
1
+ export { createRequestHandler, createServiceBus, ServiceBus } from './bus';
2
+ export { createResponse, createResponseFail, isServiceResponseFailure, isServiceResponseSuccess, ServiceRequest, } from './request';
3
+ export { requestFactory } from './requestFactory';
3
4
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createServiceBus = exports.ServiceBus = exports.ServiceRequest = void 0;
4
- var request_1 = require("./request");
5
- Object.defineProperty(exports, "ServiceRequest", { enumerable: true, get: function () { return request_1.ServiceRequest; } });
3
+ exports.requestFactory = exports.ServiceRequest = exports.isServiceResponseSuccess = exports.isServiceResponseFailure = exports.createResponseFail = exports.createResponse = exports.ServiceBus = exports.createServiceBus = exports.createRequestHandler = void 0;
6
4
  var bus_1 = require("./bus");
7
- Object.defineProperty(exports, "ServiceBus", { enumerable: true, get: function () { return bus_1.ServiceBus; } });
5
+ Object.defineProperty(exports, "createRequestHandler", { enumerable: true, get: function () { return bus_1.createRequestHandler; } });
8
6
  Object.defineProperty(exports, "createServiceBus", { enumerable: true, get: function () { return bus_1.createServiceBus; } });
7
+ Object.defineProperty(exports, "ServiceBus", { enumerable: true, get: function () { return bus_1.ServiceBus; } });
8
+ var request_1 = require("./request");
9
+ Object.defineProperty(exports, "createResponse", { enumerable: true, get: function () { return request_1.createResponse; } });
10
+ Object.defineProperty(exports, "createResponseFail", { enumerable: true, get: function () { return request_1.createResponseFail; } });
11
+ Object.defineProperty(exports, "isServiceResponseFailure", { enumerable: true, get: function () { return request_1.isServiceResponseFailure; } });
12
+ Object.defineProperty(exports, "isServiceResponseSuccess", { enumerable: true, get: function () { return request_1.isServiceResponseSuccess; } });
13
+ Object.defineProperty(exports, "ServiceRequest", { enumerable: true, get: function () { return request_1.ServiceRequest; } });
14
+ var requestFactory_1 = require("./requestFactory");
15
+ Object.defineProperty(exports, "requestFactory", { enumerable: true, get: function () { return requestFactory_1.requestFactory; } });
9
16
  //# sourceMappingURL=index.js.map
package/dist/request.d.ts CHANGED
@@ -1,15 +1,16 @@
1
- export interface ServiceRequest<T extends string = string, R = unknown> {
1
+ export interface ServiceRequest<T extends string = string, P = unknown, R = unknown> {
2
2
  readonly type: T;
3
+ readonly params: P;
3
4
  __r?: ServiceResponseBase<R>;
4
5
  }
5
- declare class BaseServiceRequest<T extends string, R> implements ServiceRequest<T, R> {
6
+ declare class BaseServiceRequest<T extends string, P, R> implements ServiceRequest<T, P, R> {
6
7
  readonly type: T;
8
+ readonly params: P;
7
9
  readonly __r?: ServiceResponseBase<R>;
8
- constructor(type: T);
10
+ constructor(type: T, params: P);
9
11
  }
10
- export declare class ServiceRequest<T extends string, R> extends BaseServiceRequest<T, R> {
11
- readonly type: T;
12
- constructor(type: T);
12
+ export declare class ServiceRequest<T extends string, P, R> extends BaseServiceRequest<T, P, R> {
13
+ constructor(type: T, params: P);
13
14
  }
14
15
  interface ServiceResponseBase<T> {
15
16
  ___T?: T;
@@ -38,11 +39,15 @@ export declare function isServiceResponseFailure<T>(res: ServiceResponseBase<T>)
38
39
  export declare function isInstanceOfFn<T>(constructor: {
39
40
  new (): T;
40
41
  }): (t: unknown) => t is T;
41
- export interface ServiceRequestFactory<R extends ServiceRequest, T extends string = R['type']> {
42
+ export interface ServiceRequestFactory<R extends ServiceRequest, P = R['params'], T extends string = R['type']> {
42
43
  type: T;
43
44
  is: (r: ServiceRequest | R) => r is R;
44
- create(...params: any[]): R;
45
+ create(params: P): R;
46
+ __request?: R;
45
47
  }
48
+ export declare type ServiceRequestFactoryRequestType<T> = T extends {
49
+ __request?: infer R;
50
+ } ? R : never;
46
51
  export declare const __testing__: {
47
52
  BaseServiceRequest: typeof BaseServiceRequest;
48
53
  };
package/dist/request.js CHANGED
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.__testing__ = exports.isInstanceOfFn = exports.isServiceResponseFailure = exports.isServiceResponseSuccess = exports.createResponseFail = exports.createResponse = exports.ServiceRequest = void 0;
4
4
  class BaseServiceRequest {
5
- constructor(type) {
5
+ constructor(type, params) {
6
6
  this.type = type;
7
+ this.params = params;
7
8
  }
8
9
  }
9
10
  class ServiceRequest extends BaseServiceRequest {
10
- constructor(type) {
11
- super(type);
12
- this.type = type;
11
+ constructor(type, params) {
12
+ super(type, params);
13
13
  }
14
14
  }
15
15
  exports.ServiceRequest = ServiceRequest;
@@ -0,0 +1,3 @@
1
+ import { ServiceRequest, ServiceRequestFactory } from './request';
2
+ export declare function requestFactory<T extends string, P, R>(requestType: T): ServiceRequestFactory<ServiceRequest<T, P, R>>;
3
+ //# sourceMappingURL=requestFactory.d.ts.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestFactory = void 0;
4
+ const request_1 = require("./request");
5
+ function requestFactory(requestType) {
6
+ class RequestClass extends request_1.ServiceRequest {
7
+ constructor(params) {
8
+ super(requestType, params);
9
+ }
10
+ static is(req) {
11
+ return req instanceof RequestClass && req.type === requestType;
12
+ }
13
+ static create(params) {
14
+ return new RequestClass(params);
15
+ }
16
+ }
17
+ RequestClass.type = requestType;
18
+ return RequestClass;
19
+ }
20
+ exports.requestFactory = requestFactory;
21
+ //# sourceMappingURL=requestFactory.js.map
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "6.4.2",
6
+ "version": "6.5.0",
7
7
  "description": "A Library for connecting requests to services that can fulfill them.",
8
8
  "keywords": [
9
9
  "cspell"
@@ -74,5 +74,5 @@
74
74
  "jest": "^28.1.3",
75
75
  "rimraf": "^3.0.2"
76
76
  },
77
- "gitHead": "1f7481fd7d6a561de92ba49870da6eb1441a9d20"
77
+ "gitHead": "65c80b01e17bb0d74b57ef8b29309684a8588e27"
78
78
  }