@mojojs/core 0.18.0 → 0.19.3
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 +117 -4
- package/lib/app.js +105 -8
- 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/body.d.ts +48 -0
- package/lib/body.js +45 -0
- package/lib/body.js.map +1 -1
- package/lib/cli/create-full-app.d.ts +3 -0
- package/lib/cli/create-full-app.js +3 -0
- 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/cli.d.ts +15 -0
- package/lib/cli.js +15 -0
- package/lib/cli.js.map +1 -1
- package/lib/context.d.ts +99 -0
- package/lib/context.js +84 -0
- package/lib/context.js.map +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 +14 -0
- package/lib/mime.js +39 -9
- 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 +5 -0
- package/lib/plugins/default-helpers.js +18 -0
- package/lib/plugins/default-helpers.js.map +1 -0
- 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 +4 -1
- 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 -12
- 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 +39 -3
- package/lib/router.js +47 -10
- 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 -1
- 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 +31 -1
- 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 +3 -3
|
@@ -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
|
@@ -3,12 +3,15 @@ import { xmlEscape } from '@mojojs/dom';
|
|
|
3
3
|
import Path from '@mojojs/path';
|
|
4
4
|
import Template from '@mojojs/template';
|
|
5
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 LRU({ max: 100 });
|
|
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;
|
|
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;;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,GAAiE,IAAI,GAAG,CAAC,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC,CAAC;IA0B5F,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,23 +1,14 @@
|
|
|
1
|
-
import { inspect } from 'util';
|
|
2
1
|
import DOM, { SafeString } from '@mojojs/dom';
|
|
2
|
+
/**
|
|
3
|
+
* View helper plugin.
|
|
4
|
+
*/
|
|
3
5
|
export default function viewHelpersPlugin(app) {
|
|
4
|
-
app.addHelper('currentRoute', currentRoute);
|
|
5
|
-
app.decorateContext('inspect', (object, options) => inspect(object, options));
|
|
6
6
|
app.addHelper('include', include);
|
|
7
7
|
app.addHelper('mojoFaviconTag', mojoFaviconTag);
|
|
8
8
|
app.addHelper('scriptTag', scriptTag);
|
|
9
9
|
app.addHelper('styleTag', styleTag);
|
|
10
10
|
app.addHelper('tag', tag);
|
|
11
11
|
}
|
|
12
|
-
function currentRoute(ctx) {
|
|
13
|
-
const plan = ctx.plan;
|
|
14
|
-
if (plan === null)
|
|
15
|
-
return null;
|
|
16
|
-
const endpoint = plan.endpoint;
|
|
17
|
-
if (endpoint === undefined)
|
|
18
|
-
return null;
|
|
19
|
-
return endpoint.customName ?? endpoint.defaultName ?? null;
|
|
20
|
-
}
|
|
21
12
|
async function include(ctx, options, stash) {
|
|
22
13
|
return await ctx.renderToString(options, stash);
|
|
23
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-helpers.js","sourceRoot":"","sources":["../../src/plugins/view-helpers.ts"],"names":[],"mappings":"
|
|
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))) {
|
package/lib/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAiBpC,MAAM,OAAO,QAAQ;IAArB;QACE,iBAAY,GAAG,IAAI,CAAC;QACpB,kBAAa,GAAG,IAAI,CAAC;QACrB,kBAAa,GAAG,MAAM,CAAC;QACvB,YAAO,GAA+B,EAAE,CAAC;QACzC,oBAAe,GAAG,GAAG,CAAC;QACtB,cAAS,GAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
|
package/lib/router/pattern.d.ts
CHANGED
|
@@ -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;
|
package/lib/router/pattern.js
CHANGED
|
@@ -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":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC,MAAM,EAAE,GAAG;IACT,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;CAC7B,CAAC;AAWF,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/router/pattern.ts"],"names":[],"mappings":"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"}
|
package/lib/router/plan.d.ts
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import type { Route } from './route.js';
|
|
2
|
+
/**
|
|
3
|
+
* Router plan class.
|
|
4
|
+
*/
|
|
2
5
|
export declare class Plan {
|
|
6
|
+
/**
|
|
7
|
+
* Route endpoint.
|
|
8
|
+
*/
|
|
3
9
|
endpoint: Route | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Steps in route.
|
|
12
|
+
*/
|
|
4
13
|
steps: Array<Record<string, any>>;
|
|
14
|
+
/**
|
|
15
|
+
* Dispatch stops in route.
|
|
16
|
+
*/
|
|
5
17
|
stops: boolean[];
|
|
18
|
+
/**
|
|
19
|
+
* Render route.
|
|
20
|
+
*/
|
|
6
21
|
render(values?: Record<string, any>): {
|
|
7
22
|
path: string;
|
|
8
23
|
websocket: boolean;
|
package/lib/router/plan.js
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router plan class.
|
|
3
|
+
*/
|
|
1
4
|
export class Plan {
|
|
2
5
|
constructor() {
|
|
6
|
+
/**
|
|
7
|
+
* Route endpoint.
|
|
8
|
+
*/
|
|
3
9
|
this.endpoint = undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Steps in route.
|
|
12
|
+
*/
|
|
4
13
|
this.steps = [];
|
|
14
|
+
/**
|
|
15
|
+
* Dispatch stops in route.
|
|
16
|
+
*/
|
|
5
17
|
this.stops = [];
|
|
6
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Render route.
|
|
21
|
+
*/
|
|
7
22
|
render(values = {}) {
|
|
8
23
|
const merged = [...this.steps, values].reduce((result, current) => Object.assign(result, current), {});
|
|
9
24
|
const endpoint = this.endpoint;
|
package/lib/router/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/router/plan.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,IAAI;IAAjB;QACE,aAAQ,GAAsB,SAAS,CAAC;QACxC,UAAK,GAA+B,EAAE,CAAC;QACvC,UAAK,GAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/router/plan.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,IAAI;IAAjB;QACE;;WAEG;QACH,aAAQ,GAAsB,SAAS,CAAC;QACxC;;WAEG;QACH,UAAK,GAA+B,EAAE,CAAC;QACvC;;WAEG;QACH,UAAK,GAAc,EAAE,CAAC;IAaxB,CAAC;IAXC;;OAEG;IACH,MAAM,CAAC,SAA8B,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;QAEhE,OAAO,EAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAC,CAAC;IAC7E,CAAC;CACF"}
|
package/lib/router/route.d.ts
CHANGED
|
@@ -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
|
}
|