crelte 0.2.2 → 0.3.1
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/Crelte.d.ts +61 -9
- package/dist/Crelte.d.ts.map +1 -1
- package/dist/Crelte.js +42 -10
- package/dist/CrelteRequest.d.ts +3 -11
- package/dist/CrelteRequest.d.ts.map +1 -1
- package/dist/CrelteRequest.js +9 -19
- package/dist/graphql/GraphQl.d.ts +7 -0
- package/dist/graphql/GraphQl.d.ts.map +1 -1
- package/dist/graphql/GraphQl.js +16 -3
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/init/client.d.ts +0 -19
- package/dist/init/client.d.ts.map +1 -1
- package/dist/init/client.js +9 -12
- package/dist/init/server.d.ts +0 -4
- package/dist/init/server.d.ts.map +1 -1
- package/dist/init/server.js +2 -5
- package/dist/init/shared.d.ts.map +1 -1
- package/dist/init/shared.js +8 -8
- package/dist/loadData/Globals.d.ts +15 -31
- package/dist/loadData/Globals.d.ts.map +1 -1
- package/dist/loadData/Globals.js +65 -72
- package/dist/routing/InnerRouter.d.ts +1 -10
- package/dist/routing/InnerRouter.d.ts.map +1 -1
- package/dist/routing/InnerRouter.js +28 -23
- package/dist/routing/Request.d.ts +2 -0
- package/dist/routing/Request.d.ts.map +1 -1
- package/dist/routing/Request.js +9 -0
- package/dist/routing/Route.d.ts +56 -1
- package/dist/routing/Route.d.ts.map +1 -1
- package/dist/routing/Route.js +85 -2
- package/dist/routing/Router.d.ts +29 -4
- package/dist/routing/Router.d.ts.map +1 -1
- package/dist/routing/Router.js +39 -12
- package/dist/ssr/SsrCache.d.ts.map +1 -1
- package/dist/ssr/SsrCache.js +6 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +8 -0
- package/package.json +2 -2
- package/src/Crelte.ts +95 -13
- package/src/CrelteRequest.ts +14 -27
- package/src/graphql/GraphQl.ts +25 -6
- package/src/index.ts +19 -8
- package/src/init/client.ts +9 -40
- package/src/init/server.ts +2 -13
- package/src/init/shared.ts +8 -9
- package/src/loadData/Globals.ts +76 -93
- package/src/routing/InnerRouter.ts +38 -32
- package/src/routing/Request.ts +11 -0
- package/src/routing/Route.ts +93 -2
- package/src/routing/Router.ts +51 -20
- package/src/ssr/SsrCache.ts +6 -1
- package/src/utils.ts +10 -0
package/dist/Crelte.d.ts
CHANGED
|
@@ -1,12 +1,48 @@
|
|
|
1
1
|
import { Cookies } from './cookies/index.js';
|
|
2
|
-
import GraphQl, {
|
|
3
|
-
import
|
|
2
|
+
import GraphQl, { GraphQlQuery } from './graphql/GraphQl.js';
|
|
3
|
+
import { CrelteRequest } from './index.js';
|
|
4
|
+
import Globals, { Global } from './loadData/Globals.js';
|
|
4
5
|
import Events from './plugins/Events.js';
|
|
5
6
|
import Plugins, { Plugin } from './plugins/Plugins.js';
|
|
6
|
-
import
|
|
7
|
+
import type Route from './routing/Route.js';
|
|
8
|
+
import type Request from './routing/Request.js';
|
|
9
|
+
import Router from './routing/Router.js';
|
|
7
10
|
import { SiteFromGraphQl } from './routing/Site.js';
|
|
8
11
|
import SsrCache from './ssr/SsrCache.js';
|
|
12
|
+
export type Config = {
|
|
13
|
+
/**
|
|
14
|
+
* Preload pages on mouse over
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
preloadOnMouseOver?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Use view transitions
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
viewTransition?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Play the intro animation
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
playIntro?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Enable X-Craft-Site Header
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
XCraftSiteHeader?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Enable graphql query debugging
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
debugGraphQl?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Enable request and render timing measurement
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
debugTiming?: boolean;
|
|
43
|
+
};
|
|
9
44
|
export declare class CrelteBuilder {
|
|
45
|
+
config: Config;
|
|
10
46
|
ssrCache: SsrCache;
|
|
11
47
|
plugins: Plugins;
|
|
12
48
|
events: Events;
|
|
@@ -14,9 +50,9 @@ export declare class CrelteBuilder {
|
|
|
14
50
|
router?: Router;
|
|
15
51
|
globals: Globals;
|
|
16
52
|
cookies: Cookies;
|
|
17
|
-
constructor();
|
|
18
|
-
setupGraphQl(endpoint: string
|
|
19
|
-
setupRouter(sites: SiteFromGraphQl[]
|
|
53
|
+
constructor(config: Config);
|
|
54
|
+
setupGraphQl(endpoint: string): void;
|
|
55
|
+
setupRouter(sites: SiteFromGraphQl[]): void;
|
|
20
56
|
setupCookies(cookies: string): void;
|
|
21
57
|
build(): Crelte;
|
|
22
58
|
}
|
|
@@ -40,11 +76,18 @@ export type QueryOptions = {
|
|
|
40
76
|
* `ignoreStatusCode` is set to `true`
|
|
41
77
|
*/
|
|
42
78
|
status?: number;
|
|
79
|
+
/**
|
|
80
|
+
* A GraphQl Token generated in Craft
|
|
81
|
+
*/
|
|
82
|
+
bearerToken?: string;
|
|
43
83
|
};
|
|
44
84
|
/**
|
|
45
85
|
* This is the main class of Crelte and can be accessed
|
|
46
|
-
* in component initialisation via `getCrelte()`
|
|
47
|
-
*
|
|
86
|
+
* in component initialisation via `getCrelte()`
|
|
87
|
+
*
|
|
88
|
+
* Crelte is stateless, which means it is not associated with
|
|
89
|
+
* a specific route or site. If you need a statefull crelte
|
|
90
|
+
* use the function `toCrelteRequest`
|
|
48
91
|
*/
|
|
49
92
|
export default class Crelte {
|
|
50
93
|
protected _ssrCache: SsrCache;
|
|
@@ -103,7 +146,16 @@ export default class Crelte {
|
|
|
103
146
|
* always return null. In that context you should use
|
|
104
147
|
* `CrelteRequest.getGlobalAsync`
|
|
105
148
|
*/
|
|
106
|
-
|
|
149
|
+
getGlobalStore<T = any>(name: string): Global<T> | null;
|
|
150
|
+
/**
|
|
151
|
+
* returns a new CrelteRequest instance either with the current
|
|
152
|
+
* route or a provided one
|
|
153
|
+
*
|
|
154
|
+
* ## Note
|
|
155
|
+
* This is useful if you want to create a stateful crelte
|
|
156
|
+
* to use in loadData context
|
|
157
|
+
*/
|
|
158
|
+
toRequest(req?: Route | Request): CrelteRequest;
|
|
107
159
|
/**
|
|
108
160
|
* Run a GraphQl Query
|
|
109
161
|
*
|
package/dist/Crelte.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crelte.d.ts","sourceRoot":"","sources":["../../../src/Crelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"Crelte.d.ts","sourceRoot":"","sources":["../../../src/Crelte.ts"],"names":[],"mappings":"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"}
|
package/dist/Crelte.js
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import ClientCookies from './cookies/ClientCookies.js';
|
|
2
2
|
import ServerCookies from './cookies/ServerCookies.js';
|
|
3
3
|
import GraphQl from './graphql/GraphQl.js';
|
|
4
|
+
import { CrelteRequest } from './index.js';
|
|
4
5
|
import Globals from './loadData/Globals.js';
|
|
5
6
|
import Events from './plugins/Events.js';
|
|
6
7
|
import Plugins from './plugins/Plugins.js';
|
|
7
8
|
import Router from './routing/Router.js';
|
|
8
9
|
import SsrCache from './ssr/SsrCache.js';
|
|
10
|
+
const defaultConfig = {
|
|
11
|
+
preloadOnMouseOver: false,
|
|
12
|
+
viewTransition: false,
|
|
13
|
+
playIntro: false,
|
|
14
|
+
XCraftSiteHeader: false,
|
|
15
|
+
debugGraphQl: false,
|
|
16
|
+
debugTiming: false,
|
|
17
|
+
};
|
|
9
18
|
export class CrelteBuilder {
|
|
19
|
+
config;
|
|
10
20
|
ssrCache;
|
|
11
21
|
plugins;
|
|
12
22
|
events;
|
|
@@ -14,7 +24,8 @@ export class CrelteBuilder {
|
|
|
14
24
|
router;
|
|
15
25
|
globals;
|
|
16
26
|
cookies;
|
|
17
|
-
constructor() {
|
|
27
|
+
constructor(config) {
|
|
28
|
+
this.config = { ...defaultConfig, ...config };
|
|
18
29
|
this.ssrCache = new SsrCache();
|
|
19
30
|
this.plugins = new Plugins();
|
|
20
31
|
this.events = new Events();
|
|
@@ -24,11 +35,18 @@ export class CrelteBuilder {
|
|
|
24
35
|
? new ServerCookies()
|
|
25
36
|
: new ClientCookies();
|
|
26
37
|
}
|
|
27
|
-
setupGraphQl(endpoint
|
|
28
|
-
this.graphQl = new GraphQl(endpoint, this.ssrCache,
|
|
38
|
+
setupGraphQl(endpoint) {
|
|
39
|
+
this.graphQl = new GraphQl(endpoint, this.ssrCache, {
|
|
40
|
+
XCraftSiteHeader: this.config.XCraftSiteHeader,
|
|
41
|
+
debug: this.config.debugGraphQl,
|
|
42
|
+
debugTiming: this.config.debugTiming,
|
|
43
|
+
});
|
|
29
44
|
}
|
|
30
|
-
setupRouter(sites
|
|
31
|
-
this.router = new Router(sites,
|
|
45
|
+
setupRouter(sites) {
|
|
46
|
+
this.router = new Router(sites, {
|
|
47
|
+
preloadOnMouseOver: this.config.preloadOnMouseOver,
|
|
48
|
+
debugTiming: this.config.debugTiming,
|
|
49
|
+
});
|
|
32
50
|
}
|
|
33
51
|
setupCookies(cookies) {
|
|
34
52
|
this.cookies._init(cookies);
|
|
@@ -39,8 +57,11 @@ export class CrelteBuilder {
|
|
|
39
57
|
}
|
|
40
58
|
/**
|
|
41
59
|
* This is the main class of Crelte and can be accessed
|
|
42
|
-
* in component initialisation via `getCrelte()`
|
|
43
|
-
*
|
|
60
|
+
* in component initialisation via `getCrelte()`
|
|
61
|
+
*
|
|
62
|
+
* Crelte is stateless, which means it is not associated with
|
|
63
|
+
* a specific route or site. If you need a statefull crelte
|
|
64
|
+
* use the function `toCrelteRequest`
|
|
44
65
|
*/
|
|
45
66
|
export default class Crelte {
|
|
46
67
|
_ssrCache;
|
|
@@ -120,8 +141,19 @@ export default class Crelte {
|
|
|
120
141
|
* always return null. In that context you should use
|
|
121
142
|
* `CrelteRequest.getGlobalAsync`
|
|
122
143
|
*/
|
|
123
|
-
|
|
124
|
-
return this.globals.
|
|
144
|
+
getGlobalStore(name) {
|
|
145
|
+
return this.globals.getStore(name) ?? null;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* returns a new CrelteRequest instance either with the current
|
|
149
|
+
* route or a provided one
|
|
150
|
+
*
|
|
151
|
+
* ## Note
|
|
152
|
+
* This is useful if you want to create a stateful crelte
|
|
153
|
+
* to use in loadData context
|
|
154
|
+
*/
|
|
155
|
+
toRequest(req) {
|
|
156
|
+
return CrelteRequest.fromCrelte(this, req);
|
|
125
157
|
}
|
|
126
158
|
/**
|
|
127
159
|
* Run a GraphQl Query
|
|
@@ -134,7 +166,7 @@ export default class Crelte {
|
|
|
134
166
|
async query(query, variables = {}, opts = {}) {
|
|
135
167
|
// this function is added as convenience
|
|
136
168
|
return this.graphQl.query(query, variables, {
|
|
137
|
-
route: this.router.route.get(),
|
|
169
|
+
route: this.router.route.get() ?? undefined,
|
|
138
170
|
...opts,
|
|
139
171
|
});
|
|
140
172
|
}
|
package/dist/CrelteRequest.d.ts
CHANGED
|
@@ -3,25 +3,19 @@ import { GraphQlQuery } from './graphql/GraphQl.js';
|
|
|
3
3
|
import Site from './routing/Site.js';
|
|
4
4
|
import Request from './routing/Request.js';
|
|
5
5
|
import Route from './routing/Route.js';
|
|
6
|
-
import { GlobalData } from './loadData/Globals.js';
|
|
7
6
|
export default class CrelteRequest extends Crelte {
|
|
8
7
|
/**
|
|
9
8
|
* The current request
|
|
10
9
|
*/
|
|
11
10
|
req: Request;
|
|
12
|
-
private innerGlobals;
|
|
13
11
|
constructor(inner: Crelte, req: Request);
|
|
14
12
|
/**
|
|
15
13
|
* Create a CrelteRequest from a Crelte instance
|
|
16
14
|
*
|
|
17
15
|
* If you don't provide a route or request the current route
|
|
18
16
|
* will be used.
|
|
19
|
-
*
|
|
20
|
-
* ## Note
|
|
21
|
-
* If you provide a route it must contain a site or you must
|
|
22
|
-
* provide one,
|
|
23
17
|
*/
|
|
24
|
-
static fromCrelte(inner: Crelte, req?: Route | Request): CrelteRequest;
|
|
18
|
+
static fromCrelte(inner: Crelte | CrelteRequest, req?: Route | Request): CrelteRequest;
|
|
25
19
|
/**
|
|
26
20
|
* Get the current request
|
|
27
21
|
* @deprecated
|
|
@@ -44,7 +38,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
44
38
|
* always return null. In that context you should use
|
|
45
39
|
* `.getGlobalAsync`
|
|
46
40
|
*/
|
|
47
|
-
getGlobal<T
|
|
41
|
+
getGlobal<T = any>(name: string): T | null;
|
|
48
42
|
/**
|
|
49
43
|
* Get a globalSet and wait until it is loaded
|
|
50
44
|
*
|
|
@@ -52,7 +46,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
52
46
|
* This is only useful in loadGlobalData in all other cases
|
|
53
47
|
* you can use `.getGlobal` which does return a Promise
|
|
54
48
|
*/
|
|
55
|
-
getGlobalAsync<T
|
|
49
|
+
getGlobalAsync<T = any>(name: string): Promise<T | null>;
|
|
56
50
|
/**
|
|
57
51
|
* Run a GraphQl Query
|
|
58
52
|
*
|
|
@@ -62,7 +56,5 @@ export default class CrelteRequest extends Crelte {
|
|
|
62
56
|
* graphql query
|
|
63
57
|
*/
|
|
64
58
|
query(query: GraphQlQuery, variables?: Record<string, unknown>, opts?: QueryOptions): Promise<unknown>;
|
|
65
|
-
/** @hidden */
|
|
66
|
-
_globalDataLoaded(): void;
|
|
67
59
|
}
|
|
68
60
|
//# sourceMappingURL=CrelteRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrelteRequest.d.ts","sourceRoot":"","sources":["../../../src/CrelteRequest.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"CrelteRequest.d.ts","sourceRoot":"","sources":["../../../src/CrelteRequest.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAChD;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;gBAED,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAMvC;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAChB,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,GACnB,aAAa;IAehB;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAGnB;IAED;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI1C;;;;;;OAMG;IACG,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI9D;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,YAAiB,GACrB,OAAO,CAAC,OAAO,CAAC;CAOnB"}
|
package/dist/CrelteRequest.js
CHANGED
|
@@ -5,25 +5,24 @@ export default class CrelteRequest extends Crelte {
|
|
|
5
5
|
* The current request
|
|
6
6
|
*/
|
|
7
7
|
req;
|
|
8
|
-
innerGlobals;
|
|
9
8
|
constructor(inner, req) {
|
|
10
9
|
super(inner);
|
|
11
10
|
this.req = req;
|
|
12
|
-
this.innerGlobals = new Map();
|
|
13
11
|
}
|
|
14
12
|
/**
|
|
15
13
|
* Create a CrelteRequest from a Crelte instance
|
|
16
14
|
*
|
|
17
15
|
* If you don't provide a route or request the current route
|
|
18
16
|
* will be used.
|
|
19
|
-
*
|
|
20
|
-
* ## Note
|
|
21
|
-
* If you provide a route it must contain a site or you must
|
|
22
|
-
* provide one,
|
|
23
17
|
*/
|
|
24
18
|
static fromCrelte(inner, req) {
|
|
19
|
+
if (inner instanceof CrelteRequest && !req)
|
|
20
|
+
return inner;
|
|
25
21
|
if (!req) {
|
|
26
|
-
req = inner.router.route.get();
|
|
22
|
+
req = inner.router.route.get() ?? undefined;
|
|
23
|
+
// this will only occur in the first loadData call
|
|
24
|
+
if (!req)
|
|
25
|
+
throw new Error('router does not contain a route');
|
|
27
26
|
}
|
|
28
27
|
return new CrelteRequest(inner, req instanceof Request ? req : Request.fromRoute(req));
|
|
29
28
|
}
|
|
@@ -32,6 +31,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
32
31
|
* @deprecated
|
|
33
32
|
*/
|
|
34
33
|
get route() {
|
|
34
|
+
console.warn('CrelteRequest.route is deprecated, use .req instead');
|
|
35
35
|
return this.req;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
@@ -54,7 +54,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
54
54
|
* `.getGlobalAsync`
|
|
55
55
|
*/
|
|
56
56
|
getGlobal(name) {
|
|
57
|
-
return this.
|
|
57
|
+
return this.globals.get(name, this.site.id);
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Get a globalSet and wait until it is loaded
|
|
@@ -64,13 +64,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
64
64
|
* you can use `.getGlobal` which does return a Promise
|
|
65
65
|
*/
|
|
66
66
|
async getGlobalAsync(name) {
|
|
67
|
-
|
|
68
|
-
if (global)
|
|
69
|
-
return global;
|
|
70
|
-
const r = await this.globals.getAsync(name);
|
|
71
|
-
if (!r)
|
|
72
|
-
return null;
|
|
73
|
-
return r.bySiteId(this.site.id);
|
|
67
|
+
return this.globals.getAsync(name, this.site.id);
|
|
74
68
|
}
|
|
75
69
|
/**
|
|
76
70
|
* Run a GraphQl Query
|
|
@@ -87,8 +81,4 @@ export default class CrelteRequest extends Crelte {
|
|
|
87
81
|
...opts,
|
|
88
82
|
});
|
|
89
83
|
}
|
|
90
|
-
/** @hidden */
|
|
91
|
-
_globalDataLoaded() {
|
|
92
|
-
this.innerGlobals = this.globals._globalsBySite(this.site.id);
|
|
93
|
-
}
|
|
94
84
|
}
|
|
@@ -35,6 +35,7 @@ export declare class GraphQlError extends Error {
|
|
|
35
35
|
* Options for the GraphQl class
|
|
36
36
|
*/
|
|
37
37
|
export type GraphQlOptions = {
|
|
38
|
+
XCraftSiteHeader?: boolean;
|
|
38
39
|
debug?: boolean;
|
|
39
40
|
debugTiming?: boolean;
|
|
40
41
|
};
|
|
@@ -50,10 +51,15 @@ export type GraphQlOptions = {
|
|
|
50
51
|
*/
|
|
51
52
|
export type GraphQlRequestOptions = {
|
|
52
53
|
path?: string;
|
|
54
|
+
/**
|
|
55
|
+
* !! the route here might not contain a site even if the types
|
|
56
|
+
* says it does. CrelteServer does not know about site
|
|
57
|
+
*/
|
|
53
58
|
route?: Route | URL;
|
|
54
59
|
ignoreStatusCode?: boolean;
|
|
55
60
|
previewToken?: string;
|
|
56
61
|
siteToken?: string;
|
|
62
|
+
bearerToken?: string;
|
|
57
63
|
caching?: boolean;
|
|
58
64
|
headers?: Record<string, string>;
|
|
59
65
|
status?: number;
|
|
@@ -65,6 +71,7 @@ export default class GraphQl {
|
|
|
65
71
|
private endpoint;
|
|
66
72
|
private ssrCache;
|
|
67
73
|
private listeners;
|
|
74
|
+
private XCraftSiteHeader;
|
|
68
75
|
private loggingRequests;
|
|
69
76
|
private loggingTiming;
|
|
70
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphQl.d.ts","sourceRoot":"","sources":["../../../../src/graphql/GraphQl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,QAAwC,MAAM,oBAAoB,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAGD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,GAAG,CAAC;gBAGG,IAAI,EAAE,oBAAoB,EAAE,GAAG,GAAE,GAAU;IAOvD;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB,kBAAkB;IAElB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;CACD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphQl.d.ts","sourceRoot":"","sources":["../../../../src/graphql/GraphQl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,QAAwC,MAAM,oBAAoB,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAGD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,GAAG,CAAC;gBAGG,IAAI,EAAE,oBAAoB,EAAE,GAAG,GAAE,GAAU;IAOvD;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB,kBAAkB;IAElB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;CACD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAU;IAE/B;;OAEG;gBAEF,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,cAAmB;IAW1B;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,qBAA0B,GAC9B,OAAO,CAAC,OAAO,CAAC;YAiCL,OAAO;YA0DP,UAAU;CAsFxB;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,YAAY,CAI5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAClB,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,GAAG,MAAM,EACjD,GAAG,IAAI,EAAE,OAAO,EAAE,GAChB,YAAY,CAuBd"}
|
package/dist/graphql/GraphQl.js
CHANGED
|
@@ -33,6 +33,7 @@ export default class GraphQl {
|
|
|
33
33
|
endpoint;
|
|
34
34
|
ssrCache;
|
|
35
35
|
listeners;
|
|
36
|
+
XCraftSiteHeader;
|
|
36
37
|
loggingRequests;
|
|
37
38
|
loggingTiming;
|
|
38
39
|
/**
|
|
@@ -42,6 +43,7 @@ export default class GraphQl {
|
|
|
42
43
|
this.endpoint = endpoint;
|
|
43
44
|
this.ssrCache = ssrCache;
|
|
44
45
|
this.listeners = new Map();
|
|
46
|
+
this.XCraftSiteHeader = opts?.XCraftSiteHeader ?? false;
|
|
45
47
|
this.loggingRequests = opts?.debug ?? false;
|
|
46
48
|
this.loggingTiming = opts?.debugTiming ?? false;
|
|
47
49
|
}
|
|
@@ -56,15 +58,24 @@ export default class GraphQl {
|
|
|
56
58
|
async query(query, variables = {}, opts = {}) {
|
|
57
59
|
if (opts.route) {
|
|
58
60
|
const search = opts.route.searchParams ?? opts.route.search;
|
|
59
|
-
// todo should variables contain siteId
|
|
60
|
-
// or maybe gql should detect loadData and add it there
|
|
61
|
-
// it might make export const loadData = query; easier
|
|
62
61
|
if (search.has('token') && search.get('x-craft-live-preview')) {
|
|
63
62
|
opts.previewToken = search.get('token');
|
|
64
63
|
}
|
|
65
64
|
else if (search.has('siteToken')) {
|
|
66
65
|
opts.siteToken = search.get('siteToken');
|
|
67
66
|
}
|
|
67
|
+
// if the siteId is not set we set it as an argument for
|
|
68
|
+
// convenience
|
|
69
|
+
if (opts.route.site) {
|
|
70
|
+
if (this.XCraftSiteHeader && !opts.headers?.['X-Craft-Site']) {
|
|
71
|
+
opts.headers = opts.headers ?? {};
|
|
72
|
+
opts.headers['X-Craft-Site'] =
|
|
73
|
+
opts.route.site.id + '';
|
|
74
|
+
}
|
|
75
|
+
if (typeof variables.siteId === 'undefined') {
|
|
76
|
+
variables.siteId = opts.route.site.id;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
68
79
|
}
|
|
69
80
|
opts.path = query.path;
|
|
70
81
|
return await this.request(query.query, variables, opts);
|
|
@@ -126,6 +137,8 @@ export default class GraphQl {
|
|
|
126
137
|
url += '?siteToken=' + opts.siteToken;
|
|
127
138
|
const headers = opts?.headers ?? {};
|
|
128
139
|
headers['Content-Type'] = 'application/json';
|
|
140
|
+
if (opts?.bearerToken)
|
|
141
|
+
headers['Authorization'] = 'Bearer ' + opts.bearerToken;
|
|
129
142
|
if (this.loggingRequests) {
|
|
130
143
|
console.log('query to ', url, variables, opts);
|
|
131
144
|
headers['X-Debug'] = 'enable';
|
package/dist/index.d.ts
CHANGED
|
@@ -3,13 +3,13 @@ import type Router from './routing/Router.js';
|
|
|
3
3
|
import type SsrCache from './ssr/SsrCache.js';
|
|
4
4
|
import type Site from './routing/Site.js';
|
|
5
5
|
import type GraphQl from './graphql/GraphQl.js';
|
|
6
|
-
import Crelte, { type QueryOptions } from './Crelte.js';
|
|
6
|
+
import Crelte, { type QueryOptions, type Config } from './Crelte.js';
|
|
7
7
|
import CrelteRequest from './CrelteRequest.js';
|
|
8
|
-
import type { Global
|
|
8
|
+
import type { Global } from './loadData/Globals.js';
|
|
9
9
|
import type { Cookies } from './cookies/index.js';
|
|
10
10
|
import type { Readable } from 'crelte-std/stores';
|
|
11
11
|
import { LoadData, LoadDataArray, LoadDataFn, LoadDataObj } from './loadData/index.js';
|
|
12
|
-
export { Crelte, CrelteRequest, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray, };
|
|
12
|
+
export { Crelte, CrelteRequest, type Config, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray, };
|
|
13
13
|
/**
|
|
14
14
|
* Get Crelte from the current context
|
|
15
15
|
*
|
|
@@ -83,7 +83,7 @@ export declare function getLoadingProgress(): Readable<number>;
|
|
|
83
83
|
* ## Note
|
|
84
84
|
* This only works during component initialisation.
|
|
85
85
|
*/
|
|
86
|
-
export declare function getGlobal<T
|
|
86
|
+
export declare function getGlobal<T = any>(name: string): Global<T> | null;
|
|
87
87
|
/**
|
|
88
88
|
* returns the cookies instance
|
|
89
89
|
*
|
|
@@ -91,6 +91,12 @@ export declare function getGlobal<T extends GlobalData>(name: string): Global<T>
|
|
|
91
91
|
* This only works during component initialisation.
|
|
92
92
|
*/
|
|
93
93
|
export declare function getCookies(): Cookies;
|
|
94
|
+
/**
|
|
95
|
+
* Listen for route changes
|
|
96
|
+
*
|
|
97
|
+
* ## Note
|
|
98
|
+
* This only works during component initialisation.
|
|
99
|
+
*/
|
|
94
100
|
export declare function onRoute(fn: (route: Route, crelte: Crelte) => void): void;
|
|
95
101
|
/**
|
|
96
102
|
* Listen for requests
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,MAAM,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,MAAM,EAAE,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACN,QAAQ,EACR,aAAa,EACb,UAAU,EACV,WAAW,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,MAAM,EACN,aAAa,EACb,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAK1C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAKxC;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC;AACrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC;AACtD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAKpD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,QAOjE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,QAOxD"}
|
package/dist/index.js
CHANGED
|
@@ -45,6 +45,9 @@ export function getGraphQl() {
|
|
|
45
45
|
* This only works during component initialisation.
|
|
46
46
|
*/
|
|
47
47
|
export function getRoute() {
|
|
48
|
+
// the route will never be null because it is only null in the
|
|
49
|
+
// first loadData call and that happens before any component
|
|
50
|
+
// initialisation
|
|
48
51
|
return getRouter().route;
|
|
49
52
|
}
|
|
50
53
|
/**
|
|
@@ -54,6 +57,9 @@ export function getRoute() {
|
|
|
54
57
|
* This only works during component initialisation.
|
|
55
58
|
*/
|
|
56
59
|
export function getSite() {
|
|
60
|
+
// the site will never be null because it is only null in the
|
|
61
|
+
// first loadData call and that happens before any component
|
|
62
|
+
// initialisation
|
|
57
63
|
return getRouter().site;
|
|
58
64
|
}
|
|
59
65
|
export function getEnv(name) {
|
|
@@ -84,7 +90,7 @@ export function getLoadingProgress() {
|
|
|
84
90
|
* This only works during component initialisation.
|
|
85
91
|
*/
|
|
86
92
|
export function getGlobal(name) {
|
|
87
|
-
return getCrelte().globals.
|
|
93
|
+
return getCrelte().globals.getStore(name);
|
|
88
94
|
}
|
|
89
95
|
/**
|
|
90
96
|
* returns the cookies instance
|
|
@@ -95,6 +101,12 @@ export function getGlobal(name) {
|
|
|
95
101
|
export function getCookies() {
|
|
96
102
|
return getCrelte().cookies;
|
|
97
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Listen for route changes
|
|
106
|
+
*
|
|
107
|
+
* ## Note
|
|
108
|
+
* This only works during component initialisation.
|
|
109
|
+
*/
|
|
98
110
|
export function onRoute(fn) {
|
|
99
111
|
const crelte = getCrelte();
|
|
100
112
|
const rmListener = crelte.router.onRoute(route => {
|
package/dist/init/client.d.ts
CHANGED
|
@@ -11,25 +11,6 @@ export type MainData = {
|
|
|
11
11
|
entryQuery: GraphQlQuery;
|
|
12
12
|
/** The global query from queries/global.graphql */
|
|
13
13
|
globalQuery?: GraphQlQuery;
|
|
14
|
-
/**
|
|
15
|
-
* Preload pages on mouse over
|
|
16
|
-
* @default false
|
|
17
|
-
*/
|
|
18
|
-
preloadOnMouseOver?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Use view transitions
|
|
21
|
-
* @default false
|
|
22
|
-
*/
|
|
23
|
-
viewTransition?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Play the intro animation
|
|
26
|
-
* @default false
|
|
27
|
-
*/
|
|
28
|
-
playIntro?: boolean;
|
|
29
|
-
/** Enable graphql query debugging */
|
|
30
|
-
graphQlDebug?: boolean;
|
|
31
|
-
/** Enable request and render timing measurement */
|
|
32
|
-
debugTiming?: boolean;
|
|
33
14
|
};
|
|
34
15
|
/**
|
|
35
16
|
* The main function to start the client side rendering
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/init/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/init/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAaF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,QAsIlC"}
|
package/dist/init/client.js
CHANGED
|
@@ -6,6 +6,7 @@ const mainDataDefault = {
|
|
|
6
6
|
preloadOnMouseOver: false,
|
|
7
7
|
viewTransition: false,
|
|
8
8
|
playIntro: false,
|
|
9
|
+
XCraftSiteHeader: false,
|
|
9
10
|
// will be passed down to ClientRenderer
|
|
10
11
|
graphQlDebug: false,
|
|
11
12
|
debugTiming: false,
|
|
@@ -43,18 +44,13 @@ export function main(data) {
|
|
|
43
44
|
// loadTemplate
|
|
44
45
|
// update
|
|
45
46
|
// construct Crelte
|
|
46
|
-
const builder = new CrelteBuilder();
|
|
47
|
+
const builder = new CrelteBuilder(data.app.config ?? {});
|
|
47
48
|
const endpoint = builder.ssrCache.get('ENDPOINT_URL');
|
|
48
|
-
builder.setupGraphQl(endpoint
|
|
49
|
-
debug: data.graphQlDebug,
|
|
50
|
-
debugTiming: data.debugTiming,
|
|
51
|
-
});
|
|
49
|
+
builder.setupGraphQl(endpoint);
|
|
52
50
|
// on the client the cookies are always coming from document.cookie
|
|
53
51
|
builder.setupCookies('');
|
|
54
52
|
const csites = builder.ssrCache.get('crelteSites');
|
|
55
|
-
builder.setupRouter(csites
|
|
56
|
-
preloadOnMouseOver: data.preloadOnMouseOver,
|
|
57
|
-
});
|
|
53
|
+
builder.setupRouter(csites);
|
|
58
54
|
const crelte = builder.build();
|
|
59
55
|
const serverError = crelte.ssrCache.get('ERROR');
|
|
60
56
|
if (serverError) {
|
|
@@ -84,7 +80,7 @@ export function main(data) {
|
|
|
84
80
|
props,
|
|
85
81
|
hydrate: true,
|
|
86
82
|
context: crelte._getContext(),
|
|
87
|
-
intro:
|
|
83
|
+
intro: builder.config.playIntro,
|
|
88
84
|
});
|
|
89
85
|
}
|
|
90
86
|
else {
|
|
@@ -98,7 +94,8 @@ export function main(data) {
|
|
|
98
94
|
if (!success) {
|
|
99
95
|
// if this is not the first load we should reload the page
|
|
100
96
|
// we don't reload everytime because this might cause a reload loop
|
|
101
|
-
// and since the first load will probably just contain ssrCache data
|
|
97
|
+
// and since the first load will probably just contain ssrCache data
|
|
98
|
+
// in almost all cases the first load will never faill
|
|
102
99
|
if (!isFirstLoad) {
|
|
103
100
|
// the load might contain a js error and we prefer the error
|
|
104
101
|
// page
|
|
@@ -108,7 +105,7 @@ export function main(data) {
|
|
|
108
105
|
return handleLoadError(readyForProps());
|
|
109
106
|
}
|
|
110
107
|
const cr = new CrelteRequest(crelte, req);
|
|
111
|
-
const startTime =
|
|
108
|
+
const startTime = builder.config.debugTiming ? Date.now() : null;
|
|
112
109
|
let render = async () => {
|
|
113
110
|
// we should trigger the route update here
|
|
114
111
|
pluginsBeforeRender(cr);
|
|
@@ -121,7 +118,7 @@ export function main(data) {
|
|
|
121
118
|
crelte.router._internal.domReady(cr.req);
|
|
122
119
|
};
|
|
123
120
|
// render with view Transition if enabled and not in hydration
|
|
124
|
-
if (
|
|
121
|
+
if (builder.config.viewTransition &&
|
|
125
122
|
appInstance &&
|
|
126
123
|
document.startViewTransition) {
|
|
127
124
|
render = () => document.startViewTransition(render);
|
package/dist/init/server.d.ts
CHANGED
|
@@ -23,10 +23,6 @@ export type MainData = {
|
|
|
23
23
|
globalQuery?: GraphQlQuery;
|
|
24
24
|
/** Server data provided by crelte-node */
|
|
25
25
|
serverData: ServerData;
|
|
26
|
-
/** Enable graphql query debugging */
|
|
27
|
-
graphQlDebug?: boolean;
|
|
28
|
-
/** Enable request and render timing measurement */
|
|
29
|
-
debugTiming?: boolean;
|
|
30
26
|
};
|
|
31
27
|
/**
|
|
32
28
|
* The main function to start the server side rendering
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/init/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/init/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CA0ED;AAED,MAAM,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAE3B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IAEf,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC9B,IAAI,EAAE,aAAa,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B5C"}
|