crelte 0.5.0-beta.4 → 0.5.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/dist/plugins/Events.d.ts +6 -0
- package/dist/plugins/Events.d.ts.map +1 -1
- package/dist/routing/route/BaseRoute.d.ts +5 -4
- package/dist/routing/route/BaseRoute.d.ts.map +1 -1
- package/dist/routing/route/BaseRoute.js +3 -3
- package/dist/routing/route/Request.d.ts +4 -2
- package/dist/routing/route/Request.d.ts.map +1 -1
- package/dist/routing/route/Request.js +7 -5
- package/dist/routing/router/BaseRouter.d.ts.map +1 -1
- package/dist/routing/router/BaseRouter.js +4 -2
- package/dist/routing/router/ServerRouter.js +2 -2
- package/dist/server/ServerRouter.js +2 -2
- package/dist/std/intl/acceptLang.d.ts +1 -1
- package/dist/std/intl/acceptLang.d.ts.map +1 -1
- package/dist/std/intl/acceptLang.js +1 -1
- package/dist/std/intl/index.d.ts +1 -1
- package/dist/std/intl/index.d.ts.map +1 -1
- package/dist/std/intl/index.js +1 -1
- package/package.json +1 -1
- package/src/plugins/Events.ts +6 -0
- package/src/routing/route/BaseRoute.ts +5 -3
- package/src/routing/route/Request.ts +8 -6
- package/src/routing/router/BaseRouter.ts +4 -2
- package/src/routing/router/ServerRouter.ts +2 -2
- package/src/server/ServerRouter.ts +2 -2
- package/src/std/intl/acceptLang.ts +1 -1
- package/src/std/intl/index.ts +1 -1
package/dist/plugins/Events.d.ts
CHANGED
|
@@ -15,10 +15,16 @@ export default class Events {
|
|
|
15
15
|
* ## loadEntry
|
|
16
16
|
* This will execute all listeners in sequence and stop on the first one
|
|
17
17
|
* which returns an entry.
|
|
18
|
+
* Will be executed in preload as well.
|
|
18
19
|
*
|
|
19
20
|
* ## beforeQueryEntry
|
|
20
21
|
* This allows to modify the entry query variables before the entry query
|
|
21
22
|
* is executed.
|
|
23
|
+
* Will be executed in preload as well.
|
|
24
|
+
*
|
|
25
|
+
*
|
|
26
|
+
* ## afterLoadEntry
|
|
27
|
+
* Will be executed in preload as well.
|
|
22
28
|
*
|
|
23
29
|
* @returns a function to remove the listener
|
|
24
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/plugins/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;IAM7B
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/plugins/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;IAM7B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IAEH,EAAE,CACD,EAAE,EAAE,eAAe,EACnB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC7C,MAAM,IAAI;IACb,EAAE,CACD,EAAE,EAAE,gBAAgB,EACpB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,GACrC,MAAM,IAAI;IACb,EAAE,CACD,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAC7D,MAAM,IAAI;IACb,EAAE,CACD,EAAE,EAAE,kBAAkB,EACtB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACnE,MAAM,IAAI;IACb,EAAE,CACD,EAAE,EAAE,gBAAgB,EACpB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,GACrC,MAAM,IAAI;IACb,EAAE,CACD,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,GACnD,MAAM,IAAI;IACb,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAenE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG;IAO1B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAKxB;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;IACzE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE;IAChE,OAAO,CACN,EAAE,EAAE,kBAAkB,EACtB,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,cAAc,GAClB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;IAC3B,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE;IAChE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE;IACxE,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;IAQpE;;OAEG;IACH,YAAY,CACX,EAAE,EAAE,WAAW,GACb,CAAC,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE;CAIlE"}
|
|
@@ -12,6 +12,7 @@ export type BaseRouteOptions = {
|
|
|
12
12
|
*
|
|
13
13
|
* - `'init'`: is set on the first page load
|
|
14
14
|
* - `'manual'`: is set when a route is triggered manually via `Router.open`
|
|
15
|
+
* - `'preload'`: is set when a route is preloaded via `Router.preload`
|
|
15
16
|
* - `'click'`: is set when a route is triggered by a click event
|
|
16
17
|
* - `'pop'`: is set when a route is triggered by a popstate event (back/forward)
|
|
17
18
|
* - `'replace'`: is set when a route is replaced via `Router.replaceState`
|
|
@@ -20,7 +21,7 @@ export type BaseRouteOptions = {
|
|
|
20
21
|
* ## Note
|
|
21
22
|
* `replace` and `push` will not call loadData
|
|
22
23
|
*/
|
|
23
|
-
export type RouteOrigin = 'init' | 'manual' | 'click' | 'pop' | 'replace' | 'push';
|
|
24
|
+
export type RouteOrigin = 'init' | 'manual' | 'preload' | 'click' | 'pop' | 'replace' | 'push';
|
|
24
25
|
/**
|
|
25
26
|
* A Route contains information about the current page for example the url and
|
|
26
27
|
* the site
|
|
@@ -34,9 +35,9 @@ export default class BaseRoute {
|
|
|
34
35
|
* The site of the route
|
|
35
36
|
*
|
|
36
37
|
* ## Note
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* users language.
|
|
38
|
+
* In the `beforeRequest` event the site might not match
|
|
39
|
+
* the url and could be the default site or one that matches
|
|
40
|
+
* the users language.
|
|
40
41
|
*
|
|
41
42
|
* If that is important call `route.siteMatches()` to verify
|
|
42
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRoute.d.ts","sourceRoot":"","sources":["../../../src/routing/route/BaseRoute.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,YAAY,CAAC;AAG9B,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"BaseRoute.d.ts","sourceRoot":"","sources":["../../../src/routing/route/BaseRoute.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@ export default class BaseRoute {
|
|
|
13
13
|
* The site of the route
|
|
14
14
|
*
|
|
15
15
|
* ## Note
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* users language.
|
|
16
|
+
* In the `beforeRequest` event the site might not match
|
|
17
|
+
* the url and could be the default site or one that matches
|
|
18
|
+
* the users language.
|
|
19
19
|
*
|
|
20
20
|
* If that is important call `route.siteMatches()` to verify
|
|
21
21
|
*/
|
|
@@ -95,6 +95,10 @@ export default class Request extends BaseRoute {
|
|
|
95
95
|
* ```
|
|
96
96
|
*/
|
|
97
97
|
delayRender(): DelayRender;
|
|
98
|
+
/**
|
|
99
|
+
* Cancel this request
|
|
100
|
+
*/
|
|
101
|
+
cancel(): void;
|
|
98
102
|
/**
|
|
99
103
|
* Create a copy of the request
|
|
100
104
|
*
|
|
@@ -113,8 +117,6 @@ export default class Request extends BaseRoute {
|
|
|
113
117
|
toRoute(): Route;
|
|
114
118
|
/** @hidden */
|
|
115
119
|
z_updateOpts(opts?: RequestOptions): void;
|
|
116
|
-
/** @hidden */
|
|
117
|
-
z_cancel(): void;
|
|
118
120
|
}
|
|
119
121
|
export declare function isRequest(req: any): req is Request;
|
|
120
122
|
declare class RenderBarrier {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../src/routing/route/Request.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,SAAS;IAC7C;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvC;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,cAAc;IACd,eAAe,EAAE,aAAa,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAU;IAE5B;;OAEG;gBACS,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,cAAmB;IAapE;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,GAAE,cAAmB;IAWxD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,WAAW,IAAI,WAAW;IAI1B;;;;;;OAMG;IACH,KAAK;IAsBL;;;;;;OAMG;IACH,OAAO;IA8BP,cAAc;IACd,YAAY,CAAC,IAAI,GAAE,cAAmB;
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../src/routing/route/Request.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,SAAS;IAC7C;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvC;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,cAAc;IACd,eAAe,EAAE,aAAa,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAU;IAE5B;;OAEG;gBACS,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,cAAmB;IAapE;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,GAAE,cAAmB;IAWxD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,WAAW,IAAI,WAAW;IAI1B;;OAEG;IACH,MAAM;IAKN;;;;;;OAMG;IACH,KAAK;IAsBL;;;;;;OAMG;IACH,OAAO;IA8BP,cAAc;IACd,YAAY,CAAC,IAAI,GAAE,cAAmB;CAmBtC;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAElD;AAED,cAAM,aAAa;IAClB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;;IAQlB,MAAM,IAAI,OAAO;IAIjB,GAAG,IAAI,WAAW;IAclB,cAAc;IACd,MAAM;IAWN,cAAc;IACd,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;CAGnC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC"}
|
|
@@ -102,6 +102,13 @@ export default class Request extends BaseRoute {
|
|
|
102
102
|
delayRender() {
|
|
103
103
|
return this.z_renderBarrier.add();
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Cancel this request
|
|
107
|
+
*/
|
|
108
|
+
cancel() {
|
|
109
|
+
this._cancelled = true;
|
|
110
|
+
this.z_renderBarrier.cancel();
|
|
111
|
+
}
|
|
105
112
|
/**
|
|
106
113
|
* Create a copy of the request
|
|
107
114
|
*
|
|
@@ -167,11 +174,6 @@ export default class Request extends BaseRoute {
|
|
|
167
174
|
this.disableLoadData = orDef(opts.disableLoadData, this.disableLoadData);
|
|
168
175
|
this.statusCode = orDef(opts.statusCode, this.statusCode);
|
|
169
176
|
}
|
|
170
|
-
/** @hidden */
|
|
171
|
-
z_cancel() {
|
|
172
|
-
this._cancelled = true;
|
|
173
|
-
this.z_renderBarrier.cancel();
|
|
174
|
-
}
|
|
175
177
|
}
|
|
176
178
|
export function isRequest(req) {
|
|
177
179
|
return typeof req === 'object' && req !== null && req instanceof Request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/router/BaseRouter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BaseRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/router/BaseRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -173,19 +173,21 @@ export default class BaseRouter {
|
|
|
173
173
|
// this.inner.history.back();
|
|
174
174
|
}
|
|
175
175
|
async preload(target) {
|
|
176
|
-
const req = this.targetToRequest(target);
|
|
176
|
+
const req = this.targetToRequest(target, { origin: 'preload' });
|
|
177
177
|
const current = this.route.get();
|
|
178
178
|
// if the origin matches, the route will be able to be load
|
|
179
179
|
// so let's preload it
|
|
180
180
|
if (current && current.url.origin === req.url.origin) {
|
|
181
181
|
// todo i don't wan't to send a CrelteRequest?
|
|
182
|
+
// todo, it would be nice if this could not have any side effects
|
|
183
|
+
// but at the moment cr.router.open will cause a redirect
|
|
182
184
|
this.loadRunner.preload(this.onNewCrelteRequest(req));
|
|
183
185
|
}
|
|
184
186
|
}
|
|
185
187
|
cancelRequest() {
|
|
186
188
|
// destroy the old request
|
|
187
189
|
if (this.request) {
|
|
188
|
-
this.request.
|
|
190
|
+
this.request.cancel();
|
|
189
191
|
this.request = null;
|
|
190
192
|
}
|
|
191
193
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import BaseRouter from './BaseRouter.js';
|
|
2
2
|
import { preferredSite } from '../utils.js';
|
|
3
|
-
import {
|
|
3
|
+
import { parseAcceptLanguage } from '../../std/intl/index.js';
|
|
4
4
|
export default class ServerRouter extends BaseRouter {
|
|
5
5
|
prefSite;
|
|
6
6
|
redirect;
|
|
7
7
|
constructor(sites, acceptLang, opts) {
|
|
8
|
-
const langs =
|
|
8
|
+
const langs = parseAcceptLanguage(acceptLang).map(([l]) => l);
|
|
9
9
|
super(sites, langs, opts);
|
|
10
10
|
this.prefSite = preferredSite(this.sites, this.languages);
|
|
11
11
|
this.redirect = null;
|
|
@@ -4,7 +4,7 @@ import ServerRequest from './Request.js';
|
|
|
4
4
|
import { Queries } from '../queries/index.js';
|
|
5
5
|
import { Site } from '../routing/index.js';
|
|
6
6
|
import { SsrCache } from '../ssr/index.js';
|
|
7
|
-
import {
|
|
7
|
+
import { parseAcceptLanguage } from '../std/intl/index.js';
|
|
8
8
|
import { siteFromUrl } from '../routing/Site.js';
|
|
9
9
|
import { preferredSite } from '../routing/utils.js';
|
|
10
10
|
export default class ServerRouter {
|
|
@@ -82,7 +82,7 @@ export default class ServerRouter {
|
|
|
82
82
|
const { params, handlers } = this.inner.find(req.method, new URL(req.url).pathname);
|
|
83
83
|
if (!handlers.length)
|
|
84
84
|
return null;
|
|
85
|
-
const languages =
|
|
85
|
+
const languages = parseAcceptLanguage(req.headers.get('accept-language') ?? '').map(([l]) => l);
|
|
86
86
|
const prefSite = preferredSite(this._sites, languages);
|
|
87
87
|
const site = siteFromUrl(this._sites, new URL(req.url)) ??
|
|
88
88
|
prefSite ??
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `parseAcceptLang('fr-CH, en;q=0.7, fr;q=0.8')` will return `[['fr-CH', 1], ['fr', 0.8], ['en', 0.7]]`
|
|
3
3
|
*/
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function parseAcceptLanguage(acceptLang: string): [string, number][];
|
|
5
5
|
export declare function matchLanguages(available: string[], preferred: string[]): string | null;
|
|
6
6
|
//# sourceMappingURL=acceptLang.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptLang.d.ts","sourceRoot":"","sources":["../../../src/std/intl/acceptLang.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"acceptLang.d.ts","sourceRoot":"","sources":["../../../src/std/intl/acceptLang.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAmB1E;AAED,wBAAgB,cAAc,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,IAAI,CAwBf"}
|
package/dist/std/intl/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { parseAcceptLanguage, matchLanguages } from './acceptLang.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/std/intl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/std/intl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/std/intl/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { parseAcceptLanguage, matchLanguages } from './acceptLang.js';
|
package/package.json
CHANGED
package/src/plugins/Events.ts
CHANGED
|
@@ -20,10 +20,16 @@ export default class Events {
|
|
|
20
20
|
* ## loadEntry
|
|
21
21
|
* This will execute all listeners in sequence and stop on the first one
|
|
22
22
|
* which returns an entry.
|
|
23
|
+
* Will be executed in preload as well.
|
|
23
24
|
*
|
|
24
25
|
* ## beforeQueryEntry
|
|
25
26
|
* This allows to modify the entry query variables before the entry query
|
|
26
27
|
* is executed.
|
|
28
|
+
* Will be executed in preload as well.
|
|
29
|
+
*
|
|
30
|
+
*
|
|
31
|
+
* ## afterLoadEntry
|
|
32
|
+
* Will be executed in preload as well.
|
|
27
33
|
*
|
|
28
34
|
* @returns a function to remove the listener
|
|
29
35
|
*/
|
|
@@ -16,6 +16,7 @@ export type BaseRouteOptions = {
|
|
|
16
16
|
*
|
|
17
17
|
* - `'init'`: is set on the first page load
|
|
18
18
|
* - `'manual'`: is set when a route is triggered manually via `Router.open`
|
|
19
|
+
* - `'preload'`: is set when a route is preloaded via `Router.preload`
|
|
19
20
|
* - `'click'`: is set when a route is triggered by a click event
|
|
20
21
|
* - `'pop'`: is set when a route is triggered by a popstate event (back/forward)
|
|
21
22
|
* - `'replace'`: is set when a route is replaced via `Router.replaceState`
|
|
@@ -27,6 +28,7 @@ export type BaseRouteOptions = {
|
|
|
27
28
|
export type RouteOrigin =
|
|
28
29
|
| 'init'
|
|
29
30
|
| 'manual'
|
|
31
|
+
| 'preload'
|
|
30
32
|
| 'click'
|
|
31
33
|
| 'pop'
|
|
32
34
|
| 'replace'
|
|
@@ -46,9 +48,9 @@ export default class BaseRoute {
|
|
|
46
48
|
* The site of the route
|
|
47
49
|
*
|
|
48
50
|
* ## Note
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* users language.
|
|
51
|
+
* In the `beforeRequest` event the site might not match
|
|
52
|
+
* the url and could be the default site or one that matches
|
|
53
|
+
* the users language.
|
|
52
54
|
*
|
|
53
55
|
* If that is important call `route.siteMatches()` to verify
|
|
54
56
|
*/
|
|
@@ -135,6 +135,14 @@ export default class Request extends BaseRoute {
|
|
|
135
135
|
return this.z_renderBarrier.add();
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Cancel this request
|
|
140
|
+
*/
|
|
141
|
+
cancel() {
|
|
142
|
+
this._cancelled = true;
|
|
143
|
+
this.z_renderBarrier.cancel();
|
|
144
|
+
}
|
|
145
|
+
|
|
138
146
|
/**
|
|
139
147
|
* Create a copy of the request
|
|
140
148
|
*
|
|
@@ -221,12 +229,6 @@ export default class Request extends BaseRoute {
|
|
|
221
229
|
);
|
|
222
230
|
this.statusCode = orDef(opts.statusCode, this.statusCode);
|
|
223
231
|
}
|
|
224
|
-
|
|
225
|
-
/** @hidden */
|
|
226
|
-
z_cancel() {
|
|
227
|
-
this._cancelled = true;
|
|
228
|
-
this.z_renderBarrier.cancel();
|
|
229
|
-
}
|
|
230
232
|
}
|
|
231
233
|
|
|
232
234
|
export function isRequest(req: any): req is Request {
|
|
@@ -232,13 +232,15 @@ export default class BaseRouter {
|
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
async preload(target: string | URL | Route | Request) {
|
|
235
|
-
const req = this.targetToRequest(target);
|
|
235
|
+
const req = this.targetToRequest(target, { origin: 'preload' });
|
|
236
236
|
const current = this.route.get();
|
|
237
237
|
|
|
238
238
|
// if the origin matches, the route will be able to be load
|
|
239
239
|
// so let's preload it
|
|
240
240
|
if (current && current.url.origin === req.url.origin) {
|
|
241
241
|
// todo i don't wan't to send a CrelteRequest?
|
|
242
|
+
// todo, it would be nice if this could not have any side effects
|
|
243
|
+
// but at the moment cr.router.open will cause a redirect
|
|
242
244
|
this.loadRunner.preload(this.onNewCrelteRequest(req));
|
|
243
245
|
}
|
|
244
246
|
}
|
|
@@ -246,7 +248,7 @@ export default class BaseRouter {
|
|
|
246
248
|
cancelRequest() {
|
|
247
249
|
// destroy the old request
|
|
248
250
|
if (this.request) {
|
|
249
|
-
this.request.
|
|
251
|
+
this.request.cancel();
|
|
250
252
|
this.request = null;
|
|
251
253
|
}
|
|
252
254
|
}
|
|
@@ -3,7 +3,7 @@ import { Request, RequestOptions } from '../index.js';
|
|
|
3
3
|
import Route from '../route/Route.js';
|
|
4
4
|
import Site, { SiteFromGraphQl } from '../Site.js';
|
|
5
5
|
import { preferredSite } from '../utils.js';
|
|
6
|
-
import {
|
|
6
|
+
import { parseAcceptLanguage } from '../../std/intl/index.js';
|
|
7
7
|
|
|
8
8
|
export default class ServerRouter extends BaseRouter {
|
|
9
9
|
private prefSite: Site | null;
|
|
@@ -14,7 +14,7 @@ export default class ServerRouter extends BaseRouter {
|
|
|
14
14
|
acceptLang: string,
|
|
15
15
|
opts: BaseRouterOptions,
|
|
16
16
|
) {
|
|
17
|
-
const langs =
|
|
17
|
+
const langs = parseAcceptLanguage(acceptLang).map(([l]) => l);
|
|
18
18
|
super(sites, langs, opts);
|
|
19
19
|
|
|
20
20
|
this.prefSite = preferredSite(this.sites, this.languages);
|
|
@@ -5,7 +5,7 @@ import { SiteFromGraphQl } from './shared.js';
|
|
|
5
5
|
import { Queries, Query, QueryOptions } from '../queries/index.js';
|
|
6
6
|
import { Site } from '../routing/index.js';
|
|
7
7
|
import { SsrCache } from '../ssr/index.js';
|
|
8
|
-
import {
|
|
8
|
+
import { parseAcceptLanguage } from '../std/intl/index.js';
|
|
9
9
|
import { siteFromUrl } from '../routing/Site.js';
|
|
10
10
|
import { preferredSite } from '../routing/utils.js';
|
|
11
11
|
|
|
@@ -120,7 +120,7 @@ export default class ServerRouter {
|
|
|
120
120
|
);
|
|
121
121
|
if (!handlers.length) return null;
|
|
122
122
|
|
|
123
|
-
const languages =
|
|
123
|
+
const languages = parseAcceptLanguage(
|
|
124
124
|
req.headers.get('accept-language') ?? '',
|
|
125
125
|
).map(([l]) => l);
|
|
126
126
|
const prefSite = preferredSite(this._sites, languages);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `parseAcceptLang('fr-CH, en;q=0.7, fr;q=0.8')` will return `[['fr-CH', 1], ['fr', 0.8], ['en', 0.7]]`
|
|
3
3
|
*/
|
|
4
|
-
export function
|
|
4
|
+
export function parseAcceptLanguage(acceptLang: string): [string, number][] {
|
|
5
5
|
return acceptLang
|
|
6
6
|
.split(',')
|
|
7
7
|
.map(d => {
|
package/src/std/intl/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { parseAcceptLanguage, matchLanguages } from './acceptLang.js';
|