@quenk/frontend 0.21.0 → 0.21.1

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.
@@ -14,10 +14,12 @@ export interface HttpCallback {
14
14
  onError(err: Error): void;
15
15
  }
16
16
  export declare class DefaultHttpCallback {
17
- onNotFound(_: Response<Object>): void;
18
- onConflict(_: Response<Object>): void;
19
- onBadRequest(_: Response<Object>): void;
20
- onUnauthorized(_: Response<Object>): void;
21
- onForbidden(_: Response<Object>): void;
22
- onError(_: Error): void;
17
+ cbs: Partial<HttpCallback>;
18
+ constructor(cbs?: Partial<HttpCallback>);
19
+ onNotFound(r: Response<Object>): void;
20
+ onConflict(r: Response<Object>): void;
21
+ onBadRequest(r: Response<Object>): void;
22
+ onUnauthorized(r: Response<Object>): void;
23
+ onForbidden(r: Response<Object>): void;
24
+ onError(r: Error): void;
23
25
  }
@@ -3,12 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultHttpCallback = exports.ERR_REQUEST_FAILED = void 0;
4
4
  exports.ERR_REQUEST_FAILED = 'ERR_REQUEST_FAILED';
5
5
  class DefaultHttpCallback {
6
- onNotFound(_) { }
7
- onConflict(_) { }
8
- onBadRequest(_) { }
9
- onUnauthorized(_) { }
10
- onForbidden(_) { }
11
- onError(_) { }
6
+ constructor(cbs = {}) {
7
+ this.cbs = cbs;
8
+ }
9
+ onNotFound(r) {
10
+ if (this.cbs.onNotFound)
11
+ this.cbs.onNotFound(r);
12
+ }
13
+ onConflict(r) {
14
+ if (this.cbs.onConflict)
15
+ this.cbs.onConflict(r);
16
+ }
17
+ onBadRequest(r) {
18
+ if (this.cbs.onBadRequest)
19
+ this.cbs.onBadRequest(r);
20
+ }
21
+ onUnauthorized(r) {
22
+ if (this.cbs.onUnauthorized)
23
+ this.cbs.onUnauthorized(r);
24
+ }
25
+ onForbidden(r) {
26
+ if (this.cbs.onForbidden)
27
+ this.cbs.onForbidden(r);
28
+ }
29
+ onError(r) {
30
+ if (this.cbs.onError)
31
+ this.cbs.onError(r);
32
+ }
12
33
  }
13
34
  exports.DefaultHttpCallback = DefaultHttpCallback;
14
35
  //# sourceMappingURL=callback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/app/model/http/callback.ts"],"names":[],"mappings":";;;AAIa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAoBvD,MAAa,mBAAmB;IAC5B,UAAU,CAAC,CAAmB,IAAG,CAAC;IAElC,UAAU,CAAC,CAAmB,IAAG,CAAC;IAElC,YAAY,CAAC,CAAmB,IAAG,CAAC;IAEpC,cAAc,CAAC,CAAmB,IAAG,CAAC;IAEtC,WAAW,CAAC,CAAmB,IAAG,CAAC;IAEnC,OAAO,CAAC,CAAQ,IAAG,CAAC;CACvB;AAZD,kDAYC"}
