@mojojs/core 0.19.0 → 0.20.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.
Files changed (135) hide show
  1. package/lib/app.d.ts +3 -0
  2. package/lib/app.js +3 -0
  3. package/lib/app.js.map +1 -1
  4. package/lib/body/params.d.ts +6 -0
  5. package/lib/body/params.js +6 -0
  6. package/lib/body/params.js.map +1 -1
  7. package/lib/cache.d.ts +23 -0
  8. package/lib/cache.js +45 -0
  9. package/lib/cache.js.map +1 -0
  10. package/lib/cli/create-full-app.d.ts +3 -0
  11. package/lib/cli/create-full-app.js +5 -2
  12. package/lib/cli/create-full-app.js.map +1 -1
  13. package/lib/cli/create-lite-app.d.ts +3 -0
  14. package/lib/cli/create-lite-app.js +3 -0
  15. package/lib/cli/create-lite-app.js.map +1 -1
  16. package/lib/cli/eval.d.ts +3 -0
  17. package/lib/cli/eval.js +3 -0
  18. package/lib/cli/eval.js.map +1 -1
  19. package/lib/cli/get.d.ts +3 -0
  20. package/lib/cli/get.js +3 -0
  21. package/lib/cli/get.js.map +1 -1
  22. package/lib/cli/repl.d.ts +3 -0
  23. package/lib/cli/repl.js +3 -0
  24. package/lib/cli/repl.js.map +1 -1
  25. package/lib/cli/routes.d.ts +3 -0
  26. package/lib/cli/routes.js +3 -0
  27. package/lib/cli/routes.js.map +1 -1
  28. package/lib/cli/server.d.ts +3 -0
  29. package/lib/cli/server.js +3 -0
  30. package/lib/cli/server.js.map +1 -1
  31. package/lib/cli/version.d.ts +3 -0
  32. package/lib/cli/version.js +3 -0
  33. package/lib/cli/version.js.map +1 -1
  34. package/lib/context.d.ts +1 -1
  35. package/lib/context.js +1 -1
  36. package/lib/core.d.ts +3 -0
  37. package/lib/core.js +3 -0
  38. package/lib/core.js.map +1 -1
  39. package/lib/hooks.d.ts +9 -0
  40. package/lib/hooks.js +9 -0
  41. package/lib/hooks.js.map +1 -1
  42. package/lib/logger.d.ts +69 -0
  43. package/lib/logger.js +63 -0
  44. package/lib/logger.js.map +1 -1
  45. package/lib/mime.d.ts +12 -0
  46. package/lib/mime.js +12 -0
  47. package/lib/mime.js.map +1 -1
  48. package/lib/mock/request.d.ts +3 -0
  49. package/lib/mock/request.js +3 -0
  50. package/lib/mock/request.js.map +1 -1
  51. package/lib/mock/response.d.ts +3 -0
  52. package/lib/mock/response.js +3 -0
  53. package/lib/mock/response.js.map +1 -1
  54. package/lib/plugins/default-helpers.d.ts +3 -0
  55. package/lib/plugins/default-helpers.js +3 -0
  56. package/lib/plugins/default-helpers.js.map +1 -1
  57. package/lib/plugins/exception-helpers.d.ts +3 -0
  58. package/lib/plugins/exception-helpers.js +3 -0
  59. package/lib/plugins/exception-helpers.js.map +1 -1
  60. package/lib/plugins/header-conditions.d.ts +3 -0
  61. package/lib/plugins/header-conditions.js +3 -0
  62. package/lib/plugins/header-conditions.js.map +1 -1
  63. package/lib/plugins/json-config.d.ts +3 -0
  64. package/lib/plugins/json-config.js +3 -0
  65. package/lib/plugins/json-config.js.map +1 -1
  66. package/lib/plugins/mt-engine.d.ts +3 -0
  67. package/lib/plugins/mt-engine.js +5 -2
  68. package/lib/plugins/mt-engine.js.map +1 -1
  69. package/lib/plugins/view-helpers.d.ts +3 -0
  70. package/lib/plugins/view-helpers.js +3 -0
  71. package/lib/plugins/view-helpers.js.map +1 -1
  72. package/lib/plugins/yaml-config.d.ts +3 -0
  73. package/lib/plugins/yaml-config.js +3 -0
  74. package/lib/plugins/yaml-config.js.map +1 -1
  75. package/lib/renderer.d.ts +38 -0
  76. package/lib/renderer.js +38 -0
  77. package/lib/renderer.js.map +1 -1
  78. package/lib/router/pattern.d.ts +33 -0
  79. package/lib/router/pattern.js +24 -0
  80. package/lib/router/pattern.js.map +1 -1
  81. package/lib/router/plan.d.ts +15 -0
  82. package/lib/router/plan.js +15 -0
  83. package/lib/router/plan.js.map +1 -1
  84. package/lib/router/route.d.ts +83 -0
  85. package/lib/router/route.js +83 -0
  86. package/lib/router/route.js.map +1 -1
  87. package/lib/router.d.ts +38 -2
  88. package/lib/router.js +38 -2
  89. package/lib/router.js.map +1 -1
  90. package/lib/server/cookie.d.ts +6 -0
  91. package/lib/server/cookie.js +6 -0
  92. package/lib/server/cookie.js.map +1 -1
  93. package/lib/server.d.ts +21 -0
  94. package/lib/server.js +15 -0
  95. package/lib/server.js.map +1 -1
  96. package/lib/session.d.ts +35 -0
  97. package/lib/session.js +35 -0
  98. package/lib/session.js.map +1 -1
  99. package/lib/static.d.ts +22 -0
  100. package/lib/static.js +22 -0
  101. package/lib/static.js.map +1 -1
  102. package/lib/user-agent/cookie-jar.d.ts +12 -0
  103. package/lib/user-agent/cookie-jar.js +12 -0
  104. package/lib/user-agent/cookie-jar.js.map +1 -1
  105. package/lib/user-agent/mock.d.ts +15 -0
  106. package/lib/user-agent/mock.js +15 -0
  107. package/lib/user-agent/mock.js.map +1 -1
  108. package/lib/user-agent/response.d.ts +27 -0
  109. package/lib/user-agent/response.js +27 -0
  110. package/lib/user-agent/response.js.map +1 -1
  111. package/lib/user-agent/test.d.ts +115 -2
  112. package/lib/user-agent/test.js +123 -10
  113. package/lib/user-agent/test.js.map +1 -1
  114. package/lib/user-agent/transport/http.d.ts +12 -0
  115. package/lib/user-agent/transport/http.js +12 -0
  116. package/lib/user-agent/transport/http.js.map +1 -1
  117. package/lib/user-agent/transport/https.d.ts +3 -0
  118. package/lib/user-agent/transport/https.js +3 -0
  119. package/lib/user-agent/transport/https.js.map +1 -1
  120. package/lib/user-agent/transport/ws.d.ts +6 -0
  121. package/lib/user-agent/transport/ws.js +6 -0
  122. package/lib/user-agent/transport/ws.js.map +1 -1
  123. package/lib/util.d.ts +30 -0
  124. package/lib/util.js +30 -0
  125. package/lib/util.js.map +1 -1
  126. package/lib/validator/result.d.ts +9 -0
  127. package/lib/validator/result.js +3 -0
  128. package/lib/validator/result.js.map +1 -1
  129. package/lib/validator.d.ts +9 -0
  130. package/lib/validator.js +9 -0
  131. package/lib/validator.js.map +1 -1
  132. package/lib/websocket.d.ts +18 -0
  133. package/lib/websocket.js +12 -0
  134. package/lib/websocket.js.map +1 -1
  135. package/package.json +2 -4
