@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.
- package/lib/app.d.ts +3 -0
- package/lib/app.js +3 -0
- package/lib/app.js.map +1 -1
- package/lib/body/params.d.ts +6 -0
- package/lib/body/params.js +6 -0
- package/lib/body/params.js.map +1 -1
- package/lib/cache.d.ts +23 -0
- package/lib/cache.js +45 -0
- package/lib/cache.js.map +1 -0
- package/lib/cli/create-full-app.d.ts +3 -0
- package/lib/cli/create-full-app.js +5 -2
- package/lib/cli/create-full-app.js.map +1 -1
- package/lib/cli/create-lite-app.d.ts +3 -0
- package/lib/cli/create-lite-app.js +3 -0
- package/lib/cli/create-lite-app.js.map +1 -1
- package/lib/cli/eval.d.ts +3 -0
- package/lib/cli/eval.js +3 -0
- package/lib/cli/eval.js.map +1 -1
- package/lib/cli/get.d.ts +3 -0
- package/lib/cli/get.js +3 -0
- package/lib/cli/get.js.map +1 -1
- package/lib/cli/repl.d.ts +3 -0
- package/lib/cli/repl.js +3 -0
- package/lib/cli/repl.js.map +1 -1
- package/lib/cli/routes.d.ts +3 -0
- package/lib/cli/routes.js +3 -0
- package/lib/cli/routes.js.map +1 -1
- package/lib/cli/server.d.ts +3 -0
- package/lib/cli/server.js +3 -0
- package/lib/cli/server.js.map +1 -1
- package/lib/cli/version.d.ts +3 -0
- package/lib/cli/version.js +3 -0
- package/lib/cli/version.js.map +1 -1
- package/lib/context.d.ts +1 -1
- package/lib/context.js +1 -1
- package/lib/core.d.ts +3 -0
- package/lib/core.js +3 -0
- package/lib/core.js.map +1 -1
- package/lib/hooks.d.ts +9 -0
- package/lib/hooks.js +9 -0
- package/lib/hooks.js.map +1 -1
- package/lib/logger.d.ts +69 -0
- package/lib/logger.js +63 -0
- package/lib/logger.js.map +1 -1
- package/lib/mime.d.ts +12 -0
- package/lib/mime.js +12 -0
- package/lib/mime.js.map +1 -1
- package/lib/mock/request.d.ts +3 -0
- package/lib/mock/request.js +3 -0
- package/lib/mock/request.js.map +1 -1
- package/lib/mock/response.d.ts +3 -0
- package/lib/mock/response.js +3 -0
- package/lib/mock/response.js.map +1 -1
- package/lib/plugins/default-helpers.d.ts +3 -0
- package/lib/plugins/default-helpers.js +3 -0
- package/lib/plugins/default-helpers.js.map +1 -1
- package/lib/plugins/exception-helpers.d.ts +3 -0
- package/lib/plugins/exception-helpers.js +3 -0
- package/lib/plugins/exception-helpers.js.map +1 -1
- package/lib/plugins/header-conditions.d.ts +3 -0
- package/lib/plugins/header-conditions.js +3 -0
- package/lib/plugins/header-conditions.js.map +1 -1
- package/lib/plugins/json-config.d.ts +3 -0
- package/lib/plugins/json-config.js +3 -0
- package/lib/plugins/json-config.js.map +1 -1
- package/lib/plugins/mt-engine.d.ts +3 -0
- package/lib/plugins/mt-engine.js +5 -2
- package/lib/plugins/mt-engine.js.map +1 -1
- package/lib/plugins/view-helpers.d.ts +3 -0
- package/lib/plugins/view-helpers.js +3 -0
- package/lib/plugins/view-helpers.js.map +1 -1
- package/lib/plugins/yaml-config.d.ts +3 -0
- package/lib/plugins/yaml-config.js +3 -0
- package/lib/plugins/yaml-config.js.map +1 -1
- package/lib/renderer.d.ts +38 -0
- package/lib/renderer.js +38 -0
- package/lib/renderer.js.map +1 -1
- package/lib/router/pattern.d.ts +33 -0
- package/lib/router/pattern.js +24 -0
- package/lib/router/pattern.js.map +1 -1
- package/lib/router/plan.d.ts +15 -0
- package/lib/router/plan.js +15 -0
- package/lib/router/plan.js.map +1 -1
- package/lib/router/route.d.ts +83 -0
- package/lib/router/route.js +83 -0
- package/lib/router/route.js.map +1 -1
- package/lib/router.d.ts +38 -2
- package/lib/router.js +38 -2
- package/lib/router.js.map +1 -1
- package/lib/server/cookie.d.ts +6 -0
- package/lib/server/cookie.js +6 -0
- package/lib/server/cookie.js.map +1 -1
- package/lib/server.d.ts +21 -0
- package/lib/server.js +15 -0
- package/lib/server.js.map +1 -1
- package/lib/session.d.ts +35 -0
- package/lib/session.js +35 -0
- package/lib/session.js.map +1 -1
- package/lib/static.d.ts +22 -0
- package/lib/static.js +22 -0
- package/lib/static.js.map +1 -1
- package/lib/user-agent/cookie-jar.d.ts +12 -0
- package/lib/user-agent/cookie-jar.js +12 -0
- package/lib/user-agent/cookie-jar.js.map +1 -1
- package/lib/user-agent/mock.d.ts +15 -0
- package/lib/user-agent/mock.js +15 -0
- package/lib/user-agent/mock.js.map +1 -1
- package/lib/user-agent/response.d.ts +27 -0
- package/lib/user-agent/response.js +27 -0
- package/lib/user-agent/response.js.map +1 -1
- package/lib/user-agent/test.d.ts +115 -2
- package/lib/user-agent/test.js +123 -10
- package/lib/user-agent/test.js.map +1 -1
- package/lib/user-agent/transport/http.d.ts +12 -0
- package/lib/user-agent/transport/http.js +12 -0
- package/lib/user-agent/transport/http.js.map +1 -1
- package/lib/user-agent/transport/https.d.ts +3 -0
- package/lib/user-agent/transport/https.js +3 -0
- package/lib/user-agent/transport/https.js.map +1 -1
- package/lib/user-agent/transport/ws.d.ts +6 -0
- package/lib/user-agent/transport/ws.js +6 -0
- package/lib/user-agent/transport/ws.js.map +1 -1
- package/lib/util.d.ts +30 -0
- package/lib/util.js +30 -0
- package/lib/util.js.map +1 -1
- package/lib/validator/result.d.ts +9 -0
- package/lib/validator/result.js +3 -0
- package/lib/validator/result.js.map +1 -1
- package/lib/validator.d.ts +9 -0
- package/lib/validator.js +9 -0
- package/lib/validator.js.map +1 -1
- package/lib/websocket.d.ts +18 -0
- package/lib/websocket.js +12 -0
- package/lib/websocket.js.map +1 -1
- 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":"AAEA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,MAAM,KAAK,GAA2B;IACpC,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,OAAO,MAAM;
|
|
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;
|
|
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"}
|
package/lib/mock/request.d.ts
CHANGED
|
@@ -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
|
}
|
package/lib/mock/request.js
CHANGED
package/lib/mock/request.js.map
CHANGED
|
@@ -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"}
|
package/lib/mock/response.d.ts
CHANGED
package/lib/mock/response.js
CHANGED
package/lib/mock/response.js.map
CHANGED
|
@@ -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 +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,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 +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 +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"}
|
package/lib/plugins/mt-engine.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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,
|
|
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 +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 +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))) {
|