1
+ {"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/app/model/http/callback.ts"],"names":[],"mappings":";;;AAIa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAoBvD,MAAa,mBAAmB;IAC5B,YAAmB,MAA6B,EAAE;QAA/B,QAAG,GAAH,GAAG,CAA4B;IAAG,CAAC;IAEtD,UAAU,CAAC,CAAmB;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,CAAmB;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,CAAmB;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,CAAmB;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,CAAmB;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,CAAQ;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;CACJ;AA1BD,kDA0BC"}
@@ -119,7 +119,7 @@ export declare class RequestFactory {
119
119
  export declare abstract class HttpModel<T extends Object> implements Model<T> {
120
120
  path: Path;
121
121
  callback: HttpCallback;
122
- constructor(path: Path, callback?: HttpCallback);
122
+ constructor(path: Path, callback: HttpCallback);
123
123
  /**
124
124
  * requests factory used to create Request objects.
125
125
  */
@@ -146,7 +146,7 @@ export declare abstract class HttpModel<T extends Object> implements Model<T> {
146
146
  export declare class SimpleHttpModel<T extends Object> extends HttpModel<T> {
147
147
  path: Path;
148
148
  agent: Agent<Object, Object>;
149
- callbacks?: HttpCallback | undefined;
150
- constructor(path: Path, agent: Agent<Object, Object>, callbacks?: HttpCallback | undefined);
149
+ callbacks: Partial<HttpCallback>;
150
+ constructor(path: Path, agent: Agent<Object, Object>, callbacks?: Partial<HttpCallback>);
151
151
  send(req: Request<Object>): Promise<Response<Object>>;
152
152
  }
@@ -92,7 +92,7 @@ exports.RequestFactory = RequestFactory;
92
92
  * to utilize a Remote actor, see the RemoteModel implementation elsewhere.
93
93
  */
94
94
  class HttpModel {
95
- constructor(path, callback = new callback_1.DefaultHttpCallback()) {
95
+ constructor(path, callback) {
96
96
  this.path = path;
97
97
  this.callback = callback;
98
98
  /**
@@ -169,8 +169,8 @@ exports.HttpModel = HttpModel;
169
169
  * need something more complicated.
170
170
  */
171
171
  class SimpleHttpModel extends HttpModel {
172
- constructor(path, agent, callbacks) {
173
- super(path, callbacks);
172
+ constructor(path, agent, callbacks = {}) {
173
+ super(path, new callback_1.DefaultHttpCallback(callbacks));
174
174
  this.path = path;
175
175
  this.agent = agent;
176
176
  this.callbacks = callbacks;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/model/http/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/model/http/index.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,8 @@ export declare class RemoteModel<T extends Object> extends HttpModel<T> {
18
18
  parent: Parent;
19
19
  server: Address;
20
20
  path: Path;
21
- callback: HttpCallback;
22
- constructor(parent: Parent, server: Address, path: Path, callback?: HttpCallback);
21
+ partialCallback: Partial<HttpCallback>;
22
+ constructor(parent: Parent, server: Address, path: Path, partialCallback?: Partial<HttpCallback>);
23
23
  /**
24
24
  * send a request to the remote back-end.
25
25
  *
@@ -15,12 +15,12 @@ exports.ERR_REQUEST_ABORTED = 'ERR_REQUEST_ABORTED';
15
15
  * updated, authentication errors to be intercepted etc. at scale.
16
16
  */
17
17
  class RemoteModel extends _1.HttpModel {
18
- constructor(parent, server, path, callback = new callback_1.DefaultHttpCallback()) {
19
- super(path);
18
+ constructor(parent, server, path, partialCallback = {}) {
19
+ super(path, new callback_1.DefaultHttpCallback(partialCallback));
20
20
  this.parent = parent;
21
21
  this.server = server;
22
22
  this.path = path;
23
- this.callback = callback;
23
+ this.partialCallback = partialCallback;
24
24
  }
25
25
  /**
26
26
  * send a request to the remote back-end.
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/app/model/http/remote.ts"],"names":[],"mappings":";;;AAGA,iEAA8D;AAK9D,gEAA4D;AAG5D,yCAA+D;AAC/D,yCAAwD;AACxD,wBAA8B;AAEjB,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAa,WAA8B,SAAQ,YAAY;IAC3D,YACW,MAAc,EACd,MAAe,EACf,IAAU,EACV,WAAyB,IAAI,8BAAmB,EAAE;QAEzD,KAAK,CAAC,IAAI,CAAC,CAAC;QALL,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAS;QACf,SAAI,GAAJ,IAAI,CAAM;QACV,aAAQ,GAAR,QAAQ,CAA0C;IAG7D,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,GAAoB;QACrB,OAAO,eAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;gBAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,aAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAErD,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnB,MAAM,GAAG,CAAC,OAAO,CAAC;wBACd,IAAI,oBAAQ,CAAC,eAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAClC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CACrB;wBACD,IAAI,oBAAQ,CAAC,mBAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACrD,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,2BAAmB,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAlCD,kCAkCC"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/app/model/http/remote.ts"],"names":[],"mappings":";;;AAGA,iEAA8D;AAK9D,gEAA4D;AAG5D,yCAA+D;AAC/D,yCAAwD;AACxD,wBAA8B;AAEjB,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAa,WAA8B,SAAQ,YAAY;IAC3D,YACW,MAAc,EACd,MAAe,EACf,IAAU,EACV,kBAAyC,EAAE;QAElD,KAAK,CAAC,IAAI,EAAE,IAAI,8BAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;QAL/C,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAS;QACf,SAAI,GAAJ,IAAI,CAAM;QACV,oBAAe,GAAf,eAAe,CAA4B;IAGtD,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,GAAoB;QACrB,OAAO,eAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;gBAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,aAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAErD,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnB,MAAM,GAAG,CAAC,OAAO,CAAC;wBACd,IAAI,oBAAQ,CAAC,eAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAClC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CACrB;wBACD,IAAI,oBAAQ,CAAC,mBAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACrD,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,2BAAmB,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAlCD,kCAkCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/app/remote.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,6DAA8D;AAQ9D,wEAAsE;AAGtE,oDAA0E;AAE1E;;;GAGG;AACH,MAAa,IAAI;IACb,YACW,MAAe,EACf,OAA4B;QAD5B,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAqB;IACpC,CAAC;CACP;AALD,oBAKC;AAID;;GAEG;AACH,MAAa,MAAM;IACf,YAAmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;CACpD;AAFD,wBAEC;AAED;;;GAGG;AACH,MAAa,UAAU;IACnB,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;CACtC;AAFD,gCAEC;AAED;;;;;;;GAOG;AACH,MAAa,MAAO,SAAQ,oBAAS;IACjC,YACW,OAAgB,EAChB,KAAgC,EAChC,WAAyB,IAAI,8BAAmB,EAAE;QAEzD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAA2B;QAChC,aAAQ,GAAR,QAAQ,CAA0C;QAK7D,WAAM,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAQ,EAAE,EAAE;YACzC,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACD,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC,CAAC,CAAC;gBAEtC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,CAAQ,CAAC,CAAC,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAEzB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;IAhBF,CAAC;IAkBD;;;;OAIG;IAEH,KAAK,CAAC,cAAc,CAAC,GAAqB;QACtC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,WAAW;gBACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM;YACV,KAAK,MAAM,CAAC,YAAY;gBACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,MAAM,CAAC,SAAS;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM;YACV,KAAK,MAAM,CAAC,QAAQ;gBAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,MAAM,CAAC,SAAS;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YAEV;gBACI,MAAM;QACd,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,CAAC,IAAI,eAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;CACJ;AAzDD,wBAyDC"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/app/remote.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,6DAA8D;AAQ9D,wEAAsE;AAGtE,oDAA0E;AAE1E;;;GAGG;AACH,MAAa,IAAI;IACb,YACW,MAAe,EACf,OAA4B;QAD5B,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAqB;IACpC,CAAC;CACP;AALD,oBAKC;AAID;;GAEG;AACH,MAAa,MAAM;IACf,YAAmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;CACpD;AAFD,wBAEC;AAED;;;GAGG;AACH,MAAa,UAAU;IACnB,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;CACtC;AAFD,gCAEC;AAED;;;;;;;GAOG;AACH,MAAa,MAAO,SAAQ,oBAAS;IACjC,YACW,OAAgB,EAChB,KAAgC,EAChC,WAAyB,IAAI,8BAAmB,EAAE;QAEzD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAA2B;QAChC,aAAQ,GAAR,QAAQ,CAA0C;QAK7D,WAAM,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAQ,EAAE,EAAE;YACzC,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACD,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC,CAAC,CAAC;gBACtC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,CAAQ,CAAC,CAAC,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAEzB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;IAfF,CAAC;IAiBD;;;;OAIG;IAEH,KAAK,CAAC,cAAc,CAAC,GAAqB;QACtC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,WAAW;gBACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM;YACV,KAAK,MAAM,CAAC,YAAY;gBACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,MAAM,CAAC,SAAS;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM;YACV,KAAK,MAAM,CAAC,QAAQ;gBAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,MAAM,CAAC,SAAS;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACV;gBACI,MAAM;QACd,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,CAAC,IAAI,eAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;CACJ;AAvDD,wBAuDC"}
@@ -16,108 +16,54 @@ export type Params = JObject;
16
16
  /**
17
17
  * Filter type.
18
18
  */
19
- export type Filter<R extends Request> = router.Filter<R>;
19
+ export type Filter = router.Filter<HashRequest>;
20
20
  /**
21
21
  * Handler type.
22
22
  */
23
- export type Handler<R extends Request> = router.Handler<R>;
23
+ export type Handler = router.Handler<HashRequest>;
24
24
  /**
25
- * OnError type.
26
- */
27
- export type OnError = (e: Error) => Promise<void>;
28
- /**
29
- * OnNotFound type.
30
- */
31
- export type OnNotFound = (path: Path) => Promise<void>;
32
- /**
33
- * Routes table.
25
+ * CompiledRoute used internally by the Router.
26
+ * @private
34
27
  */
35
- export interface Routes<R extends Request> {
36
- [key: string]: [Filter<R>[], Handler<R>];
28
+ export declare class CompiledRoute {
29
+ regex: RegExp;
30
+ keys: Key[];
31
+ handler: Handler;
32
+ constructor(regex: RegExp, keys: Key[], handler: Handler);
37
33
  }
38
34
  /**
39
- * Request interface.
35
+ * HashRequest represents a change in the browser's hash triggered
36
+ * by the user.
40
37
  */
41
- export interface Request {
42
- /**
43
- * path requested
44
- */
45
- path: Path;
46
- /**
47
- * query data.
48
- */
38
+ export declare class HashRequest {
39
+ path: string;
49
40
  query: Query;
50
- /**
51
- * params data.
52
- */
53
41
  params: Params;
54
- }
55
- /**
56
- * Cache used internally by the Router.
57
- * @private
58
- */
59
- export declare class Cache<R extends Request> {
60
- regex: RegExp;
61
- keys: Key[];
62
- filters: Filter<R>[];
63
- handler: Handler<R>;
64
- constructor(regex: RegExp, keys: Key[], filters: Filter<R>[], handler: Handler<R>);
42
+ constructor(path: string, query: Query, params: Params);
65
43
  }
66
44
  /**
67
45
  * AbstractHashRouter implementation based on the value of window.location.hash.
68
46
  */
69
- export declare abstract class AbstractHashRouter<R extends Request> implements router.Router<R> {
70
- window: Window;
71
- routes: Routes<R>;
72
- constructor(window: Window, routes?: Routes<R>);
73
- cache: Cache<R>[];
74
- keys: Object[];
75
- /**
76
- * createRequest is a constructor for new Request instances.
77
- */
78
- abstract createRequest(path: Path, query: Query, params: Params): Promise<R>;
79
- /**
80
- * onError is invoked when an non-thrown error is invoked.
81
- */
82
- abstract onError(e: Error): Promise<void>;
83
- /**
84
- * onNotFound is invoked each time the user navigates to an unknown route.
85
- */
86
- abstract onNotFound(path: Path): Promise<void>;
87
- handleEvent(_: Event): void;
47
+ export declare class HashRouter implements router.Router<HashRequest> {
48
+ routes: Map<string, Handler>;
49
+ onError: (e: Error) => Promise<void>;
50
+ onNotFound: (path: Path) => Promise<void>;
51
+ filters: Filter[];
52
+ cache: CompiledRoute[];
53
+ constructor(routes?: Map<string, Handler>, onError?: (e: Error) => Promise<void>, onNotFound?: (path: Path) => Promise<void>, filters?: Filter[], cache?: CompiledRoute[]);
54
+ handleEvent(): void;
55
+ dispatch(): Promise<void>;
56
+ use(filter: Filter): this;
88
57
  /**
89
- * add a Handler to the route table for a specific path.
58
+ * set a Handler to the route table for a specific path.
90
59
  */
91
- add(path: string, handler: Handler<R>): AbstractHashRouter<R>;
92
- use(path: string, mware: Filter<R>): AbstractHashRouter<R>;
60
+ set(path: string, handler: Handler): this;
93
61
  clear(): void;
94
62
  /**
95
63
  * start activates routing by installing a hook into the supplied
96
64
  * window.
97
65
  */
98
- start(): AbstractHashRouter<R>;
99
- stop(): AbstractHashRouter<R>;
100
- }
101
- /**
102
- * DefaultRequest represents a change in the browser's hash triggered
103
- * by the user.
104
- */
105
- export declare class DefaultRequest {
106
- path: string;
107
- query: Query;
108
- params: Params;
109
- constructor(path: string, query: Query, params: Params);
110
- }
111
- /**
112
- * HashRouter implementation.
113
- */
114
- export declare class HashRouter extends AbstractHashRouter<DefaultRequest> {
115
- window: Window;
116
- routes: Routes<DefaultRequest>;
117
- error: OnError;
118
- notFound: OnNotFound;
119
- constructor(window: Window, routes?: Routes<DefaultRequest>, error?: OnError, notFound?: OnNotFound);
120
- createRequest(path: Path, query: Query, params: Params): Promise<DefaultRequest>;
66
+ start(): this;
121
67
  /**
122
68
  * navigate to a new path without user interaction.
123
69
  *
@@ -127,8 +73,7 @@ export declare class HashRouter extends AbstractHashRouter<DefaultRequest> {
127
73
  * @param path - The path to navigate to; should not include '#'.
128
74
  */
129
75
  navigate(path: Path): void;
130
- onError(e: Error): Promise<void>;
131
- onNotFound(path: Path): Promise<void>;
76
+ stop(): this;
132
77
  }
133
78
  /**
134
79
  * takeHash from a Window object.
@@ -139,4 +84,4 @@ export declare const takeHash: (w: Window) => string[];
139
84
  /**
140
85
  * compile a Routes map into a Cache for faster route matching.
141
86
  */
142
- export declare const compile: <R extends Request>(r: Routes<R>) => Cache<R>[];
87
+ export declare const compile: (routes: Map<Path, Handler>) => CompiledRoute[];
@@ -1,128 +1,97 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compile = exports.takeHash = exports.HashRouter = exports.DefaultRequest = exports.AbstractHashRouter = exports.Cache = void 0;
3
+ exports.compile = exports.takeHash = exports.HashRouter = exports.HashRequest = exports.CompiledRoute = void 0;
4
4
  const qs = require("qs");
5
5
  const toRegex = require("path-to-regexp");
6
- const record_1 = require("@quenk/noni/lib/data/record");
6
+ const array_1 = require("@quenk/noni/lib/data/array");
7
7
  const EVENT_HASH_CHANGED = 'hashchange';
8
8
  /**
9
- * Cache used internally by the Router.
9
+ * CompiledRoute used internally by the Router.
10
10
  * @private
11
11
  */
12
- class Cache {
13
- constructor(regex, keys, filters, handler) {
12
+ class CompiledRoute {
13
+ constructor(regex, keys, handler) {
14
14
  this.regex = regex;
15
15
  this.keys = keys;
16
- this.filters = filters;
17
16
  this.handler = handler;
18
17
  }
19
18
  }
20
- exports.Cache = Cache;
19
+ exports.CompiledRoute = CompiledRoute;
20
+ /**
21
+ * HashRequest represents a change in the browser's hash triggered
22
+ * by the user.
23
+ */
24
+ class HashRequest {
25
+ constructor(path, query, params) {
26
+ this.path = path;
27
+ this.query = query;
28
+ this.params = params;
29
+ }
30
+ }
31
+ exports.HashRequest = HashRequest;
21
32
  /**
22
33
  * AbstractHashRouter implementation based on the value of window.location.hash.
23
34
  */
24
- class AbstractHashRouter {
25
- constructor(window, routes = {}) {
26
- this.window = window;
35
+ class HashRouter {
36
+ constructor(routes = new Map(), onError = (e) => Promise.reject(e), onNotFound = async (path) => {
37
+ console.error(`Path "${path}" is not configured!`);
38
+ }, filters = [], cache = []) {
27
39
  this.routes = routes;
28
- this.cache = [];
29
- this.keys = [];
40
+ this.onError = onError;
41
+ this.onNotFound = onNotFound;
42
+ this.filters = filters;
43
+ this.cache = cache;
30
44
  }
31
- handleEvent(_) {
32
- let [path, query] = (0, exports.takeHash)(this.window);
33
- let cache = this.cache;
34
- let mware = [];
35
- let handler = async () => { };
36
- let keys = [];
37
- let r = null;
38
- let count = 0;
39
- while (r == null && count < cache.length) {
40
- r = cache[count].regex.exec(path);
41
- keys = cache[count].keys;
42
- mware = cache[count].filters;
43
- handler = cache[count].handler;
44
- count = count + 1;
45
- }
46
- if (r != null) {
47
- let ft = this.createRequest(path, qs.parse(query), parseParams(keys, r));
48
- mware
49
- .reduce((p, c) => p.then(c), ft)
50
- .then(handler)
51
- .catch(e => this.onError(e));
52
- }
53
- else {
54
- this.onNotFound(path).catch(console.error);
55
- }
45
+ handleEvent() {
46
+ this.dispatch();
56
47
  }
57
- /**
58
- * add a Handler to the route table for a specific path.
59
- */
60
- add(path, handler) {
61
- if (this.routes.hasOwnProperty(path)) {
62
- this.routes[path][1] = handler;
48
+ async dispatch() {
49
+ let [path, query] = (0, exports.takeHash)(window);
50
+ for (let route of this.cache) {
51
+ let hit = route.regex.exec(path);
52
+ if (hit == null)
53
+ continue;
54
+ let req = new HashRequest(path, qs.parse(query), parseParams(route.keys, hit));
55
+ try {
56
+ for (let f of this.filters) {
57
+ let res = await f(req);
58
+ if (!res)
59
+ return; // halts further execution
60
+ req = res;
61
+ }
62
+ await route.handler(req);
63
+ }
64
+ catch (e) {
65
+ await this.onError(e);
66
+ }
67
+ break;
63
68
  }
64
- else {
65
- this.routes[path] = [[], handler];
66
- }
67
- this.cache = (0, exports.compile)(this.routes);
69
+ }
70
+ use(filter) {
71
+ this.filters.push(filter);
68
72
  return this;
69
73
  }
70
- use(path, mware) {
71
- if (this.routes.hasOwnProperty(path)) {
72
- this.routes[path][0].push(mware);
73
- }
74
- else {
75
- this.routes[path] = [[mware], async () => { }];
76
- }
77
- this.cache = (0, exports.compile)(this.routes);
74
+ /**
75
+ * set a Handler to the route table for a specific path.
76
+ */
77
+ set(path, handler) {
78
+ this.routes.set(path, handler);
78
79
  return this;
79
80
  }
80
81
  clear() {
81
82
  this.cache = [];
82
- this.routes = {};
83
+ this.filters = [];
84
+ this.routes = new Map();
83
85
  }
84
86
  /**
85
87
  * start activates routing by installing a hook into the supplied
86
88
  * window.
87
89
  */
88
90
  start() {
89
- this.window.addEventListener(EVENT_HASH_CHANGED, this);
91
+ this.cache = (0, array_1.empty)(this.cache) ? (0, exports.compile)(this.routes) : this.cache;
92
+ window.addEventListener(EVENT_HASH_CHANGED, this);
90
93
  return this;
91
94
  }
92
- stop() {
93
- this.window.removeEventListener(EVENT_HASH_CHANGED, this);
94
- return this;
95
- }
96
- }
97
- exports.AbstractHashRouter = AbstractHashRouter;
98
- /**
99
- * DefaultRequest represents a change in the browser's hash triggered
100
- * by the user.
101
- */
102
- class DefaultRequest {
103
- constructor(path, query, params) {
104
- this.path = path;
105
- this.query = query;
106
- this.params = params;
107
- }
108
- }
109
- exports.DefaultRequest = DefaultRequest;
110
- /**
111
- * HashRouter implementation.
112
- */
113
- class HashRouter extends AbstractHashRouter {
114
- constructor(window, routes = {}, error = async (e) => {
115
- console.error(e);
116
- }, notFound = async () => { }) {
117
- super(window, routes);
118
- this.window = window;
119
- this.routes = routes;
120
- this.error = error;
121
- this.notFound = notFound;
122
- }
123
- async createRequest(path, query, params) {
124
- return new DefaultRequest(path, query, params);
125
- }
126
95
  /**
127
96
  * navigate to a new path without user interaction.
128
97
  *
@@ -135,14 +104,12 @@ class HashRouter extends AbstractHashRouter {
135
104
  path = path.split('#').join('');
136
105
  path = `#${path}`;
137
106
  if (window.location.hash === path)
138
- this.handleEvent(new Event('hashchanged'));
107
+ this.dispatch();
139
108
  window.location.hash = path;
140
109
  }
141
- async onError(e) {
142
- return this.error(e);
143
- }
144
- async onNotFound(path) {
145
- return this.notFound(path);
110
+ stop() {
111
+ window.removeEventListener(EVENT_HASH_CHANGED, this);
112
+ return this;
146
113
  }
147
114
  }
148
115
  exports.HashRouter = HashRouter;
@@ -163,9 +130,13 @@ exports.takeHash = takeHash;
163
130
  /**
164
131
  * compile a Routes map into a Cache for faster route matching.
165
132
  */
166
- const compile = (r) => (0, record_1.reduce)(r, [], (p, c, path) => {
167
- let keys = [];
168
- return p.concat(new Cache(toRegex.pathToRegexp(path, keys), keys, c[0], c[1]));
169
- });
133
+ const compile = (routes) => {
134
+ let cache = [];
135
+ for (let [path, handler] of routes.entries()) {
136
+ let keys = [];
137
+ cache.push(new CompiledRoute(toRegex.pathToRegexp(path, keys), keys, handler));
138
+ }
139
+ return cache;
140
+ };
170
141
  exports.compile = compile;
171
142
  //# sourceMappingURL=hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/app/router/hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/app/router/hash.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export type Route = string;
5
5
  /**
6
6
  * Filter types transform <R> values before they are passed to handlers.
7
7
  */
8
- export type Filter<R> = (req: R) => Promise<R>;
8
+ export type Filter<R> = (req: R) => Promise<R | void>;
9
9
  /**
10
10
  * Handler is the action taken to terminate a request.
11
11
  */
@@ -26,13 +26,13 @@ export interface Router<R> {
26
26
  */
27
27
  onNotFound(url: string): Promise<void>;
28
28
  /**
29
- * add a Handler to the internal route table.
29
+ * set a Handler to the internal route table.
30
30
  */
31
- add(path: Route, handler: Handler<R>): Router<R>;
31
+ set(path: Route, handler: Handler<R>): Router<R>;
32
32
  /**
33
33
  * use a Filter for a specific path.
34
34
  */
35
- use(path: Route, mware: Filter<R>): Router<R>;
35
+ use(mware: Filter<R>): Router<R>;
36
36
  /**
37
37
  * clear all routes from the Router.
38
38
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenk/frontend",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "description": "Actor oriented client side toolkit for Quenk Technologies.",
5
5
  "author": [
6
6
  "Quenk Technologies Limited <info@quenk.com> (https://quenk.com)"