@mojojs/core 0.19.1 → 0.21.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.
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,33 @@ interface PlaceholderTypes {
6
6
  [name: string]: PlaceholderType;
7
7
  }
8
8
  declare type ASTNode = [symbol, ...string[]];
9
+ /**
10
+ * Route pattern class.
11
+ */
9
12
  export declare class Pattern {
13
+ /**
14
+ * Pattern constraints.
15
+ */
10
16
  constraints: PlaceholderTypes;
17
+ /**
18
+ * Pattern default values.
19
+ */
11
20
  defaults: Record<string, any>;
21
+ /**
22
+ * Placeholder names.
23
+ */
12
24
  placeholders: string[];
25
+ /**
26
+ * Pattern in compiled regular expression form.
27
+ */
13
28
  regex: RegExp | undefined;
29
+ /**
30
+ * Placeholder types.
31
+ */
14
32
  types: PlaceholderTypes;
33
+ /**
34
+ * Raw unparsed pattern.
35
+ */
15
36
  unparsed: string;
16
37
  _ast: ASTNode[];
17
38
  constructor(path?: string, options?: {
@@ -19,11 +40,23 @@ export declare class Pattern {
19
40
  defaults?: Record<string, any>;
20
41
  types?: PlaceholderTypes;
21
42
  });
43
+ /**
44
+ * Match pattern against entire path.
45
+ */
22
46
  match(path: string, options: MatchOptions): Record<string, any> | null;
47
+ /**
48
+ * Match pattern against path and return the remainder.
49
+ */
23
50
  matchPartial(path: string, options: MatchOptions): (Record<string, any> & {
24
51
  remainder: string;
25
52
  }) | null;
53
+ /**
54
+ * Parse pattern.
55
+ */
26
56
  parse(path?: string): this;
57
+ /**
58
+ * Render pattern into a path with parameters.
59
+ */
27
60
  render(values: Record<string, string>, options: MatchOptions): string;
28
61
  _compile(withExtension: boolean): RegExp;
29
62
  _compileExtension(ext: PlaceholderType, withDefault: boolean): string;
@@ -6,10 +6,22 @@ const OP = {
6
6
  text: Symbol('text'),
7
7
  wildcard: Symbol('wildcard')
8
8
  };
9
+ /**
10
+ * Route pattern class.
11
+ */
9
12
  export class Pattern {
10
13
  constructor(path, options = {}) {
14
+ /**
15
+ * Placeholder names.
16
+ */
11
17
  this.placeholders = [];
18
+ /**
19
+ * Pattern in compiled regular expression form.
20
+ */
12
21
  this.regex = undefined;
22
+ /**
23
+ * Raw unparsed pattern.
24
+ */
13
25
  this.unparsed = '';
14
26
  this._ast = [];
15
27
  this.constraints = options.constraints ?? {};
@@ -18,12 +30,18 @@ export class Pattern {
18
30
  if (path !== undefined)
19
31
  this.parse(path);
20
32
  }
33
+ /**
34
+ * Match pattern against entire path.
35
+ */
21
36
  match(path, options) {
22
37
  const result = this.matchPartial(path, options);
23
38
  if (result === null || (result.remainder.length > 0 && result.remainder !== '/'))
24
39
  return null;
25
40
  return result.captures;
26
41
  }
42
+ /**
43
+ * Match pattern against path and return the remainder.
44
+ */
27
45
  matchPartial(path, options) {
28
46
  if (this.regex === undefined)
29
47
  this.regex = this._compile(options.isEndpoint);
@@ -41,11 +59,17 @@ export class Pattern {
41
59
  }
42
60
  return { remainder: path.replace(prefix, ''), captures };
43
61
  }
62
+ /**
63
+ * Parse pattern.
64
+ */
44
65
  parse(path = '') {
45
66
  this.unparsed = path.replace(/^\/*|\/+/g, '/').replace(/\/$/, '');
46
67
  this._tokenize();
47
68
  return this;
48
69
  }
70
+ /**
71
+ * Render pattern into a path with parameters.
72
+ */
49
73
  render(values, options) {
50
74
  let optional = values.ext == null;
51
75
  const parts = [];
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/router/pattern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/router/pattern.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,119 @@
1
1
  import type { Router } from '../router.js';
2
2
  import type { AnyArguments, MojoAction, RouteArguments } from '../types.js';
3
3
  import { Pattern } from './pattern.js';
4
+ /**
5
+ * Route class.
6
+ */
4
7
  export declare class Route {
8
+ /**
9
+ * The children of this route, used for nesting routes.
10
+ */
5
11
  children: Route[];
12
+ /**
13
+ * Custom route name, if defined.
14
+ */
6
15
  customName: string | undefined;
16
+ /**
17
+ * Default route name.
18
+ */
7
19
  defaultName: string | undefined;
20
+ /**
21
+ * Allow `under` semantics for this route.
22
+ */
8
23
  underRoute: boolean;
24
+ /**
25
+ * Restrict HTTP methods this route is allowed to handle, defaults to no restrictions.
26
+ */
9
27
  methods: string[];
28
+ /**
29
+ * Pattern for this route.
30
+ */
10
31
  pattern: Pattern;
32
+ /**
33
+ * Activate conditions for this route.
34
+ */
11
35
  requirements: Array<Record<string, any>>;
36
+ /**
37
+ * Activate `websocket` semantics for this route.
38
+ */
12
39
  websocketRoute: boolean;
13
40
  _parent: WeakRef<Route> | undefined;
14
41
  _root: WeakRef<Router> | undefined;
42
+ /**
43
+ * Add a child to this route.
44
+ */
15
45
  addChild(child: Route): Route;
46
+ /**
47
+ * Generate route matching any of the listed HTTP request methods or all.
48
+ */
16
49
  any(...args: AnyArguments): Route;
50
+ /**
51
+ * Generate route matching only `DELETE` requests.
52
+ */
17
53
  delete(...args: RouteArguments): Route;
54
+ /**
55
+ * Generate route matching only `GET` requests.
56
+ */
18
57
  get(...args: RouteArguments): Route;
58
+ /**
59
+ * Check if this route has a WebSocket ancestor and cache the result for future checks.
60
+ */
19
61
  hasWebSocket(): boolean;
62
+ /**
63
+ * Check if this route qualifies as an endpoint.
64
+ */
20
65
  isEndpoint(): boolean;
66
+ /**
67
+ * The name of this route, defaults to an automatically generated name based on the route pattern. Note that the name
68
+ * `current` is reserved for referring to the current route.
69
+ */
21
70
  name(name: string): this;
71
+ /**
72
+ * Generate route matching only `OPTIONS` requests.
73
+ */
22
74
  options(...args: RouteArguments): Route;
75
+ /**
76
+ * The parent of this route.
77
+ */
23
78
  get parent(): Route | undefined;
24
79
  set parent(parent: Route | undefined);
80
+ /**
81
+ * Generate route matching only `PATCH` requests.
82
+ */
25
83
  patch(...args: RouteArguments): Route;
84
+ /**
85
+ * Generate route matching only `POST` requests.
86
+ */
26
87
  post(...args: RouteArguments): Route;
88
+ /**
89
+ * Generate route matching only `PUT` requests.
90
+ */
27
91
  put(...args: RouteArguments): Route;
92
+ /**
93
+ * Render route with parameters into a path.
94
+ */
28
95
  render(values?: {}): string;
96
+ /**
97
+ * Activate conditions for this route. Note that this automatically disables the routing cache, since conditions are
98
+ * too complex for caching.
99
+ */
29
100
  requires(condition: string, requirement: Record<string, any>): this;
101
+ /**
102
+ * Return the `Router` object this route is a descendant of.
103
+ */
30
104
  get root(): Router | undefined;
31
105
  set root(root: Router | undefined);
106
+ /**
107
+ * Set default parameters for this route.
108
+ */
32
109
  to(...targets: Array<string | MojoAction | Record<string, any>>): this;
110
+ /**
111
+ * Generate route for a nested route with its own intermediate destination.
112
+ */
33
113
  under(...args: AnyArguments): Route;
114
+ /**
115
+ * Generate route matching only WebSocket handshake requests.
116
+ */
34
117
  websocket(...args: RouteArguments): Route;
35
118
  _branch(): Array<Router | Route>;
36
119
  }
@@ -1,23 +1,56 @@
1
1
  import { Pattern } from './pattern.js';
2
+ /**
3
+ * Route class.
4
+ */
2
5
  export class Route {
3
6
  constructor() {
7
+ /**
8
+ * The children of this route, used for nesting routes.
9
+ */
4
10
  this.children = [];
11
+ /**
12
+ * Custom route name, if defined.
13
+ */
5
14
  this.customName = undefined;
15
+ /**
16
+ * Default route name.
17
+ */
6
18
  this.defaultName = undefined;
19
+ /**
20
+ * Allow `under` semantics for this route.
21
+ */
7
22
  this.underRoute = false;
23
+ /**
24
+ * Restrict HTTP methods this route is allowed to handle, defaults to no restrictions.
25
+ */
8
26
  this.methods = [];
27
+ /**
28
+ * Pattern for this route.
29
+ */
9
30
  this.pattern = new Pattern();
31
+ /**
32
+ * Activate conditions for this route.
33
+ */
10
34
  this.requirements = [];
35
+ /**
36
+ * Activate `websocket` semantics for this route.
37
+ */
11
38
  this.websocketRoute = false;
12
39
  this._parent = undefined;
13
40
  this._root = undefined;
14
41
  }
42
+ /**
43
+ * Add a child to this route.
44
+ */
15
45
  addChild(child) {
16
46
  this.children.push(child);
17
47
  child.parent = this;
18
48
  child.root = this.root;
19
49
  return child;
20
50
  }
51
+ /**
52
+ * Generate route matching any of the listed HTTP request methods or all.
53
+ */
21
54
  any(...args) {
22
55
  const child = new Route();
23
56
  const childPattern = child.pattern;
@@ -39,42 +72,76 @@ export class Route {
39
72
  childPattern.types = this.root?.types ?? {};
40
73
  return this.addChild(child);
41
74
  }
75
+ /**
76
+ * Generate route matching only `DELETE` requests.
77
+ */
42
78
  delete(...args) {
43
79
  return this.any(['DELETE'], ...args);
44
80
  }
81
+ /**
82
+ * Generate route matching only `GET` requests.
83
+ */
45
84
  get(...args) {
46
85
  return this.any(['GET'], ...args);
47
86
  }
87
+ /**
88
+ * Check if this route has a WebSocket ancestor and cache the result for future checks.
89
+ */
48
90
  hasWebSocket() {
49
91
  return this._branch()
50
92
  .map(route => route.websocketRoute)
51
93
  .includes(true);
52
94
  }
95
+ /**
96
+ * Check if this route qualifies as an endpoint.
97
+ */
53
98
  isEndpoint() {
54
99
  return this.children.length === 0;
55
100
  }
101
+ /**
102
+ * The name of this route, defaults to an automatically generated name based on the route pattern. Note that the name
103
+ * `current` is reserved for referring to the current route.
104
+ */
56
105
  name(name) {
57
106
  this.customName = name;
58
107
  return this;
59
108
  }
109
+ /**
110
+ * Generate route matching only `OPTIONS` requests.
111
+ */
60
112
  options(...args) {
61
113
  return this.any(['OPTIONS'], ...args);
62
114
  }
115
+ /**
116
+ * The parent of this route.
117
+ */
63
118
  get parent() {
64
119
  return this._parent?.deref();
65
120
  }
66
121
  set parent(parent) {
67
122
  this._parent = parent === undefined ? undefined : new WeakRef(parent);
68
123
  }
124
+ /**
125
+ * Generate route matching only `PATCH` requests.
126
+ */
69
127
  patch(...args) {
70
128
  return this.any(['PATCH'], ...args);
71
129
  }
130
+ /**
131
+ * Generate route matching only `POST` requests.
132
+ */
72
133
  post(...args) {
73
134
  return this.any(['POST'], ...args);
74
135
  }
136
+ /**
137
+ * Generate route matching only `PUT` requests.
138
+ */
75
139
  put(...args) {
76
140
  return this.any(['PUT'], ...args);
77
141
  }
142
+ /**
143
+ * Render route with parameters into a path.
144
+ */
78
145
  render(values = {}) {
79
146
  const parts = [];
80
147
  const branch = this._branch();
@@ -84,6 +151,10 @@ export class Route {
84
151
  }
85
152
  return parts.reverse().join('');
86
153
  }
154
+ /**
155
+ * Activate conditions for this route. Note that this automatically disables the routing cache, since conditions are
156
+ * too complex for caching.
157
+ */
87
158
  requires(condition, requirement) {
88
159
  const root = this.root;
89
160
  if (root === undefined)
@@ -94,12 +165,18 @@ export class Route {
94
165
  root.cache = null;
95
166
  return this;
96
167
  }
168
+ /**
169
+ * Return the `Router` object this route is a descendant of.
170
+ */
97
171
  get root() {
98
172
  return this._root?.deref();
99
173
  }
100
174
  set root(root) {
101
175
  this._root = root === undefined ? undefined : new WeakRef(root);
102
176
  }
177
+ /**
178
+ * Set default parameters for this route.
179
+ */
103
180
  to(...targets) {
104
181
  const defaults = this.pattern.defaults;
105
182
  for (const target of targets) {
@@ -119,11 +196,17 @@ export class Route {
119
196
  }
120
197
  return this;
121
198
  }
199
+ /**
200
+ * Generate route for a nested route with its own intermediate destination.
201
+ */
122
202
  under(...args) {
123
203
  const child = this.any(...args);
124
204
  child.underRoute = true;
125
205
  return child;
126
206
  }
207
+ /**
208
+ * Generate route matching only WebSocket handshake requests.
209
+ */
127
210
  websocket(...args) {
128
211
  const child = this.any(...args);
129
212
  child.websocketRoute = true;
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/router/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/router/route.ts"],"names":[],"mappings":"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"}
package/lib/router.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { MojoContext, PlaceholderType } from './types.js';
2
+ import { Cache } from './cache.js';
2
3
  import { Plan } from './router/plan.js';
3
4
  import { Route } from './router/route.js';
4
- import LRU from 'lru-cache';
5
5
  declare type RouteIndex = Record<string, Route>;
6
6
  interface RouteSpec {
7
7
  ctx?: MojoContext;
@@ -10,19 +10,55 @@ interface RouteSpec {
10
10
  websocket: boolean;
11
11
  }
12
12
  declare type RouteCondition = (ctx: MojoContext, requirements: any) => boolean;
13
+ /**
14
+ * Router class.
15
+ */
13
16
  export declare class Router extends Route {
14
- cache: LRU<string, Plan> | null;
17
+ /**
18
+ * Routing cache.
19
+ */
20
+ cache: Cache<Plan> | null;
21
+ /**
22
+ * Contains all available conditions.
23
+ */
15
24
  conditions: Record<string, RouteCondition>;
25
+ /**
26
+ * Directories to look for controllers in, first one has the highest precedence.
27
+ */
16
28
  controllerPaths: string[];
29
+ /**
30
+ * Already loaded controllers.
31
+ */
17
32
  controllers: Record<string, any>;
33
+ /**
34
+ * Registered placeholder types, by default only `num` is already defined.
35
+ */
18
36
  types: Record<string, PlaceholderType>;
19
37
  _lookupIndex: RouteIndex | undefined;
20
38
  constructor();
39
+ /**
40
+ * Register a condition.
41
+ */
21
42
  addCondition(name: string, fn: RouteCondition): this;
43
+ /**
44
+ * Register a placeholder type.
45
+ */
22
46
  addType(name: string, value: PlaceholderType): this;
47
+ /**
48
+ * Match routes and dispatch to actions with and without controllers.
49
+ */
23
50
  dispatch(ctx: MojoContext): Promise<boolean>;
51
+ /**
52
+ * Find route by name and cache all results for future lookups.
53
+ */
24
54
  lookup(name: string): Route | null;
55
+ /**
56
+ * Plot a route.
57
+ */
25
58
  plot(spec: RouteSpec): Promise<Plan | null>;
59
+ /**
60
+ * Prepare controllers for routing.
61
+ */
26
62
  warmup(): Promise<void>;
27
63
  _getPlan(ctx: MojoContext): Promise<Plan | null>;
28
64
  _walk(plan: Plan, route: Route, spec: RouteSpec): Promise<boolean>;
package/lib/router.js CHANGED
@@ -1,27 +1,54 @@
1
+ import { Cache } from './cache.js';
1
2
  import { Plan } from './router/plan.js';
2
3
  import { Route } from './router/route.js';
3
4
  import * as util from './util.js';
4
- import LRU from 'lru-cache';
5
5
  const PLACEHOLDER = {};
6
+ /**
7
+ * Router class.
8
+ */
6
9
  export class Router extends Route {
7
10
  constructor() {
8
11
  super();
9
- this.cache = new LRU(500);
12
+ /**
13
+ * Routing cache.
14
+ */
15
+ this.cache = new Cache();
16
+ /**
17
+ * Contains all available conditions.
18
+ */
10
19
  this.conditions = {};
20
+ /**
21
+ * Directories to look for controllers in, first one has the highest precedence.
22
+ */
11
23
  this.controllerPaths = [];
24
+ /**
25
+ * Already loaded controllers.
26
+ */
12
27
  this.controllers = {};
28
+ /**
29
+ * Registered placeholder types, by default only `num` is already defined.
30
+ */
13
31
  this.types = { num: /[0-9]+/ };
14
32
  this._lookupIndex = undefined;
15
33
  this.root = this;
16
34
  }
35
+ /**
36
+ * Register a condition.
37
+ */
17
38
  addCondition(name, fn) {
18
39
  this.conditions[name] = fn;
19
40
  return this;
20
41
  }
42
+ /**
43
+ * Register a placeholder type.
44
+ */
21
45
  addType(name, value) {
22
46
  this.types[name] = value;
23
47
  return this;
24
48
  }
49
+ /**
50
+ * Match routes and dispatch to actions with and without controllers.
51
+ */
25
52
  async dispatch(ctx) {
26
53
  const plan = await this._getPlan(ctx);
27
54
  if (plan === null)
@@ -60,6 +87,9 @@ export class Router extends Route {
60
87
  }
61
88
  return true;
62
89
  }
90
+ /**
91
+ * Find route by name and cache all results for future lookups.
92
+ */
63
93
  lookup(name) {
64
94
  if (this._lookupIndex === undefined) {
65
95
  const defaultNames = {};
@@ -79,6 +109,9 @@ export class Router extends Route {
79
109
  }
80
110
  return this._lookupIndex[name] === undefined ? null : this._lookupIndex[name];
81
111
  }
112
+ /**
113
+ * Plot a route.
114
+ */
82
115
  async plot(spec) {
83
116
  const plan = new Plan();
84
117
  const steps = plan.steps;
@@ -91,6 +124,9 @@ export class Router extends Route {
91
124
  }
92
125
  return plan.endpoint === undefined ? null : plan;
93
126
  }
127
+ /**
128
+ * Prepare controllers for routing.
129
+ */
94
130
  async warmup() {
95
131
  Object.assign(this.controllers, await util.loadModules(this.controllerPaths));
96
132
  }