crelte 0.5.10 → 0.5.12
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/bodyClass/BodyClass.d.ts +39 -0
- package/dist/bodyClass/BodyClass.d.ts.map +1 -0
- package/dist/bodyClass/BodyClass.js +51 -0
- package/dist/bodyClass/ClientBodyClass.d.ts +12 -0
- package/dist/bodyClass/ClientBodyClass.d.ts.map +1 -0
- package/dist/bodyClass/ClientBodyClass.js +57 -0
- package/dist/bodyClass/ServerBodyClass.d.ts +12 -0
- package/dist/bodyClass/ServerBodyClass.d.ts.map +1 -0
- package/dist/bodyClass/ServerBodyClass.js +47 -0
- package/dist/bodyClass/index.d.ts +2 -0
- package/dist/bodyClass/index.d.ts.map +1 -0
- package/dist/bodyClass/index.js +1 -0
- package/dist/cookies/ClientCookies.d.ts +8 -3
- package/dist/cookies/ClientCookies.d.ts.map +1 -1
- package/dist/cookies/ClientCookies.js +31 -7
- package/dist/cookies/Cookies.d.ts +42 -0
- package/dist/cookies/Cookies.d.ts.map +1 -0
- package/dist/cookies/Cookies.js +44 -0
- package/dist/cookies/ServerCookies.d.ts +3 -2
- package/dist/cookies/ServerCookies.d.ts.map +1 -1
- package/dist/cookies/ServerCookies.js +6 -4
- package/dist/cookies/index.d.ts +1 -25
- package/dist/cookies/index.d.ts.map +1 -1
- package/dist/cookies/index.js +1 -1
- package/dist/crelte.d.ts +7 -1
- package/dist/crelte.d.ts.map +1 -1
- package/dist/crelte.js +2 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/init/client.d.ts +1 -8
- package/dist/init/client.d.ts.map +1 -1
- package/dist/init/client.js +26 -24
- package/dist/init/server.d.ts.map +1 -1
- package/dist/init/server.js +12 -4
- package/dist/init/shared.d.ts +1 -0
- package/dist/init/shared.d.ts.map +1 -1
- package/dist/init/shared.js +16 -5
- package/dist/loadData/Globals.d.ts.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/plugins/Events.d.ts +12 -7
- package/dist/plugins/Events.d.ts.map +1 -1
- package/dist/plugins/Plugins.d.ts +36 -1
- package/dist/plugins/Plugins.d.ts.map +1 -1
- package/dist/plugins/Plugins.js +32 -0
- package/dist/queries/Queries.d.ts +30 -5
- package/dist/queries/Queries.d.ts.map +1 -1
- package/dist/queries/Queries.js +19 -2
- package/dist/queries/gql.d.ts +2 -2
- package/dist/queries/gql.d.ts.map +1 -1
- package/dist/queries/index.d.ts +47 -2
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +2 -2
- package/dist/queries/vars.d.ts +2 -0
- package/dist/queries/vars.d.ts.map +1 -1
- package/dist/queries/vars.js +10 -0
- package/dist/routing/route/Request.d.ts +1 -1
- package/dist/routing/route/Request.d.ts.map +1 -1
- package/dist/routing/route/Request.js +7 -3
- package/dist/routing/router/BaseRouter.d.ts +2 -1
- package/dist/routing/router/BaseRouter.d.ts.map +1 -1
- package/dist/routing/router/BaseRouter.js +4 -2
- package/dist/routing/router/ClientRouter.d.ts.map +1 -1
- package/dist/routing/router/ClientRouter.js +21 -15
- package/dist/routing/router/Router.d.ts +2 -1
- package/dist/routing/router/Router.d.ts.map +1 -1
- package/dist/routing/router/Router.js +10 -13
- package/dist/routing/utils.d.ts +1 -0
- package/dist/routing/utils.d.ts.map +1 -1
- package/dist/routing/utils.js +1 -1
- package/dist/server/CrelteServer.d.ts +1 -0
- package/dist/server/CrelteServer.d.ts.map +1 -1
- package/dist/server/CrelteServer.js +5 -2
- package/dist/server/ServerRouter.d.ts.map +1 -1
- package/dist/server/ServerRouter.js +17 -7
- package/dist/server/queries/QueryGqlRoute.d.ts +28 -0
- package/dist/server/queries/QueryGqlRoute.d.ts.map +1 -0
- package/dist/server/queries/QueryGqlRoute.js +194 -0
- package/dist/server/queries/QueryHandleRoute.d.ts +12 -0
- package/dist/server/queries/QueryHandleRoute.d.ts.map +1 -0
- package/dist/server/queries/QueryHandleRoute.js +24 -0
- package/dist/server/queries/queries.d.ts.map +1 -1
- package/dist/server/queries/queries.js +42 -19
- package/dist/server/queries/routes.d.ts +7 -30
- package/dist/server/queries/routes.d.ts.map +1 -1
- package/dist/server/queries/routes.js +13 -199
- package/dist/std/stores/StagedWritable.d.ts +48 -0
- package/dist/std/stores/StagedWritable.d.ts.map +1 -0
- package/dist/std/stores/StagedWritable.js +84 -0
- package/dist/std/stores/index.d.ts +2 -1
- package/dist/std/stores/index.d.ts.map +1 -1
- package/dist/std/stores/index.js +2 -1
- package/dist/std/sync/Barrier.js +1 -1
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +11 -0
- package/package.json +5 -1
- package/src/bodyClass/BodyClass.ts +72 -0
- package/src/bodyClass/ClientBodyClass.ts +62 -0
- package/src/bodyClass/ServerBodyClass.ts +65 -0
- package/src/bodyClass/index.ts +1 -0
- package/src/cookies/ClientCookies.ts +41 -10
- package/src/cookies/Cookies.ts +70 -0
- package/src/cookies/ServerCookies.ts +9 -6
- package/src/cookies/index.ts +5 -29
- package/src/crelte.ts +9 -0
- package/src/index.ts +15 -1
- package/src/init/client.ts +29 -24
- package/src/init/server.ts +12 -4
- package/src/init/shared.ts +18 -6
- package/src/loadData/Globals.ts +1 -1
- package/src/node/index.ts +1 -1
- package/src/plugins/Events.ts +22 -7
- package/src/plugins/Plugins.ts +66 -1
- package/src/queries/Queries.ts +47 -14
- package/src/queries/gql.ts +2 -2
- package/src/queries/index.ts +71 -0
- package/src/queries/vars.ts +13 -0
- package/src/routing/route/Request.ts +11 -4
- package/src/routing/router/BaseRouter.ts +4 -2
- package/src/routing/router/ClientRouter.ts +26 -18
- package/src/routing/router/Router.ts +10 -11
- package/src/routing/utils.ts +1 -1
- package/src/server/CrelteServer.ts +4 -2
- package/src/server/ServerRouter.ts +18 -7
- package/src/server/queries/QueryGqlRoute.ts +224 -0
- package/src/server/queries/QueryHandleRoute.ts +37 -0
- package/src/server/queries/queries.ts +57 -21
- package/src/server/queries/routes.ts +25 -229
- package/src/std/stores/StagedWritable.ts +96 -0
- package/src/std/stores/index.ts +2 -1
- package/src/std/sync/Barrier.ts +1 -1
- package/src/utils.ts +15 -0
package/dist/queries/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import Queries, { isQuery, QueriesOptions, Query, QueryOptions } from '../queries/Queries.js';
|
|
1
|
+
import Queries, { InlineQuery, isQuery, namedQuery, NamedQuery, QueriesOptions, Query, QueryOptions } from '../queries/Queries.js';
|
|
2
|
+
import type CrelteServerRequest from '../server/CrelteServer.js';
|
|
2
3
|
import { gql } from './gql.js';
|
|
3
4
|
import QueryError, { QueryErrorResponse } from './QueryError.js';
|
|
4
5
|
import { QueryVar, ValidIf, vars, varsIdsEqual } from './vars.js';
|
|
5
|
-
export { Queries, type QueriesOptions, type QueryOptions, type Query, isQuery, QueryError, type QueryErrorResponse, gql, vars, type ValidIf, QueryVar, varsIdsEqual, };
|
|
6
|
+
export { Queries, type QueriesOptions, type QueryOptions, type Query, type InlineQuery as GqlQuery, type NamedQuery, namedQuery, isQuery, QueryError, type QueryErrorResponse, gql, vars, type ValidIf, QueryVar, varsIdsEqual, };
|
|
6
7
|
/** @hidden */
|
|
7
8
|
export type InferQueryVarType<T> = T extends QueryVar<infer U> ? U : never;
|
|
8
9
|
/** @hidden */
|
|
@@ -10,6 +11,8 @@ export type InferVariableTypes<T> = {
|
|
|
10
11
|
[K in keyof T]: InferQueryVarType<T[K]>;
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
14
|
+
* Defines when a query can safely be cached.
|
|
15
|
+
*
|
|
13
16
|
* #### Example
|
|
14
17
|
* ```ts
|
|
15
18
|
* import { vars, Caching } from 'crelte/queries';
|
|
@@ -24,4 +27,46 @@ export type InferVariableTypes<T> = {
|
|
|
24
27
|
* ```
|
|
25
28
|
*/
|
|
26
29
|
export type Caching<T extends Record<string, QueryVar<any>> = Record<string, QueryVar<any>>> = boolean | ((response: any, vars: InferVariableTypes<T>) => boolean);
|
|
30
|
+
/** use {@link Transfrom} */
|
|
31
|
+
export type TransformFn<T extends Record<string, QueryVar<any>> = Record<string, QueryVar<any>>> = (response: any, vars: InferVariableTypes<T>) => void | any | Promise<void | any>;
|
|
32
|
+
/**
|
|
33
|
+
* Transforms the query response before it is returned or cached.
|
|
34
|
+
*
|
|
35
|
+
* #### Example
|
|
36
|
+
* ```ts
|
|
37
|
+
* export const transform: Transform<typeof variables> = (response, vars) => {
|
|
38
|
+
* for (const entry of response.entries) {
|
|
39
|
+
* entry.title = entry.title.toUpperCase();
|
|
40
|
+
* }
|
|
41
|
+
* };
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export type Transform<T extends Record<string, QueryVar<any>> = Record<string, QueryVar<any>>, F extends TransformFn<T> = TransformFn<T>> = (response: any, vars: InferVariableTypes<T>) => Awaited<ReturnType<F>>;
|
|
45
|
+
/** use {@link Handle} */
|
|
46
|
+
export type HandleFn<T extends Record<string, QueryVar<any>> = Record<string, QueryVar<any>>> = (csr: CrelteServerRequest, vars: InferVariableTypes<T>) => any;
|
|
47
|
+
/**
|
|
48
|
+
* Handles a query request.
|
|
49
|
+
*
|
|
50
|
+
* #### Example
|
|
51
|
+
* ```ts
|
|
52
|
+
* // queries/custom.ts
|
|
53
|
+
* import { vars, type Handle, gql, namedQuery } from 'crelte/queries';
|
|
54
|
+
*
|
|
55
|
+
* // It is good practice to have the query name inside the file
|
|
56
|
+
* export const customQuery = namedQuery('custom');
|
|
57
|
+
*
|
|
58
|
+
* export const variables = {
|
|
59
|
+
* name: vars.string(),
|
|
60
|
+
* };
|
|
61
|
+
*
|
|
62
|
+
* export const handle: Handle<typeof variables> = async (csr, vars) => {
|
|
63
|
+
* if (vars.name === 'demo') {
|
|
64
|
+
* throw new Response('not allowed', { status: 400 });
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* return { name: vars.name };
|
|
68
|
+
* };
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export type Handle<T extends Record<string, QueryVar<any>> = Record<string, QueryVar<any>>, F extends HandleFn<T> = HandleFn<T>> = (csr: CrelteServerRequest, vars: InferVariableTypes<T>) => Awaited<ReturnType<F>>;
|
|
27
72
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EACf,OAAO,EACP,cAAc,EACd,KAAK,EACL,YAAY,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,UAAU,EAAE,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EACN,OAAO,EACP,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,OAAO,EACP,UAAU,EACV,KAAK,kBAAkB,EACvB,GAAG,EACH,IAAI,EACJ,KAAK,OAAO,EACZ,QAAQ,EACR,YAAY,GACZ,CAAC;AAEF,cAAc;AACd,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE3E,cAAc;AACd,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Queries, { isQuery, } from '../queries/Queries.js';
|
|
1
|
+
import Queries, { isQuery, namedQuery, } from '../queries/Queries.js';
|
|
2
2
|
import { gql } from './gql.js';
|
|
3
3
|
import QueryError from './QueryError.js';
|
|
4
4
|
import { QueryVar, vars, varsIdsEqual } from './vars.js';
|
|
5
|
-
export { Queries, isQuery, QueryError, gql, vars, QueryVar, varsIdsEqual, };
|
|
5
|
+
export { Queries, namedQuery, isQuery, QueryError, gql, vars, QueryVar, varsIdsEqual, };
|
package/dist/queries/vars.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export declare class QueryVar<T = any> {
|
|
|
40
40
|
private name;
|
|
41
41
|
private type;
|
|
42
42
|
private flagNullable;
|
|
43
|
+
private defaultValue;
|
|
43
44
|
private validIfFn;
|
|
44
45
|
constructor();
|
|
45
46
|
string(): QueryVar<string>;
|
|
@@ -47,6 +48,7 @@ export declare class QueryVar<T = any> {
|
|
|
47
48
|
id(): QueryVar<number>;
|
|
48
49
|
ids(): QueryVar<number[]>;
|
|
49
50
|
nullable(): QueryVar<T | null>;
|
|
51
|
+
default(value: T): QueryVar<T>;
|
|
50
52
|
/**
|
|
51
53
|
* Set a validation function for this variable
|
|
52
54
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../../src/queries/vars.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,eAAO,MAAM,IAAI;eACP,QAAQ,CAAC,GAAG,CAAC;kBACV,QAAQ,CAAC,MAAM,CAAC;kBAChB,QAAQ,CAAC,MAAM,CAAC;IAE5B;;;;;;;;OAQG;cACK,QAAQ,CAAC,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;OAkBG;eACM,QAAQ,CAAC,MAAM,EAAE,CAAC;kBAEf,QAAQ,CAAC,MAAM,CAAC;CAM5B,CAAC;AAIF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC;AAE7D,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAa;;
|
|
1
|
+
{"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../../src/queries/vars.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,eAAO,MAAM,IAAI;eACP,QAAQ,CAAC,GAAG,CAAC;kBACV,QAAQ,CAAC,MAAM,CAAC;kBAChB,QAAQ,CAAC,MAAM,CAAC;IAE5B;;;;;;;;OAQG;cACK,QAAQ,CAAC,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;OAkBG;eACM,QAAQ,CAAC,MAAM,EAAE,CAAC;kBAEf,QAAQ,CAAC,MAAM,CAAC;CAM5B,CAAC;AAIF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC;AAE7D,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,SAAS,CAAa;;IAU9B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAK1B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAK1B,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC;IAKtB,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IAKzB,QAAQ,IAAI,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9B,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAK9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAKpC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,GAAG,CAAC,GAAG,IAAI;IA2E9C;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAKpC,YAAY;CACZ;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAMhD;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,YAAY,CAC3B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC9B,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAWT"}
|
package/dist/queries/vars.js
CHANGED
|
@@ -40,11 +40,13 @@ export class QueryVar {
|
|
|
40
40
|
name;
|
|
41
41
|
type;
|
|
42
42
|
flagNullable;
|
|
43
|
+
defaultValue;
|
|
43
44
|
validIfFn;
|
|
44
45
|
constructor() {
|
|
45
46
|
this.name = null;
|
|
46
47
|
this.type = 'any';
|
|
47
48
|
this.flagNullable = false;
|
|
49
|
+
this.defaultValue = undefined;
|
|
48
50
|
this.validIfFn = () => true;
|
|
49
51
|
}
|
|
50
52
|
string() {
|
|
@@ -67,6 +69,10 @@ export class QueryVar {
|
|
|
67
69
|
this.flagNullable = true;
|
|
68
70
|
return this;
|
|
69
71
|
}
|
|
72
|
+
default(value) {
|
|
73
|
+
this.defaultValue = value;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
70
76
|
/**
|
|
71
77
|
* Set a validation function for this variable
|
|
72
78
|
*
|
|
@@ -82,6 +88,8 @@ export class QueryVar {
|
|
|
82
88
|
if (typeof v === 'undefined')
|
|
83
89
|
v = null;
|
|
84
90
|
if (v === null) {
|
|
91
|
+
if (this.defaultValue !== undefined)
|
|
92
|
+
return this.defaultValue;
|
|
85
93
|
if (!this.flagNullable)
|
|
86
94
|
throw new Error(`variable ${this.name} cannot be null`);
|
|
87
95
|
return null;
|
|
@@ -109,6 +117,8 @@ export class QueryVar {
|
|
|
109
117
|
if (!Array.isArray(v))
|
|
110
118
|
throw new Error(`variable ${this.name} is not an id or a list of ids`);
|
|
111
119
|
if (v.length <= 0) {
|
|
120
|
+
if (this.defaultValue !== undefined)
|
|
121
|
+
return this.defaultValue;
|
|
112
122
|
if (this.flagNullable)
|
|
113
123
|
return null;
|
|
114
124
|
throw new Error(`variable ${this.name} is not allowed to be empty`);
|
|
@@ -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;;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;
|
|
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;IAqBlB,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,GAAG,OAAO,CAAC;IAExC;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { objClone } from '../../utils.js';
|
|
1
|
+
import { objClone, promiseThen } from '../../utils.js';
|
|
2
2
|
import BaseRoute from './BaseRoute.js';
|
|
3
3
|
import Route from './Route.js';
|
|
4
4
|
import { Barrier } from '../../std/sync/index.js';
|
|
@@ -193,9 +193,13 @@ class RenderBarrier {
|
|
|
193
193
|
add() {
|
|
194
194
|
const action = this.inner.add();
|
|
195
195
|
return {
|
|
196
|
-
ready:
|
|
196
|
+
ready: () => {
|
|
197
197
|
if (!this.inner.isOpen())
|
|
198
|
-
|
|
198
|
+
return promiseThen(
|
|
199
|
+
// wait for action.ready
|
|
200
|
+
action.ready(null),
|
|
201
|
+
// then return if it was cancelled
|
|
202
|
+
() => this.cancelled);
|
|
199
203
|
return this.cancelled;
|
|
200
204
|
},
|
|
201
205
|
remove: () => {
|
|
@@ -65,7 +65,8 @@ export default class BaseRouter {
|
|
|
65
65
|
*/
|
|
66
66
|
primarySite(): Site;
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
68
|
+
* Returns the default site tries to use a site which matches the preferred language
|
|
69
|
+
* else returns the primary site
|
|
69
70
|
*/
|
|
70
71
|
defaultSite(): Site;
|
|
71
72
|
preferredSite(): Site | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/router/BaseRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,EAAE,EAAa,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,IAAI,EAAE,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAChE,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGhD,MAAM,MAAM,iBAAiB,GAAG,EAAE,GAAG,iBAAiB,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,UAAU;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;;;;OAKG;IACH,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAG9B;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAG5B;;;;;OAKG;IACH,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAG9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE3B;;OAEG;IACH,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC,kBAAkB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,aAAa,CAAC;IAEpD;;OAEG;IACH,eAAe,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE7D,kBAAkB,EAAE,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAE/C,UAAU,EAAE,UAAU,CAAC;IAEvB,gBAAgB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAGrC,QAAQ,EAAE,CACT,EAAE,EAAE,aAAa;IACjB;;;OAGG;IACH,aAAa,EAAE,MAAM,KAAK,EAC1B,UAAU,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,KACjD,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBAG3B,KAAK,EAAE,eAAe,EAAE,EACxB,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,iBAAiB;IA0BxB;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB
|
|
1
|
+
{"version":3,"file":"BaseRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/router/BaseRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,8 +87,10 @@ export default class BaseRouter {
|
|
|
87
87
|
return this.sites.find(s => s.primary) ?? this.sites[0];
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
90
|
-
*
|
|
90
|
+
* Returns the default site tries to use a site which matches the preferred language
|
|
91
|
+
* else returns the primary site
|
|
91
92
|
*/
|
|
93
|
+
// todo check that the router uses the correct sites for each function
|
|
92
94
|
defaultSite() {
|
|
93
95
|
return this.preferredSite() ?? this.primarySite();
|
|
94
96
|
}
|
|
@@ -173,7 +175,7 @@ export default class BaseRouter {
|
|
|
173
175
|
async preload(target) {
|
|
174
176
|
const req = this.targetToRequest(target, { origin: 'preload' });
|
|
175
177
|
const current = this.route.get();
|
|
176
|
-
// if the origin matches, the route will be able to be
|
|
178
|
+
// if the origin matches, the route will be able to be loaded
|
|
177
179
|
// so let's preload it
|
|
178
180
|
if (current && current.url.origin === req.url.origin) {
|
|
179
181
|
// todo i don't wan't to send a CrelteRequest?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/router/ClientRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG;IACjC,kBAAkB,EAAE,OAAO,CAAC;CAC5B,GAAG,iBAAiB,CAAC;AAEtB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,UAAU;IACnD,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,kBAAkB,CAAU;IAEpC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;gBAE5B,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,mBAAmB;IAQ/D;;OAEG;IACG,IAAI;IA8BV;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA6ChD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB;IAYpD,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB;
|
|
1
|
+
{"version":3,"file":"ClientRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/router/ClientRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG;IACjC,kBAAkB,EAAE,OAAO,CAAC;CAC5B,GAAG,iBAAiB,CAAC;AAEtB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,UAAU;IACnD,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,kBAAkB,CAAU;IAEpC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;gBAE5B,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,mBAAmB;IAQ/D;;OAEG;IACG,IAAI;IA8BV;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA6ChD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB;IAYpD,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB;IAY7D,IAAI,IAAI,IAAI;IAIZ;;;OAGG;IACG,qBAAqB,CAC1B,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GACnC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IASxB,MAAM;IAkEN,QAAQ;IAgCR,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI;CA8DpD"}
|
|
@@ -75,21 +75,15 @@ export default class ClientRouter extends BaseRouter {
|
|
|
75
75
|
}
|
|
76
76
|
async pushRequest(req, _opts = {}) {
|
|
77
77
|
const url = req.url;
|
|
78
|
-
return
|
|
78
|
+
return this.handleRequest(req, route => {
|
|
79
79
|
window.history.pushState(route.z_toState(), '', url.pathname + url.search + url.hash);
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
async replaceRequest(req, _opts = {}) {
|
|
83
83
|
const url = req.url;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
catch (e) {
|
|
90
|
-
console.warn('replacing route failed', e);
|
|
91
|
-
throw e;
|
|
92
|
-
}
|
|
84
|
+
return this.handleRequest(req, () => {
|
|
85
|
+
window.history.replaceState(req.z_toState(), '', url.pathname + url.search + url.hash);
|
|
86
|
+
});
|
|
93
87
|
}
|
|
94
88
|
back() {
|
|
95
89
|
window.history.back();
|
|
@@ -117,6 +111,7 @@ export default class ClientRouter extends BaseRouter {
|
|
|
117
111
|
const req = this.targetToRequest(link.href, {
|
|
118
112
|
origin: 'click',
|
|
119
113
|
context: { ...link.dataset },
|
|
114
|
+
disableScroll: attributeToBool(link, 'data-disable-scroll'),
|
|
120
115
|
});
|
|
121
116
|
const currRoute = this.route.get();
|
|
122
117
|
const routeEq = currRoute && currRoute.eqUrl(req) && currRoute.eqSearch(req);
|
|
@@ -137,7 +132,9 @@ export default class ClientRouter extends BaseRouter {
|
|
|
137
132
|
if (link && link.target.toLowerCase() === '_blank')
|
|
138
133
|
return;
|
|
139
134
|
if (link &&
|
|
140
|
-
|
|
135
|
+
// todo remove data-no-preload
|
|
136
|
+
!attributeToBool(link, 'data-no-preload') &&
|
|
137
|
+
!attributeToBool(link, 'data-disable-preload') &&
|
|
141
138
|
link.href) {
|
|
142
139
|
this.preload(link.href);
|
|
143
140
|
}
|
|
@@ -146,11 +143,10 @@ export default class ClientRouter extends BaseRouter {
|
|
|
146
143
|
}
|
|
147
144
|
window.addEventListener('scroll', () => this.onScroll());
|
|
148
145
|
window.addEventListener('popstate', async (e) => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
146
|
+
const req = this.targetToRequest(window.location.href, {
|
|
147
|
+
origin: 'pop',
|
|
148
|
+
});
|
|
152
149
|
req.z_fillFromState(e.state);
|
|
153
|
-
req.origin = 'pop';
|
|
154
150
|
// todo handle errors
|
|
155
151
|
this.handleRequest(req, () => { });
|
|
156
152
|
});
|
|
@@ -236,3 +232,13 @@ export default class ClientRouter extends BaseRouter {
|
|
|
236
232
|
}
|
|
237
233
|
}
|
|
238
234
|
}
|
|
235
|
+
function attributeToBool(el, attr) {
|
|
236
|
+
switch (el.getAttribute(attr)) {
|
|
237
|
+
case '':
|
|
238
|
+
case 'true':
|
|
239
|
+
return true;
|
|
240
|
+
case 'false':
|
|
241
|
+
default:
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/routing/router/Router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAiB;gBAErB,KAAK,EAAE,GAAG;IAKtB;;;;;;;;OAQG;IACH,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAElC;IAED;;;;;;;;;;OAUG;IACH,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,CAEhC;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAElC;IAED;;;;;;;;OAQG;IACH,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,CAMxB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE/B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,QAAQ,CAAC,MAAM,CAAC,CAEtC;IAED;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;;;OAIG;IACH,aAAa,IAAI,IAAI,GAAG,IAAI;IAI5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CACT,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,EACtD,IAAI,GAAE,cAAmB,GACvB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAsBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,IAAI,CACT,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,EACtC,IAAI,GAAE,cAAmB;
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/routing/router/Router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAiB;gBAErB,KAAK,EAAE,GAAG;IAKtB;;;;;;;;OAQG;IACH,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAElC;IAED;;;;;;;;;;OAUG;IACH,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,CAEhC;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAElC;IAED;;;;;;;;OAQG;IACH,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,CAMxB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE/B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,QAAQ,CAAC,MAAM,CAAC,CAEtC;IAED;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;;;OAIG;IACH,aAAa,IAAI,IAAI,GAAG,IAAI;IAI5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CACT,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,EACtD,IAAI,GAAE,cAAmB,GACvB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAsBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,IAAI,CACT,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,EACtC,IAAI,GAAE,cAAmB;IAmB1B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAMhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,OAAO,CACZ,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,EACtC,IAAI,GAAE,cAAmB;IAiB1B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAMnC;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAKpB;;;;OAIG;IACH,IAAI;IAKJ;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK;IAIpC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI;IAI/C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAIvD;;;;;;OAMG;IACH,eAAe,CACd,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,EACtC,IAAI,GAAE,cAAmB,GACvB,OAAO;IAIV;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO;IAMxB,cAAc;IACd,kBAAkB;CAGlB"}
|
|
@@ -187,19 +187,17 @@ export default class Router {
|
|
|
187
187
|
});
|
|
188
188
|
if (!req)
|
|
189
189
|
return;
|
|
190
|
-
|
|
191
|
-
return await this.inner.pushRequest(req, opts);
|
|
192
|
-
}
|
|
193
|
-
catch (e) {
|
|
190
|
+
return this.inner.pushRequest(req, opts).catch(e => {
|
|
194
191
|
console.warn('pushing route failed', e);
|
|
195
192
|
throw e;
|
|
196
|
-
}
|
|
193
|
+
});
|
|
197
194
|
}
|
|
198
195
|
/**
|
|
199
196
|
* @deprecated use push instead
|
|
200
197
|
*/
|
|
201
198
|
pushState(route) {
|
|
202
|
-
|
|
199
|
+
if (import.meta.env.DEV)
|
|
200
|
+
console.warn('pushState is deprecated, use push instead');
|
|
203
201
|
this.push(route);
|
|
204
202
|
}
|
|
205
203
|
/**
|
|
@@ -244,19 +242,17 @@ export default class Router {
|
|
|
244
242
|
});
|
|
245
243
|
if (!req)
|
|
246
244
|
return;
|
|
247
|
-
|
|
248
|
-
return await this.inner.replaceRequest(req, opts);
|
|
249
|
-
}
|
|
250
|
-
catch (e) {
|
|
245
|
+
return this.inner.replaceRequest(req, opts).catch(e => {
|
|
251
246
|
console.warn('replacing route failed', e);
|
|
252
247
|
throw e;
|
|
253
|
-
}
|
|
248
|
+
});
|
|
254
249
|
}
|
|
255
250
|
/**
|
|
256
251
|
* @deprecated use replace instead
|
|
257
252
|
*/
|
|
258
253
|
replaceState(route) {
|
|
259
|
-
|
|
254
|
+
if (import.meta.env.DEV)
|
|
255
|
+
console.warn('replaceState is deprecated, use replace instead');
|
|
260
256
|
this.replace(route);
|
|
261
257
|
}
|
|
262
258
|
/**
|
|
@@ -347,7 +343,8 @@ export default class Router {
|
|
|
347
343
|
nRouter._request = req;
|
|
348
344
|
return nRouter;
|
|
349
345
|
}
|
|
350
|
-
|
|
346
|
+
/** @hidden */
|
|
347
|
+
z_requestCompleted() {
|
|
351
348
|
this._request = null;
|
|
352
349
|
}
|
|
353
350
|
}
|
package/dist/routing/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Site from './Site.js';
|
|
2
2
|
export declare function trimSlashEnd(str: string): string;
|
|
3
|
+
/** same as ?? but only for undefined */
|
|
3
4
|
export declare function orDef<T>(a: T | undefined, def: T): T;
|
|
4
5
|
export declare function preferredSite(sites: Site[], languages: string[]): Site | null;
|
|
5
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/routing/utils.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAEvC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/routing/utils.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAEvC;AAED,wCAAwC;AACxC,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAEpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAK7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,CAAC,EAAE,YAAY,EACf,IAAI,EAAE,iBAAiB,GAAG,SAAS,GACjC,OAAO,CAQT"}
|
package/dist/routing/utils.js
CHANGED
|
@@ -2,7 +2,7 @@ import { matchLanguages } from '../std/intl/index.js';
|
|
|
2
2
|
export function trimSlashEnd(str) {
|
|
3
3
|
return str.endsWith('/') ? str.substring(0, str.length - 1) : str;
|
|
4
4
|
}
|
|
5
|
-
|
|
5
|
+
/** same as ?? but only for undefined */
|
|
6
6
|
export function orDef(a, def) {
|
|
7
7
|
return a === undefined ? def : a;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrelteServer.d.ts","sourceRoot":"","sources":["../../src/server/CrelteServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAW,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,aAAa,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAAG;IACxC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACvC;;OAEG;IACH,GAAG,EAAE,aAAa,CAAC;IAEnB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAU;gBAEd,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"CrelteServer.d.ts","sourceRoot":"","sources":["../../src/server/CrelteServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAW,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,aAAa,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAAG;IACxC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACvC;;OAEG;IACH,GAAG,EAAE,aAAa,CAAC;IAEnB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAU;gBAEd,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,0BAA0B;IAehE;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IACpC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM;IACrC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG;IAI/B;;;;;OAKG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG;IAI9B;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;;;OAIG;IACH,aAAa,IAAI,IAAI,GAAG,IAAI;IAI5B;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,KAAK,EACZ,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,YAAiB,GACrB,OAAO,CAAC,OAAO,CAAC;IAInB,cAAc;IACd,gBAAgB,CAAC,IAAI,EAAE,QAAQ;CAG/B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Cookies } from '../cookies/index.js';
|
|
1
2
|
import ServerCookies from '../cookies/ServerCookies.js';
|
|
2
3
|
import { Request } from '../routing/index.js';
|
|
3
4
|
import { urlWithPath } from '../utils.js';
|
|
@@ -11,6 +12,7 @@ export default class CrelteServerRequest {
|
|
|
11
12
|
_sites;
|
|
12
13
|
_langs;
|
|
13
14
|
_queries;
|
|
15
|
+
_scookies;
|
|
14
16
|
_cookies;
|
|
15
17
|
constructor(req, opts) {
|
|
16
18
|
this.req = req;
|
|
@@ -19,7 +21,8 @@ export default class CrelteServerRequest {
|
|
|
19
21
|
this._langs = opts.languages;
|
|
20
22
|
this.prefSite = opts.preferredSite;
|
|
21
23
|
this._queries = opts.queries.z_toRequest(new Request(new URL(req.url), req.site));
|
|
22
|
-
this.
|
|
24
|
+
this._scookies = new ServerCookies(req.headers);
|
|
25
|
+
this._cookies = new Cookies(this._scookies);
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* Easy access to this.req.site
|
|
@@ -104,6 +107,6 @@ export default class CrelteServerRequest {
|
|
|
104
107
|
}
|
|
105
108
|
/** @hidden */
|
|
106
109
|
z_finishResponse(resp) {
|
|
107
|
-
this.
|
|
110
|
+
this._scookies._populateHeaders(resp.headers);
|
|
108
111
|
}
|
|
109
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerRouter.d.ts","sourceRoot":"","sources":["../../src/server/ServerRouter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ServerRouter.d.ts","sourceRoot":"","sources":["../../src/server/ServerRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,9 +89,7 @@ export default class ServerRouter {
|
|
|
89
89
|
this.primarySite();
|
|
90
90
|
const nReq = new ServerRequest(req, new Map(Object.entries(params)), site);
|
|
91
91
|
// we create a new Queries here, because each request should have its own SsrCache
|
|
92
|
-
const queries = Queries.new(this.endpointUrl, this.frontendUrl, new SsrCache(), {
|
|
93
|
-
bearerToken: this.endpointToken,
|
|
94
|
-
});
|
|
92
|
+
const queries = Queries.new(this.endpointUrl, this.frontendUrl, new SsrCache(), { bearerToken: this.endpointToken });
|
|
95
93
|
const csr = new CrelteServerRequest(nReq, {
|
|
96
94
|
env: this.env,
|
|
97
95
|
sites: this.sites,
|
|
@@ -99,12 +97,24 @@ export default class ServerRouter {
|
|
|
99
97
|
preferredSite: prefSite,
|
|
100
98
|
queries,
|
|
101
99
|
});
|
|
100
|
+
let resp = null;
|
|
102
101
|
for (const handler of handlers) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
try {
|
|
103
|
+
const res = await handler(csr);
|
|
104
|
+
if (!res)
|
|
105
|
+
continue;
|
|
106
|
+
resp = res;
|
|
107
107
|
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
if (!(e instanceof Response))
|
|
110
|
+
throw e;
|
|
111
|
+
resp = e;
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
if (resp) {
|
|
116
|
+
csr.z_finishResponse(resp);
|
|
117
|
+
return resp;
|
|
108
118
|
}
|
|
109
119
|
return null;
|
|
110
120
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import CrelteServerRequest from '../CrelteServer.js';
|
|
2
|
+
import QueriesCaching from './QueriesCaching.js';
|
|
3
|
+
import { QueryVar } from '../../queries/vars.js';
|
|
4
|
+
import { CacheIfFn, TransformFn } from './routes.js';
|
|
5
|
+
export type QueryGqlArgs = {
|
|
6
|
+
vars: Record<string, QueryVar> | null;
|
|
7
|
+
cacheIfFn: CacheIfFn | null;
|
|
8
|
+
preventCaching: boolean;
|
|
9
|
+
transformFn: TransformFn | null;
|
|
10
|
+
};
|
|
11
|
+
export default class QueryGqlRoute {
|
|
12
|
+
name: string;
|
|
13
|
+
query: string;
|
|
14
|
+
vars: Record<string, QueryVar> | null;
|
|
15
|
+
cacheIfFn: CacheIfFn | null;
|
|
16
|
+
transformFn: TransformFn | null;
|
|
17
|
+
constructor(name: string, query: string, args: QueryGqlArgs);
|
|
18
|
+
private fillEntryDefaults;
|
|
19
|
+
private fillGlobalDefaults;
|
|
20
|
+
/**
|
|
21
|
+
* This adds caching to queries containing `query {` or
|
|
22
|
+
* `query ($siteId: [QueryArgument) {` without any additional vars
|
|
23
|
+
*/
|
|
24
|
+
private fillBasicDefaults;
|
|
25
|
+
private transform;
|
|
26
|
+
handle(caching: QueriesCaching, csr: CrelteServerRequest): Promise<Response>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=QueryGqlRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryGqlRoute.d.ts","sourceRoot":"","sources":["../../../src/server/queries/QueryGqlRoute.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAY,WAAW,EAAgB,MAAM,aAAa,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IA2B3D,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAuBX,SAAS;IAUjB,MAAM,CACX,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC,QAAQ,CAAC;CAkHpB"}
|