crelte 0.2.2 → 0.3.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/Crelte.d.ts +49 -9
- package/dist/Crelte.d.ts.map +1 -1
- package/dist/Crelte.js +30 -10
- package/dist/CrelteRequest.d.ts +3 -7
- package/dist/CrelteRequest.d.ts.map +1 -1
- package/dist/CrelteRequest.js +9 -15
- 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 +15 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -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.map +1 -1
- package/dist/routing/InnerRouter.js +8 -2
- package/dist/routing/Router.d.ts +27 -2
- package/dist/routing/Router.d.ts.map +1 -1
- package/dist/routing/Router.js +31 -1
- package/dist/ssr/SsrCache.d.ts.map +1 -1
- package/dist/ssr/SsrCache.js +6 -1
- package/package.json +2 -2
- package/src/Crelte.ts +80 -13
- package/src/CrelteRequest.ts +14 -23
- package/src/graphql/GraphQl.ts +25 -6
- package/src/index.ts +30 -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 +9 -2
- package/src/routing/Router.ts +43 -9
- package/src/ssr/SsrCache.ts +6 -1
package/dist/Crelte.d.ts
CHANGED
|
@@ -1,12 +1,45 @@
|
|
|
1
1
|
import { Cookies } from './cookies/index.js';
|
|
2
|
-
import GraphQl, {
|
|
3
|
-
import Globals, { Global
|
|
2
|
+
import GraphQl, { GraphQlQuery } from './graphql/GraphQl.js';
|
|
3
|
+
import Globals, { Global } from './loadData/Globals.js';
|
|
4
4
|
import Events from './plugins/Events.js';
|
|
5
5
|
import Plugins, { Plugin } from './plugins/Plugins.js';
|
|
6
|
-
import Router
|
|
6
|
+
import Router from './routing/Router.js';
|
|
7
7
|
import { SiteFromGraphQl } from './routing/Site.js';
|
|
8
8
|
import SsrCache from './ssr/SsrCache.js';
|
|
9
|
+
export type Config = {
|
|
10
|
+
/**
|
|
11
|
+
* Preload pages on mouse over
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
preloadOnMouseOver?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Use view transitions
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
viewTransition?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Play the intro animation
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
playIntro?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Enable X-Craft-Site Header
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
XCraftSiteHeader?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Enable graphql query debugging
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
debugGraphQl?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Enable request and render timing measurement
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
debugTiming?: boolean;
|
|
40
|
+
};
|
|
9
41
|
export declare class CrelteBuilder {
|
|
42
|
+
config: Config;
|
|
10
43
|
ssrCache: SsrCache;
|
|
11
44
|
plugins: Plugins;
|
|
12
45
|
events: Events;
|
|
@@ -14,9 +47,9 @@ export declare class CrelteBuilder {
|
|
|
14
47
|
router?: Router;
|
|
15
48
|
globals: Globals;
|
|
16
49
|
cookies: Cookies;
|
|
17
|
-
constructor();
|
|
18
|
-
setupGraphQl(endpoint: string
|
|
19
|
-
setupRouter(sites: SiteFromGraphQl[]
|
|
50
|
+
constructor(config: Config);
|
|
51
|
+
setupGraphQl(endpoint: string): void;
|
|
52
|
+
setupRouter(sites: SiteFromGraphQl[]): void;
|
|
20
53
|
setupCookies(cookies: string): void;
|
|
21
54
|
build(): Crelte;
|
|
22
55
|
}
|
|
@@ -40,11 +73,18 @@ export type QueryOptions = {
|
|
|
40
73
|
* `ignoreStatusCode` is set to `true`
|
|
41
74
|
*/
|
|
42
75
|
status?: number;
|
|
76
|
+
/**
|
|
77
|
+
* A GraphQl Token generated in Craft
|
|
78
|
+
*/
|
|
79
|
+
bearerToken?: string;
|
|
43
80
|
};
|
|
44
81
|
/**
|
|
45
82
|
* This is the main class of Crelte and can be accessed
|
|
46
|
-
* in component initialisation via `getCrelte()`
|
|
47
|
-
*
|
|
83
|
+
* in component initialisation via `getCrelte()`
|
|
84
|
+
*
|
|
85
|
+
* Crelte is stateless, which means it is not associated with
|
|
86
|
+
* a specific route or site. If you need a statefull crelte
|
|
87
|
+
* use the function `toCrelteRequest`
|
|
48
88
|
*/
|
|
49
89
|
export default class Crelte {
|
|
50
90
|
protected _ssrCache: SsrCache;
|
|
@@ -103,7 +143,7 @@ export default class Crelte {
|
|
|
103
143
|
* always return null. In that context you should use
|
|
104
144
|
* `CrelteRequest.getGlobalAsync`
|
|
105
145
|
*/
|
|
106
|
-
|
|
146
|
+
getGlobalStore<T = any>(name: string): Global<T> | null;
|
|
107
147
|
/**
|
|
108
148
|
* Run a GraphQl Query
|
|
109
149
|
*
|
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
|
@@ -6,7 +6,16 @@ import Events from './plugins/Events.js';
|
|
|
6
6
|
import Plugins from './plugins/Plugins.js';
|
|
7
7
|
import Router from './routing/Router.js';
|
|
8
8
|
import SsrCache from './ssr/SsrCache.js';
|
|
9
|
+
const defaultConfig = {
|
|
10
|
+
preloadOnMouseOver: false,
|
|
11
|
+
viewTransition: false,
|
|
12
|
+
playIntro: false,
|
|
13
|
+
XCraftSiteHeader: false,
|
|
14
|
+
debugGraphQl: false,
|
|
15
|
+
debugTiming: false,
|
|
16
|
+
};
|
|
9
17
|
export class CrelteBuilder {
|
|
18
|
+
config;
|
|
10
19
|
ssrCache;
|
|
11
20
|
plugins;
|
|
12
21
|
events;
|
|
@@ -14,7 +23,8 @@ export class CrelteBuilder {
|
|
|
14
23
|
router;
|
|
15
24
|
globals;
|
|
16
25
|
cookies;
|
|
17
|
-
constructor() {
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.config = { ...defaultConfig, ...config };
|
|
18
28
|
this.ssrCache = new SsrCache();
|
|
19
29
|
this.plugins = new Plugins();
|
|
20
30
|
this.events = new Events();
|
|
@@ -24,11 +34,18 @@ export class CrelteBuilder {
|
|
|
24
34
|
? new ServerCookies()
|
|
25
35
|
: new ClientCookies();
|
|
26
36
|
}
|
|
27
|
-
setupGraphQl(endpoint
|
|
28
|
-
this.graphQl = new GraphQl(endpoint, this.ssrCache,
|
|
37
|
+
setupGraphQl(endpoint) {
|
|
38
|
+
this.graphQl = new GraphQl(endpoint, this.ssrCache, {
|
|
39
|
+
XCraftSiteHeader: this.config.XCraftSiteHeader,
|
|
40
|
+
debug: this.config.debugGraphQl,
|
|
41
|
+
debugTiming: this.config.debugTiming,
|
|
42
|
+
});
|
|
29
43
|
}
|
|
30
|
-
setupRouter(sites
|
|
31
|
-
this.router = new Router(sites,
|
|
44
|
+
setupRouter(sites) {
|
|
45
|
+
this.router = new Router(sites, {
|
|
46
|
+
preloadOnMouseOver: this.config.preloadOnMouseOver,
|
|
47
|
+
debugTiming: this.config.debugTiming,
|
|
48
|
+
});
|
|
32
49
|
}
|
|
33
50
|
setupCookies(cookies) {
|
|
34
51
|
this.cookies._init(cookies);
|
|
@@ -39,8 +56,11 @@ export class CrelteBuilder {
|
|
|
39
56
|
}
|
|
40
57
|
/**
|
|
41
58
|
* This is the main class of Crelte and can be accessed
|
|
42
|
-
* in component initialisation via `getCrelte()`
|
|
43
|
-
*
|
|
59
|
+
* in component initialisation via `getCrelte()`
|
|
60
|
+
*
|
|
61
|
+
* Crelte is stateless, which means it is not associated with
|
|
62
|
+
* a specific route or site. If you need a statefull crelte
|
|
63
|
+
* use the function `toCrelteRequest`
|
|
44
64
|
*/
|
|
45
65
|
export default class Crelte {
|
|
46
66
|
_ssrCache;
|
|
@@ -120,8 +140,8 @@ export default class Crelte {
|
|
|
120
140
|
* always return null. In that context you should use
|
|
121
141
|
* `CrelteRequest.getGlobalAsync`
|
|
122
142
|
*/
|
|
123
|
-
|
|
124
|
-
return this.globals.
|
|
143
|
+
getGlobalStore(name) {
|
|
144
|
+
return this.globals.getStore(name) ?? null;
|
|
125
145
|
}
|
|
126
146
|
/**
|
|
127
147
|
* Run a GraphQl Query
|
|
@@ -134,7 +154,7 @@ export default class Crelte {
|
|
|
134
154
|
async query(query, variables = {}, opts = {}) {
|
|
135
155
|
// this function is added as convenience
|
|
136
156
|
return this.graphQl.query(query, variables, {
|
|
137
|
-
route: this.router.route.get(),
|
|
157
|
+
route: this.router.route.get() ?? undefined,
|
|
138
158
|
...opts,
|
|
139
159
|
});
|
|
140
160
|
}
|
package/dist/CrelteRequest.d.ts
CHANGED
|
@@ -3,13 +3,11 @@ 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
|
|
@@ -21,7 +19,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
21
19
|
* If you provide a route it must contain a site or you must
|
|
22
20
|
* provide one,
|
|
23
21
|
*/
|
|
24
|
-
static fromCrelte(inner: Crelte, req?: Route | Request): CrelteRequest;
|
|
22
|
+
static fromCrelte(inner: Crelte | CrelteRequest, req?: Route | Request): CrelteRequest;
|
|
25
23
|
/**
|
|
26
24
|
* Get the current request
|
|
27
25
|
* @deprecated
|
|
@@ -44,7 +42,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
44
42
|
* always return null. In that context you should use
|
|
45
43
|
* `.getGlobalAsync`
|
|
46
44
|
*/
|
|
47
|
-
getGlobal<T
|
|
45
|
+
getGlobal<T = any>(name: string): T | null;
|
|
48
46
|
/**
|
|
49
47
|
* Get a globalSet and wait until it is loaded
|
|
50
48
|
*
|
|
@@ -52,7 +50,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
52
50
|
* This is only useful in loadGlobalData in all other cases
|
|
53
51
|
* you can use `.getGlobal` which does return a Promise
|
|
54
52
|
*/
|
|
55
|
-
getGlobalAsync<T
|
|
53
|
+
getGlobalAsync<T = any>(name: string): Promise<T | null>;
|
|
56
54
|
/**
|
|
57
55
|
* Run a GraphQl Query
|
|
58
56
|
*
|
|
@@ -62,7 +60,5 @@ export default class CrelteRequest extends Crelte {
|
|
|
62
60
|
* graphql query
|
|
63
61
|
*/
|
|
64
62
|
query(query: GraphQlQuery, variables?: Record<string, unknown>, opts?: QueryOptions): Promise<unknown>;
|
|
65
|
-
/** @hidden */
|
|
66
|
-
_globalDataLoaded(): void;
|
|
67
63
|
}
|
|
68
64
|
//# 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;;;;;;;;;OASG;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,11 +5,9 @@ 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
|
|
@@ -22,8 +20,13 @@ export default class CrelteRequest extends Crelte {
|
|
|
22
20
|
* provide one,
|
|
23
21
|
*/
|
|
24
22
|
static fromCrelte(inner, req) {
|
|
23
|
+
if (inner instanceof CrelteRequest && !req)
|
|
24
|
+
return inner;
|
|
25
25
|
if (!req) {
|
|
26
|
-
req = inner.router.route.get();
|
|
26
|
+
req = inner.router.route.get() ?? undefined;
|
|
27
|
+
// this will only occur in the first loadData call
|
|
28
|
+
if (!req)
|
|
29
|
+
throw new Error('router does not contain a route');
|
|
27
30
|
}
|
|
28
31
|
return new CrelteRequest(inner, req instanceof Request ? req : Request.fromRoute(req));
|
|
29
32
|
}
|
|
@@ -32,6 +35,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
32
35
|
* @deprecated
|
|
33
36
|
*/
|
|
34
37
|
get route() {
|
|
38
|
+
console.warn('CrelteRequest.route is deprecated, use .req instead');
|
|
35
39
|
return this.req;
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
@@ -54,7 +58,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
54
58
|
* `.getGlobalAsync`
|
|
55
59
|
*/
|
|
56
60
|
getGlobal(name) {
|
|
57
|
-
return this.
|
|
61
|
+
return this.globals.get(name, this.site.id);
|
|
58
62
|
}
|
|
59
63
|
/**
|
|
60
64
|
* Get a globalSet and wait until it is loaded
|
|
@@ -64,13 +68,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
64
68
|
* you can use `.getGlobal` which does return a Promise
|
|
65
69
|
*/
|
|
66
70
|
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);
|
|
71
|
+
return this.globals.getAsync(name, this.site.id);
|
|
74
72
|
}
|
|
75
73
|
/**
|
|
76
74
|
* Run a GraphQl Query
|
|
@@ -87,8 +85,4 @@ export default class CrelteRequest extends Crelte {
|
|
|
87
85
|
...opts,
|
|
88
86
|
});
|
|
89
87
|
}
|
|
90
|
-
/** @hidden */
|
|
91
|
-
_globalDataLoaded() {
|
|
92
|
-
this.innerGlobals = this.globals._globalsBySite(this.site.id);
|
|
93
|
-
}
|
|
94
88
|
}
|
|
@@ -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
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type Route from './routing/Route.js';
|
|
2
|
+
import type Request from './routing/Request.js';
|
|
2
3
|
import type Router from './routing/Router.js';
|
|
3
4
|
import type SsrCache from './ssr/SsrCache.js';
|
|
4
5
|
import type Site from './routing/Site.js';
|
|
5
6
|
import type GraphQl from './graphql/GraphQl.js';
|
|
6
|
-
import Crelte, { type QueryOptions } from './Crelte.js';
|
|
7
|
+
import Crelte, { type QueryOptions, type Config } from './Crelte.js';
|
|
7
8
|
import CrelteRequest from './CrelteRequest.js';
|
|
8
|
-
import type { Global
|
|
9
|
+
import type { Global } from './loadData/Globals.js';
|
|
9
10
|
import type { Cookies } from './cookies/index.js';
|
|
10
11
|
import type { Readable } from 'crelte-std/stores';
|
|
11
12
|
import { LoadData, LoadDataArray, LoadDataFn, LoadDataObj } from './loadData/index.js';
|
|
12
|
-
export { Crelte, CrelteRequest, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray, };
|
|
13
|
+
export { Crelte, CrelteRequest, type Config, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray, };
|
|
13
14
|
/**
|
|
14
15
|
* Get Crelte from the current context
|
|
15
16
|
*
|
|
@@ -83,7 +84,7 @@ export declare function getLoadingProgress(): Readable<number>;
|
|
|
83
84
|
* ## Note
|
|
84
85
|
* This only works during component initialisation.
|
|
85
86
|
*/
|
|
86
|
-
export declare function getGlobal<T
|
|
87
|
+
export declare function getGlobal<T = any>(name: string): Global<T> | null;
|
|
87
88
|
/**
|
|
88
89
|
* returns the cookies instance
|
|
89
90
|
*
|
|
@@ -91,6 +92,16 @@ export declare function getGlobal<T extends GlobalData>(name: string): Global<T>
|
|
|
91
92
|
* This only works during component initialisation.
|
|
92
93
|
*/
|
|
93
94
|
export declare function getCookies(): Cookies;
|
|
95
|
+
/**
|
|
96
|
+
* A function to make sure you have a CrelteRequest
|
|
97
|
+
*/
|
|
98
|
+
export declare function toCrelteRequest(crelte: Crelte | CrelteRequest, req?: Route | Request): CrelteRequest;
|
|
99
|
+
/**
|
|
100
|
+
* Listen for route changes
|
|
101
|
+
*
|
|
102
|
+
* ## Note
|
|
103
|
+
* This only works during component initialisation.
|
|
104
|
+
*/
|
|
94
105
|
export declare function onRoute(fn: (route: Route, crelte: Crelte) => void): void;
|
|
95
106
|
/**
|
|
96
107
|
* 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,OAAO,MAAM,sBAAsB,CAAC;AAChD,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;;GAEG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,GACnB,aAAa,CAEf;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,18 @@ export function getGlobal(name) {
|
|
|
95
101
|
export function getCookies() {
|
|
96
102
|
return getCrelte().cookies;
|
|
97
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* A function to make sure you have a CrelteRequest
|
|
106
|
+
*/
|
|
107
|
+
export function toCrelteRequest(crelte, req) {
|
|
108
|
+
return CrelteRequest.fromCrelte(crelte, req);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Listen for route changes
|
|
112
|
+
*
|
|
113
|
+
* ## Note
|
|
114
|
+
* This only works during component initialisation.
|
|
115
|
+
*/
|
|
98
116
|
export function onRoute(fn) {
|
|
99
117
|
const crelte = getCrelte();
|
|
100
118
|
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"}
|
package/dist/init/server.js
CHANGED
|
@@ -25,7 +25,7 @@ import { gql } from '../graphql/GraphQl.js';
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
export async function main(data) {
|
|
28
|
-
const builder = new CrelteBuilder();
|
|
28
|
+
const builder = new CrelteBuilder(data.app.config ?? {});
|
|
29
29
|
// setup viteEnv
|
|
30
30
|
data.serverData.viteEnv.forEach((v, k) => {
|
|
31
31
|
builder.ssrCache.set(k, v);
|
|
@@ -33,10 +33,7 @@ export async function main(data) {
|
|
|
33
33
|
const endpoint = data.serverData.endpoint;
|
|
34
34
|
builder.ssrCache.set('ENDPOINT_URL', endpoint);
|
|
35
35
|
builder.ssrCache.set('CRAFT_WEB_URL', data.serverData.craftWeb);
|
|
36
|
-
builder.setupGraphQl(endpoint
|
|
37
|
-
debug: data.graphQlDebug,
|
|
38
|
-
debugTiming: data.debugTiming,
|
|
39
|
-
});
|
|
36
|
+
builder.setupGraphQl(endpoint);
|
|
40
37
|
const cookies = data.serverData.cookies ?? '';
|
|
41
38
|
builder.setupCookies(cookies);
|
|
42
39
|
const csites = await loadSites(builder, data.serverData);
|