package/lib/logger.js CHANGED
@@ -8,8 +8,14 @@ const LEVEL = {
8
8
  debug: 6,
9
9
  trace: 7
10
10
  };
11
+ /**
12
+ * A simple logger class.
13
+ */
11
14
  export class Logger {
12
15
  constructor(options = {}) {
16
+ /**
17
+ * The last few logged messages.
18
+ */
13
19
  this.history = [];
14
20
  this._level = 7;
15
21
  this.destination = options.destination ?? process.stderr;
@@ -17,9 +23,15 @@ export class Logger {
17
23
  this.level = process.env.MOJO_LOG_LEVEL ?? options.level ?? 'trace';
18
24
  this._historySize = options.historySize ?? 0;
19
25
  }
26
+ /**
27
+ * Create a child logger that will include context information with every log message.
28
+ */
20
29
  child(context) {
21
30
  return new ChildLogger(this, context);
22
31
  }
32
+ /**
33
+ * Log formatter with color highlighting.
34
+ */
23
35
  static colorFormatter(data) {
24
36
  const formatted = Logger.stringFormatter(data);
25
37
  if (data.level === 'error' || data.level === 'fatal')
@@ -28,35 +40,59 @@ export class Logger {
28
40
  return chalk.yellow(formatted);
29
41
  return formatted;
30
42
  }
43
+ /**
44
+ * Log `debug` message.
45
+ */
31
46
  debug(msg, context) {
32
47
  if (this._level >= LEVEL.debug)
33
48
  this._log('debug', msg, context);
34
49
  }
50
+ /**
51
+ * Log formatter without color highlighting.
52
+ */
35
53
  static stringFormatter(data) {
36
54
  if (data.requestId !== undefined)
37
55
  return `[${data.time}] [${data.level}] [${data.requestId}] ${data.msg}\n`;
38
56
  return `[${data.time}] [${data.level}] ${data.msg}\n`;
39
57
  }
58
+ /**
59
+ * Log formatter for systemd.
60
+ */
40
61
  static systemdFormatter(data) {
41
62
  if (data.requestId === undefined)
42
63
  return `<${LEVEL[data.level]}>[${data.level.substring(0, 1)}] ${data.msg}\n`;
43
64
  return `<${LEVEL[data.level]}>[${data.level.substring(0, 1)}] [${data.requestId}] ${data.msg}\n`;
44
65
  }
66
+ /**
67
+ * Log `error` message.
68
+ */
45
69
  error(msg, context) {
46
70
  if (this._level >= LEVEL.error)
47
71
  this._log('error', msg, context);
48
72
  }
73
+ /**
74
+ * Log `fatal` message.
75
+ */
49
76
  fatal(msg, context) {
50
77
  if (this._level >= LEVEL.fatal)
51
78
  this._log('fatal', msg, context);
52
79
  }
80
+ /**
81
+ * Log `infor` message.
82
+ */
53
83
  info(msg, context) {
54
84
  if (this._level >= LEVEL.info)
55
85
  this._log('info', msg, context);
56
86
  }
87
+ /**
88
+ * JSON log formatter.
89
+ */
57
90
  static jsonFormatter(data) {
58
91
  return JSON.stringify(data);
59
92
  }
93
+ /**
94
+ * Currently active log level.
95
+ */
60
96
  get level() {
61
97
  return Object.keys(LEVEL).find(key => LEVEL[key] === this._level);
62
98
  }
@@ -64,10 +100,16 @@ export class Logger {
64
100
  assert(LEVEL[level] !== undefined, `Unsupported log level "${level}"`);
65
101
  this._level = LEVEL[level];
66
102
  }
103
+ /**
104
+ * Log `trace` message.
105
+ */
67
106
  trace(msg, context) {
68
107
  if (this._level >= LEVEL.trace)
69
108
  this._log('trace', msg, context);
70
109
  }
110
+ /**
111
+ * Log `warn` message.
112
+ */
71
113
  warn(msg, context) {
72
114
  if (this._level >= LEVEL.warn)
73
115
  this._log('warn', msg, context);
@@ -88,26 +130,47 @@ export class Logger {
88
130
  }
89
131
  }
90
132
  }
133
+ /**
134
+ * Child logger class.
135
+ */
91
136
  export class ChildLogger {
92
137
  constructor(parent, context) {
93
138
  this.parent = parent;
94
139
  this.context = context;
95
140
  }
141
+ /**
142
+ * Log `debug` message.
143
+ */
96
144
  debug(msg) {
97
145
  this.parent.debug(msg, this.context);
98
146
  }
147
+ /**
148
+ * Log `error` message.
149
+ */
99
150
  error(msg) {
100
151
  this.parent.error(msg, this.context);
101
152
  }
153
+ /**
154
+ * Log `fatal` message.
155
+ */
102
156
  fatal(msg) {
103
157
  this.parent.fatal(msg, this.context);
104
158
  }
159
+ /**
160
+ * Log `info` message.
161
+ */
105
162
  info(msg) {
106
163
  this.parent.info(msg, this.context);
107
164
  }
165
+ /**
166
+ * Log `trace` message.
167
+ */
108
168
  trace(msg) {
109
169
  this.parent.trace(msg, this.context);
110
170
  }
171
+ /**
172
+ * Log `warn` message.
173
+ */
111
174
  warn(msg) {
112
175
  this.parent.warn(msg, this.context);
113
176
  }
package/lib/logger.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/lib/mime.d.ts CHANGED
@@ -1,6 +1,18 @@
1
+ /**
2
+ * MIME class.
3
+ */
1
4
  export declare class Mime {
5
+ /**
6
+ * Custom MIME types.
7
+ */
2
8
  custom: Record<string, string>;
3
9
  _reverseCustom: Record<string, string> | undefined;
10
+ /**
11
+ * Detect file extensions from `Accept` header value.
12
+ */
4
13
  detect(accepts: string): string[];
14
+ /**
15
+ * Get MIME type for file extension.
16
+ */
5
17
  extType(ext: string): string | null;
6
18
  }
package/lib/mime.js CHANGED
@@ -1,6 +1,12 @@
1
1
  import mime from 'mime-types';
2
+ /**
3
+ * MIME class.
4
+ */
2
5
  export class Mime {
3
6
  constructor() {
7
+ /**
8
+ * Custom MIME types.
9
+ */
4
10
  this.custom = {
5
11
  html: 'text/html; charset=utf-8',
6
12
  json: 'application/json; charset=utf-8',
@@ -9,6 +15,9 @@ export class Mime {
9
15
  };
10
16
  this._reverseCustom = undefined;
11
17
  }
18
+ /**
19
+ * Detect file extensions from `Accept` header value.
20
+ */
12
21
  detect(accepts) {
13
22
  if (this._reverseCustom === undefined) {
14
23
  this._reverseCustom = {};
@@ -35,6 +44,9 @@ export class Mime {
35
44
  }
36
45
  return exts;
37
46
  }
47
+ /**
48
+ * Get MIME type for file extension.
49
+ */
38
50
  extType(ext) {
39
51
  return this.custom[ext] ?? mime.types[ext] ?? null;
40
52
  }
package/lib/mime.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,MAAM,OAAO,IAAI;IAAjB;QACE,WAAM,GAA2B;YAC/B,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,iCAAiC;YACvC,GAAG,EAAE,2BAA2B;YAChC,IAAI,EAAE,0BAA0B;SACjC,CAAC;QACF,mBAAc,GAAuC,SAAS,CAAC;IA+BjE,CAAC;IA7BC,MAAM,CAAC,OAAe;QACpB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC3C,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aACtC;SACF;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QAEpC,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACpF,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;QAED,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACzE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B;;GAEG;AACH,MAAM,OAAO,IAAI;IAAjB;QACE;;WAEG;QACH,WAAM,GAA2B;YAC/B,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,iCAAiC;YACvC,GAAG,EAAE,2BAA2B;YAChC,IAAI,EAAE,0BAA0B;SACjC,CAAC;QACF,mBAAc,GAAuC,SAAS,CAAC;IAqCjE,CAAC;IAnCC;;OAEG;IACH,MAAM,CAAC,OAAe;QACpB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC3C,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aACtC;SACF;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QAEpC,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACpF,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;QAED,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACzE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;CACF"}
@@ -1,6 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import type { MockRequestOptions } from '../types.js';
3
3
  import { IncomingMessage } from 'http';
4
+ /**
5
+ * Mock request class.
6
+ */
4
7
  export declare class MockRequest extends IncomingMessage {
5
8
  constructor(options?: MockRequestOptions);
6
9
  }
@@ -1,5 +1,8 @@
1
1
  import { IncomingMessage } from 'http';
2
2
  import { Socket } from 'net';
3
+ /**
4
+ * Mock request class.
5
+ */
3
6
  export class MockRequest extends IncomingMessage {
4
7
  constructor(options = {}) {
5
8
  super(new Socket());
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/mock/request.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAE3B,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YAAY,UAA8B,EAAE;QAC1C,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/mock/request.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YAAY,UAA8B,EAAE;QAC1C,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;IAChC,CAAC;CACF"}
@@ -1,4 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { ServerResponse } from 'http';
3
+ /**
4
+ * Mock response class.
5
+ */
3
6
  export declare class MockResponse extends ServerResponse {
4
7
  }
@@ -1,4 +1,7 @@
1
1
  import { ServerResponse } from 'http';
2
+ /**
3
+ * Mock response class.
4
+ */
2
5
  export class MockResponse extends ServerResponse {
3
6
  }
4
7
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/mock/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,MAAM,CAAC;AAEpC,MAAM,OAAO,YAAa,SAAQ,cAAc;CAAG"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/mock/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,cAAc;CAAG"}
@@ -1,2 +1,5 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * Default helper plugin.
4
+ */
2
5
  export default function defaultHelpersPlugin(app: MojoApp): void;
@@ -1,4 +1,7 @@
1
1
  import { inspect } from 'util';
2
+ /**
3
+ * Default helper plugin.
4
+ */
2
5
  export default function defaultHelpersPlugin(app) {
3
6
  app.addHelper('currentRoute', currentRoute);
4
7
  app.decorateContext('inspect', (object, options) => inspect(object, options));
@@ -1 +1 @@
1
- {"version":3,"file":"default-helpers.js","sourceRoot":"","sources":["../../src/plugins/default-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,GAAY;IACvD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5C,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,MAA2B,EAAE,OAAuB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACrH,CAAC;AAED,SAAS,YAAY,CAAC,GAAgB;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"default-helpers.js","sourceRoot":"","sources":["../../src/plugins/default-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,GAAY;IACvD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5C,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,MAA2B,EAAE,OAAuB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACrH,CAAC;AAED,SAAS,YAAY,CAAC,GAAgB;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;AAC7D,CAAC"}
@@ -1,2 +1,5 @@
1
1
  import type { App } from '../app.js';
2
+ /**
3
+ * Exception helper plugin.
4
+ */
2
5
  export default function exceptionHelpersPlugin(app: App): void;
@@ -1,5 +1,8 @@
1
1
  import { Logger } from '../logger.js';
2
2
  import { exceptionContext } from '../util.js';
3
+ /**
4
+ * Exception helper plugin.
5
+ */
3
6
  export default function exceptionHelpersPlugin(app) {
4
7
  app.addHelper('exception', exception);
5
8
  app.addHelper('htmlException', htmlException);
@@ -1 +1 @@
1
- {"version":3,"file":"exception-helpers.js","sourceRoot":"","sources":["../../src/plugins/exception-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exception-helpers.js","sourceRoot":"","sources":["../../src/plugins/exception-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,5 @@
1
1
  import type { App } from '../app.js';
2
+ /**
3
+ * Header condition plugin.
4
+ */
2
5
  export default function headerConditionsPlugin(app: App): void;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Header condition plugin.
3
+ */
1
4
  export default function headerConditionsPlugin(app) {
2
5
  const router = app.router;
3
6
  router.addCondition('headers', headerCondition);
@@ -1 +1 @@
1
- {"version":3,"file":"header-conditions.js","sourceRoot":"","sources":["../../src/plugins/header-conditions.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAQ;IACrD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,GAAgB,EAAE,WAAmC;IAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;KAC/C;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAgB,EAAE,WAAmB;IAC1D,OAAO,eAAe,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"header-conditions.js","sourceRoot":"","sources":["../../src/plugins/header-conditions.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAQ;IACrD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,GAAgB,EAAE,WAAmC;IAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;KAC/C;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAgB,EAAE,WAAmB;IAC1D,OAAO,eAAe,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -1,3 +1,6 @@
1
1
  import type { ConfigOptions, MojoApp } from '../types.js';
2
+ /**
3
+ * JSON config plugin.
4
+ */
2
5
  export default function jsonConfigPlugin(app: MojoApp, options: ConfigOptions): void;
3
6
  export declare function loadConfig(app: MojoApp, options: ConfigOptions, parser: (config: string) => any): void;
@@ -1,4 +1,7 @@
1
1
  import Path from '@mojojs/path';
2
+ /**
3
+ * JSON config plugin.
4
+ */
2
5
  export default function jsonConfigPlugin(app, options) {
3
6
  if (options.ext === undefined)
4
7
  options.ext = 'json';
@@ -1 +1 @@
1
- {"version":3,"file":"json-config.js","sourceRoot":"","sources":["../../src/plugins/json-config.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,cAAc,CAAC;AAEhC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAsB;IAC3E,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,OAAsB,EAAE,MAA+B;IAC9F,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAC1D;SAAM;QACL,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;KAClE;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,YAAY,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1E,GAAG,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACxE;AACH,CAAC"}
1
+ {"version":3,"file":"json-config.js","sourceRoot":"","sources":["../../src/plugins/json-config.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,cAAc,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAsB;IAC3E,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,OAAsB,EAAE,MAA+B;IAC9F,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAC1D;SAAM;QACL,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;KAClE;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,YAAY,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1E,GAAG,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACxE;AACH,CAAC"}
@@ -1,2 +1,5 @@
1
1
  import type { App } from '../app.js';
2
+ /**
3
+ * `@mojojs/template` engine plugin.
4
+ */
2
5
  export default function mtEnginePlugin(app: App): void;
@@ -1,14 +1,17 @@
1
1
  import { createHash } from 'crypto';
2
+ import { Cache } from '../cache.js';
2
3
  import { xmlEscape } from '@mojojs/dom';
3
4
  import Path from '@mojojs/path';
4
5
  import Template from '@mojojs/template';
5
- import LRU from 'lru-cache';
6
+ /**
7
+ * `@mojojs/template` engine plugin.
8
+ */
6
9
  export default function mtEnginePlugin(app) {
7
10
  app.renderer.addEngine('mt', new MTEngine());
8
11
  }
9
12
  class MTEngine {
10
13
  constructor() {
11
- this.cache = new LRU(100);
14
+ this.cache = new Cache();
12
15
  }
13
16
  async render(ctx, options) {
14
17
  let template;
@@ -1 +1 @@
1
- {"version":3,"file":"mt-engine.js","sourceRoot":"","sources":["../../src/plugins/mt-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,WAAW,CAAC;AAE5B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,GAAQ;IAC7C,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,QAAQ;IAAd;QACE,UAAK,GAAiE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IA0BrF,CAAC;IAxBC,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,OAAsB;QACnD,IAAI,QAAQ,CAAC;QAEb,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACpC;SACF;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE5C,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjE,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC5C;SACF;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,EAAC,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF"}
1
+ {"version":3,"file":"mt-engine.js","sourceRoot":"","sources":["../../src/plugins/mt-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,GAAQ;IAC7C,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,QAAQ;IAAd;QACE,UAAK,GAA2D,IAAI,KAAK,EAAE,CAAC;IA0B9E,CAAC;IAxBC,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,OAAsB;QACnD,IAAI,QAAQ,CAAC;QAEb,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACpC;SACF;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE5C,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjE,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC5C;SACF;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,EAAC,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF"}
@@ -1,2 +1,5 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * View helper plugin.
4
+ */
2
5
  export default function viewHelpersPlugin(app: MojoApp): void;
@@ -1,4 +1,7 @@
1
1
  import DOM, { SafeString } from '@mojojs/dom';
2
+ /**
3
+ * View helper plugin.
4
+ */
2
5
  export default function viewHelpersPlugin(app) {
3
6
  app.addHelper('include', include);
4
7
  app.addHelper('mojoFaviconTag', mojoFaviconTag);
@@ -1 +1 @@
1
- {"version":3,"file":"view-helpers.js","sourceRoot":"","sources":["../../src/plugins/view-helpers.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,EAAE,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAY;IACpD,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAElC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAChD,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAgB,EAAE,OAAsB,EAAE,KAA0B;IACzF,OAAO,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,GAAgB;IACtC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,SAAS,CAAC,GAAgB,EAAE,MAAc;IACjD,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAgB,EAAE,MAAc;IAChD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,GAAG,CACV,GAAgB,EAChB,IAAY,EACZ,QAAgC,EAAE,EAClC,UAA+B,EAAE;IAEjC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"view-helpers.js","sourceRoot":"","sources":["../../src/plugins/view-helpers.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,EAAE,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAY;IACpD,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAElC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAChD,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAgB,EAAE,OAAsB,EAAE,KAA0B;IACzF,OAAO,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,GAAgB;IACtC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,SAAS,CAAC,GAAgB,EAAE,MAAc;IACjD,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAgB,EAAE,MAAc;IAChD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,GAAG,CACV,GAAgB,EAChB,IAAY,EACZ,QAAgC,EAAE,EAClC,UAA+B,EAAE;IAEjC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -1,2 +1,5 @@
1
1
  import type { MojoApp, ConfigOptions } from '../types.js';
2
+ /**
3
+ * YAML config plugin.
4
+ */
2
5
  export default function yamlConfigPlugin(app: MojoApp, options: ConfigOptions): void;
@@ -1,5 +1,8 @@
1
1
  import { loadConfig } from './json-config.js';
2
2
  import yaml from 'js-yaml';
3
+ /**
4
+ * YAML config plugin.
5
+ */
3
6
  export default function yamlConfigPlugin(app, options) {
4
7
  if (options.ext === undefined)
5
8
  options.ext = 'yml';
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-config.js","sourceRoot":"","sources":["../../src/plugins/yaml-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAsB;IAC3E,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"yaml-config.js","sourceRoot":"","sources":["../../src/plugins/yaml-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAsB;IAC3E,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
package/lib/renderer.d.ts CHANGED
@@ -14,20 +14,58 @@ declare type ViewIndex = Record<string, ViewSuggestion[]>;
14
14
  interface ViewEngine {
15
15
  render: (ctx: MojoContext, options: RenderOptions) => Promise<Buffer>;
16
16
  }
17
+ /**
18
+ * Renderer class.
19
+ */
17
20
  export declare class Renderer {
21
+ /**
22
+ * Try to negotiate compression for dynamically generated response content and gzip compress it automatically.
23
+ */
18
24
  autoCompress: boolean;
25
+ /**
26
+ * The default template engine to use for rendering in cases where auto-detection doesn't work, like for inline
27
+ * templates, defaults to `mt`.
28
+ */
19
29
  defaultEngine: string;
30
+ /**
31
+ * The default format to render if format is not set, defaults to `html`. Note that changing the default away from
32
+ * `html` is not recommended, as it has the potential to break, for example, plugins with bundled templates.
33
+ */
20
34
  defaultFormat: string;
35
+ /**
36
+ * Template engines.
37
+ */
21
38
  engines: Record<string, ViewEngine>;
39
+ /**
40
+ * Minimum output size in bytes required for compression to be used if enabled, defaults to `860`.
41
+ */
22
42
  minCompressSize: number;
43
+ /**
44
+ * Directories to look for templates in, first one has the highest precedence.
45
+ */
23
46
  viewPaths: string[];
24
47
  _viewIndex: ViewIndex | undefined;
48
+ /**
49
+ * Register a template engine.
50
+ */
25
51
  addEngine(name: string, engine: ViewEngine): this;
52
+ /**
53
+ * Find a view for render parameters.
54
+ */
26
55
  findView(options: RenderOptions): ViewSuggestion | null;
56
+ /**
57
+ * Render output through one of the template engines.
58
+ */
27
59
  render(ctx: MojoContext, options: RenderOptions): Promise<EngineResult | null>;
60
+ /**
61
+ * Finalize dynamically generated response content and compress it if possible.
62
+ */
28
63
  respond(ctx: MojoContext, result: EngineResult, options: {
29
64
  status?: number;
30
65
  }): Promise<boolean>;
66
+ /**
67
+ * Prepare views for rendering.
68
+ */
31
69
  warmup(): Promise<void>;
32
70
  _renderInline(ctx: MojoContext, options: RenderOptions): Promise<EngineResult | null>;
33
71
  _renderView(ctx: MojoContext, options: RenderOptions): Promise<EngineResult | null>;
package/lib/renderer.js CHANGED
@@ -3,20 +3,49 @@ import { gzip } from 'zlib';
3
3
  import Path from '@mojojs/path';
4
4
  import yaml from 'js-yaml';
5
5
  const gzipPromise = promisify(gzip);
6
+ /**
7
+ * Renderer class.
8
+ */
6
9
  export class Renderer {
7
10
  constructor() {
11
+ /**
12
+ * Try to negotiate compression for dynamically generated response content and gzip compress it automatically.
13
+ */
8
14
  this.autoCompress = true;
15
+ /**
16
+ * The default template engine to use for rendering in cases where auto-detection doesn't work, like for inline
17
+ * templates, defaults to `mt`.
18
+ */
9
19
  this.defaultEngine = 'mt';
20
+ /**
21
+ * The default format to render if format is not set, defaults to `html`. Note that changing the default away from
22
+ * `html` is not recommended, as it has the potential to break, for example, plugins with bundled templates.
23
+ */
10
24
  this.defaultFormat = 'html';
25
+ /**
26
+ * Template engines.
27
+ */
11
28
  this.engines = {};
29
+ /**
30
+ * Minimum output size in bytes required for compression to be used if enabled, defaults to `860`.
31
+ */
12
32
  this.minCompressSize = 860;
33
+ /**
34
+ * Directories to look for templates in, first one has the highest precedence.
35
+ */
13
36
  this.viewPaths = [Path.currentFile().sibling('..', 'vendor', 'views').toString()];
14
37
  this._viewIndex = undefined;
15
38
  }
39
+ /**
40
+ * Register a template engine.
41
+ */
16
42
  addEngine(name, engine) {
17
43
  this.engines[name] = engine;
18
44
  return this;
19
45
  }
46
+ /**
47
+ * Find a view for render parameters.
48
+ */
20
49
  findView(options) {
21
50
  const view = options.view;
22
51
  const index = this._viewIndex;
@@ -36,6 +65,9 @@ export class Renderer {
36
65
  }
37
66
  return fallback ?? views[0];
38
67
  }
68
+ /**
69
+ * Render output through one of the template engines.
70
+ */
39
71
  async render(ctx, options) {
40
72
  const log = ctx.log;
41
73
  if (options.text !== undefined) {
@@ -94,6 +126,9 @@ export class Renderer {
94
126
  }
95
127
  return null;
96
128
  }
129
+ /**
130
+ * Finalize dynamically generated response content and compress it if possible.
131
+ */
97
132
  async respond(ctx, result, options) {
98
133
  const res = ctx.res;
99
134
  if (res.isSent)
@@ -113,6 +148,9 @@ export class Renderer {
113
148
  await res.type(type).send(output);
114
149
  return true;
115
150
  }
151
+ /**
152
+ * Prepare views for rendering.
153
+ */
116
154
  async warmup() {
117
155
  const viewIndex = (this._viewIndex = {});
118
156
  for (const dir of this.viewPaths.map(path => new Path(path))) {