crelte 0.1.0 → 0.1.2
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 +89 -25
- package/dist/Crelte.d.ts.map +1 -1
- package/dist/Crelte.js +79 -38
- package/dist/CrelteRequest.d.ts +63 -0
- package/dist/CrelteRequest.d.ts.map +1 -0
- package/dist/CrelteRequest.js +94 -0
- package/dist/blocks/Blocks.d.ts +27 -3
- package/dist/blocks/Blocks.d.ts.map +1 -1
- package/dist/blocks/Blocks.js +8 -0
- package/dist/blocks/Blocks.svelte +1 -1
- package/dist/blocks/Blocks.svelte.d.ts +36 -4
- package/dist/blocks/Blocks.svelte.d.ts.map +1 -1
- package/dist/blocks/index.d.ts +6 -3
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +3 -2
- package/dist/cookies/ServerCookies.d.ts +1 -1
- package/dist/cookies/ServerCookies.d.ts.map +1 -1
- package/dist/cookies/index.d.ts +7 -0
- package/dist/cookies/index.d.ts.map +1 -1
- package/dist/graphql/GraphQl.d.ts +53 -14
- package/dist/graphql/GraphQl.d.ts.map +1 -1
- package/dist/graphql/GraphQl.js +44 -23
- package/dist/graphql/index.d.ts +1 -1
- package/dist/graphql/index.d.ts.map +1 -1
- package/dist/graphql/index.js +2 -2
- package/dist/index.d.ts +55 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -23
- package/dist/init/client.d.ts +43 -2
- package/dist/init/client.d.ts.map +1 -1
- package/dist/init/client.js +26 -6
- package/dist/init/server.d.ts +49 -2
- package/dist/init/server.d.ts.map +1 -1
- package/dist/init/server.js +56 -6
- package/dist/init/shared.d.ts +5 -4
- package/dist/init/shared.d.ts.map +1 -1
- package/dist/init/shared.js +3 -3
- package/dist/loadData/Globals.d.ts +41 -2
- package/dist/loadData/Globals.d.ts.map +1 -1
- package/dist/loadData/Globals.js +33 -5
- package/dist/loadData/index.d.ts +74 -11
- package/dist/loadData/index.d.ts.map +1 -1
- package/dist/loadData/index.js +5 -8
- package/dist/plugins/Events.d.ts +18 -5
- package/dist/plugins/Events.d.ts.map +1 -1
- package/dist/plugins/Events.js +3 -0
- package/dist/plugins/Plugins.d.ts +28 -2
- package/dist/plugins/Plugins.d.ts.map +1 -1
- package/dist/plugins/Plugins.js +8 -0
- package/dist/routing/History.d.ts +6 -3
- package/dist/routing/History.d.ts.map +1 -1
- package/dist/routing/History.js +7 -1
- package/dist/routing/InnerRouter.d.ts +10 -9
- package/dist/routing/InnerRouter.d.ts.map +1 -1
- package/dist/routing/InnerRouter.js +47 -35
- package/dist/routing/PageLoader.d.ts +5 -5
- package/dist/routing/PageLoader.d.ts.map +1 -1
- package/dist/routing/PageLoader.js +7 -7
- package/dist/routing/Request.d.ts +102 -0
- package/dist/routing/Request.d.ts.map +1 -0
- package/dist/routing/Request.js +128 -0
- package/dist/routing/Route.d.ts +73 -5
- package/dist/routing/Route.d.ts.map +1 -1
- package/dist/routing/Route.js +71 -6
- package/dist/routing/Router.d.ts +59 -52
- package/dist/routing/Router.d.ts.map +1 -1
- package/dist/routing/Router.js +95 -116
- package/dist/routing/Site.d.ts +1 -1
- package/dist/routing/Site.js +1 -1
- package/dist/routing/index.d.ts +4 -3
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +2 -1
- package/dist/ssr/SsrCache.d.ts +17 -0
- package/dist/ssr/SsrCache.d.ts.map +1 -1
- package/dist/ssr/SsrCache.js +17 -4
- package/dist/ssr/SsrComponents.d.ts +1 -0
- package/dist/ssr/SsrComponents.d.ts.map +1 -1
- package/dist/ssr/SsrComponents.js +1 -0
- package/package.json +6 -6
- package/src/Crelte.ts +124 -52
- package/src/CrelteRequest.ts +124 -0
- package/src/blocks/Blocks.svelte +35 -18
- package/src/blocks/Blocks.ts +38 -6
- package/src/blocks/index.ts +19 -10
- package/src/cookies/ServerCookies.ts +1 -1
- package/src/cookies/index.ts +7 -1
- package/src/graphql/GraphQl.ts +79 -27
- package/src/graphql/index.ts +7 -1
- package/src/index.ts +65 -29
- package/src/init/client.ts +55 -10
- package/src/init/server.ts +70 -10
- package/src/init/shared.ts +8 -7
- package/src/loadData/Globals.ts +43 -7
- package/src/loadData/index.ts +76 -13
- package/src/plugins/Events.ts +16 -5
- package/src/plugins/Plugins.ts +28 -2
- package/src/routing/History.ts +13 -4
- package/src/routing/InnerRouter.ts +55 -39
- package/src/routing/PageLoader.ts +10 -10
- package/src/routing/Request.ts +175 -0
- package/src/routing/Route.ts +73 -8
- package/src/routing/Router.ts +108 -162
- package/src/routing/Site.ts +1 -1
- package/src/routing/index.ts +12 -3
- package/src/ssr/SsrCache.ts +17 -4
- package/src/ssr/SsrComponents.ts +1 -0
- package/dist/CrelteBase.d.ts +0 -16
- package/dist/CrelteBase.d.ts.map +0 -1
- package/dist/CrelteBase.js +0 -1
- package/dist/CrelteRouted.d.ts +0 -50
- package/dist/CrelteRouted.d.ts.map +0 -1
- package/dist/CrelteRouted.js +0 -88
- package/src/CrelteBase.ts +0 -24
- package/src/CrelteRouted.ts +0 -128
package/dist/init/client.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CrelteBuilder } from '../Crelte.js';
|
|
2
|
+
import CrelteRequest from '../CrelteRequest.js';
|
|
2
3
|
import { loadFn, pluginsBeforeRender, setupPlugins } from './shared.js';
|
|
3
4
|
import { tick } from 'svelte';
|
|
4
5
|
const mainDataDefault = {
|
|
@@ -9,6 +10,25 @@ const mainDataDefault = {
|
|
|
9
10
|
graphQlDebug: false,
|
|
10
11
|
debugTiming: false,
|
|
11
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* The main function to start the client side rendering
|
|
15
|
+
*
|
|
16
|
+
* ## Example
|
|
17
|
+
* ```
|
|
18
|
+
* import * as app from './App.svelte';
|
|
19
|
+
* import * as errorPage from './Error.svelte';
|
|
20
|
+
* import entryQuery from './queries/entry.graphql';
|
|
21
|
+
* import globalQuery from './queries/global.graphql';
|
|
22
|
+
* import { main } from 'crelte/client';
|
|
23
|
+
*
|
|
24
|
+
* main({
|
|
25
|
+
* app,
|
|
26
|
+
* errorPage,
|
|
27
|
+
* entryQuery,
|
|
28
|
+
* globalQuery,
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
12
32
|
export function main(data) {
|
|
13
33
|
data = { ...mainDataDefault, ...data };
|
|
14
34
|
// rendering steps
|
|
@@ -29,7 +49,7 @@ export function main(data) {
|
|
|
29
49
|
debug: data.graphQlDebug,
|
|
30
50
|
debugTiming: data.debugTiming,
|
|
31
51
|
});
|
|
32
|
-
// on the client the cookies are always
|
|
52
|
+
// on the client the cookies are always coming from document.cookie
|
|
33
53
|
builder.setupCookies('');
|
|
34
54
|
const csites = builder.ssrCache.get('crelteSites');
|
|
35
55
|
builder.setupRouter(csites, {
|
|
@@ -51,8 +71,8 @@ export function main(data) {
|
|
|
51
71
|
// setup plugins
|
|
52
72
|
setupPlugins(crelte, data.app.plugins ?? []);
|
|
53
73
|
// setup load Data
|
|
54
|
-
crelte.router._internal.onLoad = (
|
|
55
|
-
const cr = crelte
|
|
74
|
+
crelte.router._internal.onLoad = (req, site, opts) => {
|
|
75
|
+
const cr = new CrelteRequest(crelte, req, site);
|
|
56
76
|
return loadFn(cr, data.app, data.entryQuery, data.globalQuery, opts);
|
|
57
77
|
};
|
|
58
78
|
// render Space
|
|
@@ -72,7 +92,7 @@ export function main(data) {
|
|
|
72
92
|
}
|
|
73
93
|
};
|
|
74
94
|
let firstLoad = true;
|
|
75
|
-
crelte.router._internal.onLoaded = async (success,
|
|
95
|
+
crelte.router._internal.onLoaded = async (success, req, site, readyForProps) => {
|
|
76
96
|
const isFirstLoad = firstLoad;
|
|
77
97
|
firstLoad = false;
|
|
78
98
|
if (!success) {
|
|
@@ -87,7 +107,7 @@ export function main(data) {
|
|
|
87
107
|
}
|
|
88
108
|
return handleLoadError(readyForProps());
|
|
89
109
|
}
|
|
90
|
-
const cr = crelte
|
|
110
|
+
const cr = new CrelteRequest(crelte, req, site);
|
|
91
111
|
const startTime = data.debugTiming ? Date.now() : null;
|
|
92
112
|
let render = async () => {
|
|
93
113
|
// we should trigger the route update here
|
|
@@ -98,7 +118,7 @@ export function main(data) {
|
|
|
98
118
|
if (startTime) {
|
|
99
119
|
console.log('dom update took ' + (Date.now() - startTime) + 'ms');
|
|
100
120
|
}
|
|
101
|
-
crelte.router._internal.domReady(
|
|
121
|
+
crelte.router._internal.domReady(cr.req);
|
|
102
122
|
};
|
|
103
123
|
// render with view Transition if enabled and not in hydration
|
|
104
124
|
if (data.viewTransition &&
|
package/dist/init/server.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GraphQlQuery } from '../graphql/GraphQl.js';
|
|
1
2
|
export type ServerData = {
|
|
2
3
|
url: string;
|
|
3
4
|
htmlTemplate: string;
|
|
@@ -8,14 +9,43 @@ export type ServerData = {
|
|
|
8
9
|
viteEnv: Map<string, string>;
|
|
9
10
|
cookies?: string;
|
|
10
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* The main function to start the server side rendering
|
|
14
|
+
*/
|
|
11
15
|
export type MainData = {
|
|
16
|
+
/** The App.svelte module */
|
|
12
17
|
app: any;
|
|
13
|
-
|
|
14
|
-
|
|
18
|
+
/** The entry query from queries/entry.graphql */
|
|
19
|
+
entryQuery: GraphQlQuery;
|
|
20
|
+
/** The global query from queries/global.graphql */
|
|
21
|
+
globalQuery?: GraphQlQuery;
|
|
22
|
+
/** Server data provided by crelte-node */
|
|
15
23
|
serverData: ServerData;
|
|
24
|
+
/** Enable graphql query debugging */
|
|
16
25
|
graphQlDebug?: boolean;
|
|
26
|
+
/** Enable request and render timing measurement */
|
|
17
27
|
debugTiming?: boolean;
|
|
18
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* The main function to start the server side rendering
|
|
31
|
+
*
|
|
32
|
+
* ## Example
|
|
33
|
+
* ```
|
|
34
|
+
* import * as app from './App.svelte';
|
|
35
|
+
* import entryQuery from './queries/entry.graphql';
|
|
36
|
+
* import globalQuery from './queries/global.graphql';
|
|
37
|
+
* import { main } from 'crelte/server';
|
|
38
|
+
*
|
|
39
|
+
* export function render(serverData) {
|
|
40
|
+
* return main({
|
|
41
|
+
* app,
|
|
42
|
+
* entryQuery,
|
|
43
|
+
* globalQuery,
|
|
44
|
+
* serverData,
|
|
45
|
+
* });
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
19
49
|
export declare function main(data: MainData): Promise<{
|
|
20
50
|
status: number;
|
|
21
51
|
location?: string;
|
|
@@ -31,6 +61,23 @@ export type MainErrorData = {
|
|
|
31
61
|
errorPage: any;
|
|
32
62
|
serverData: ServerData;
|
|
33
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* The main function to start the server side rendering
|
|
66
|
+
* if there was an error
|
|
67
|
+
*
|
|
68
|
+
* ## Example
|
|
69
|
+
* ```
|
|
70
|
+
* import * as errorPage from './Error.svelte';
|
|
71
|
+
*
|
|
72
|
+
* export function renderError(error, serverData) {
|
|
73
|
+
* return mainError({
|
|
74
|
+
* error,
|
|
75
|
+
* errorPage,
|
|
76
|
+
* serverData
|
|
77
|
+
* });
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
34
81
|
export declare function mainError(data: MainErrorData): Promise<{
|
|
35
82
|
status: number;
|
|
36
83
|
html?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/init/server.ts"],"names":[],"mappings":"AAOA,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;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;
|
|
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;CACjB,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;IAIvB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,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,CA4ED;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
|
@@ -2,6 +2,28 @@ import { CrelteBuilder } from '../Crelte.js';
|
|
|
2
2
|
import { loadFn, pluginsBeforeRender, setupPlugins } from './shared.js';
|
|
3
3
|
import SsrComponents from '../ssr/SsrComponents.js';
|
|
4
4
|
import SsrCache from '../ssr/SsrCache.js';
|
|
5
|
+
import CrelteRequest from '../CrelteRequest.js';
|
|
6
|
+
import { gql } from '../graphql/GraphQl.js';
|
|
7
|
+
/**
|
|
8
|
+
* The main function to start the server side rendering
|
|
9
|
+
*
|
|
10
|
+
* ## Example
|
|
11
|
+
* ```
|
|
12
|
+
* import * as app from './App.svelte';
|
|
13
|
+
* import entryQuery from './queries/entry.graphql';
|
|
14
|
+
* import globalQuery from './queries/global.graphql';
|
|
15
|
+
* import { main } from 'crelte/server';
|
|
16
|
+
*
|
|
17
|
+
* export function render(serverData) {
|
|
18
|
+
* return main({
|
|
19
|
+
* app,
|
|
20
|
+
* entryQuery,
|
|
21
|
+
* globalQuery,
|
|
22
|
+
* serverData,
|
|
23
|
+
* });
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
5
27
|
export async function main(data) {
|
|
6
28
|
const builder = new CrelteBuilder();
|
|
7
29
|
// setup viteEnv
|
|
@@ -24,23 +46,23 @@ export async function main(data) {
|
|
|
24
46
|
// setup plugins
|
|
25
47
|
setupPlugins(crelte, data.app.plugins ?? []);
|
|
26
48
|
// setup load Data
|
|
27
|
-
crelte.router._internal.onLoad = (
|
|
28
|
-
const cr = crelte
|
|
49
|
+
crelte.router._internal.onLoad = (req, site) => {
|
|
50
|
+
const cr = new CrelteRequest(crelte, req, site);
|
|
29
51
|
return loadFn(cr, data.app, data.entryQuery, data.globalQuery);
|
|
30
52
|
};
|
|
31
|
-
const { success, redirect,
|
|
53
|
+
const { success, redirect, req, site, props } = await crelte.router._internal.initServer(data.serverData.url, data.serverData.acceptLang);
|
|
32
54
|
if (!success)
|
|
33
55
|
throw props;
|
|
34
56
|
if (redirect) {
|
|
35
57
|
return {
|
|
36
58
|
status: 302,
|
|
37
|
-
location:
|
|
59
|
+
location: req.url.toString(),
|
|
38
60
|
};
|
|
39
61
|
}
|
|
40
62
|
const context = crelte._getContext();
|
|
41
63
|
const ssrComponents = new SsrComponents();
|
|
42
64
|
ssrComponents.addToContext(context);
|
|
43
|
-
pluginsBeforeRender(crelte
|
|
65
|
+
pluginsBeforeRender(new CrelteRequest(crelte, req, site));
|
|
44
66
|
crelte.globals._updateSiteId(site.id);
|
|
45
67
|
// eslint-disable-next-line prefer-const
|
|
46
68
|
let { html, head } = data.app.default.render(props, { context });
|
|
@@ -58,6 +80,23 @@ export async function main(data) {
|
|
|
58
80
|
setCookies: crelte.cookies._getSetCookiesHeaders(),
|
|
59
81
|
};
|
|
60
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* The main function to start the server side rendering
|
|
85
|
+
* if there was an error
|
|
86
|
+
*
|
|
87
|
+
* ## Example
|
|
88
|
+
* ```
|
|
89
|
+
* import * as errorPage from './Error.svelte';
|
|
90
|
+
*
|
|
91
|
+
* export function renderError(error, serverData) {
|
|
92
|
+
* return mainError({
|
|
93
|
+
* error,
|
|
94
|
+
* errorPage,
|
|
95
|
+
* serverData
|
|
96
|
+
* });
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
61
100
|
export async function mainError(data) {
|
|
62
101
|
const ssrCache = new SsrCache();
|
|
63
102
|
const context = new Map();
|
|
@@ -86,7 +125,18 @@ async function loadSites(builder) {
|
|
|
86
125
|
// @ts-ignore
|
|
87
126
|
return globalThis['CRAFT_SITES_CACHED'];
|
|
88
127
|
}
|
|
89
|
-
const resp = (await builder.graphQl.
|
|
128
|
+
const resp = (await builder.graphQl.query(gql `
|
|
129
|
+
query {
|
|
130
|
+
crelteSites {
|
|
131
|
+
id
|
|
132
|
+
baseUrl
|
|
133
|
+
language
|
|
134
|
+
name
|
|
135
|
+
handle
|
|
136
|
+
primary
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
`, {},
|
|
90
140
|
// don't cache since we cache ourself
|
|
91
141
|
{ caching: false }));
|
|
92
142
|
// @ts-ignore
|
package/dist/init/shared.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import CrelteRouted, { GraphQlQuery } from '../CrelteRouted.js';
|
|
2
1
|
import Crelte from '../Crelte.js';
|
|
2
|
+
import CrelteRequest from '../CrelteRequest.js';
|
|
3
|
+
import { GraphQlQuery } from '../graphql/GraphQl.js';
|
|
3
4
|
import { LoadData } from '../loadData/index.js';
|
|
4
5
|
import { PluginCreator } from '../plugins/Plugins.js';
|
|
5
6
|
import { LoadOptions } from '../routing/PageLoader.js';
|
|
@@ -10,11 +11,11 @@ interface App<D, E, T> {
|
|
|
10
11
|
}
|
|
11
12
|
interface TemplateModule<E, T> {
|
|
12
13
|
default: any;
|
|
13
|
-
loadData?(cr:
|
|
14
|
+
loadData?(cr: CrelteRequest, entry: E): Promise<T>;
|
|
14
15
|
}
|
|
15
16
|
type LazyTemplateModule<E, T> = (() => Promise<TemplateModule<E, T>>) | TemplateModule<E, T>;
|
|
16
17
|
export declare function setupPlugins(crelte: Crelte, plugins: PluginCreator[]): void;
|
|
17
|
-
export declare function pluginsBeforeRender(cr:
|
|
18
|
+
export declare function pluginsBeforeRender(cr: CrelteRequest): void;
|
|
18
19
|
/**
|
|
19
20
|
* Get the entry from the page
|
|
20
21
|
*
|
|
@@ -24,6 +25,6 @@ export declare function pluginsBeforeRender(cr: CrelteRouted): void;
|
|
|
24
25
|
* sectionHandle will be automatically set to product
|
|
25
26
|
*/
|
|
26
27
|
export declare function getEntry(page: any): any;
|
|
27
|
-
export declare function loadFn<D, E, T>(cr:
|
|
28
|
+
export declare function loadFn<D, E, T>(cr: CrelteRequest, app: App<D, E, T>, entryQuery: GraphQlQuery, globalQuery?: GraphQlQuery, loadOpts?: LoadOptions): Promise<any>;
|
|
28
29
|
export {};
|
|
29
30
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/init/shared.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/init/shared.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAG7B,aAAa,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACrD;AAED,UAAU,cAAc,CAAC,CAAC,EAAE,CAAC;IAE5B,OAAO,EAAE,GAAG,CAAC;IAEb,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IACzB,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACrC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAExB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAKpE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAYvC;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,EAAE,EAAE,aAAa,EACjB,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACjB,UAAU,EAAE,YAAY,EACxB,WAAW,CAAC,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,GAAG,CAAC,CAsGd"}
|
package/dist/init/shared.js
CHANGED
|
@@ -52,15 +52,15 @@ export async function loadFn(cr, app, entryQuery, globalQuery, loadOpts) {
|
|
|
52
52
|
})();
|
|
53
53
|
}
|
|
54
54
|
let pageProm = null;
|
|
55
|
-
if (cr.
|
|
56
|
-
let uri = decodeURI(cr.
|
|
55
|
+
if (cr.req.site) {
|
|
56
|
+
let uri = decodeURI(cr.req.uri);
|
|
57
57
|
if (uri.startsWith('/'))
|
|
58
58
|
uri = uri.substring(1);
|
|
59
59
|
if (uri === '' || uri === '/')
|
|
60
60
|
uri = '__home__';
|
|
61
61
|
pageProm = cr.query(entryQuery, {
|
|
62
62
|
uri,
|
|
63
|
-
siteId: cr.
|
|
63
|
+
siteId: cr.req.site.id,
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
const pluginsLoadGlobalData = cr.events.trigger('loadGlobalData', cr);
|
|
@@ -5,16 +5,44 @@ export default class Globals {
|
|
|
5
5
|
private loaded;
|
|
6
6
|
private prevSiteId;
|
|
7
7
|
constructor();
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* returns a store which contains a globalSet
|
|
10
|
+
*
|
|
11
|
+
* ## Note
|
|
12
|
+
* This only works in loadData, in loadGlobalData this will
|
|
13
|
+
* always return null. In that context you should use
|
|
14
|
+
* `.getGlobalAsync`
|
|
15
|
+
*/
|
|
16
|
+
get<T extends GlobalData>(name: string): Global<T> | null;
|
|
17
|
+
/**
|
|
18
|
+
* Get a store which contains a globalSet and wait until it is loaded
|
|
19
|
+
*
|
|
20
|
+
* ## Note
|
|
21
|
+
* This is only useful in loadGlobalData in all other cases
|
|
22
|
+
* you can use `.getGlobal` which does return a Promise
|
|
23
|
+
*/
|
|
24
|
+
getAsync<T extends GlobalData>(name: string): Promise<Global<T> | null> | Global<T> | null;
|
|
25
|
+
/** @hidden */
|
|
10
26
|
_wasLoaded(): boolean;
|
|
27
|
+
/** @hidden */
|
|
11
28
|
_setData(siteId: number, data: any): void;
|
|
29
|
+
/** @hidden */
|
|
12
30
|
_globalsBySite(siteId: number): Map<string, any>;
|
|
31
|
+
/** @hidden */
|
|
13
32
|
_updateSiteId(siteId: number): void;
|
|
14
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* A globalSet Data
|
|
36
|
+
*
|
|
37
|
+
* Each global query should contain the siteId
|
|
38
|
+
*/
|
|
15
39
|
export interface GlobalData {
|
|
16
40
|
siteId?: number;
|
|
41
|
+
[key: string]: any;
|
|
17
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* A globalSet store
|
|
45
|
+
*/
|
|
18
46
|
export declare class Global<T extends GlobalData> {
|
|
19
47
|
private inner;
|
|
20
48
|
private languages;
|
|
@@ -26,8 +54,19 @@ export declare class Global<T extends GlobalData> {
|
|
|
26
54
|
* @return a function which should be called to unsubscribe
|
|
27
55
|
*/
|
|
28
56
|
subscribe(fn: (val: T) => void): () => void;
|
|
57
|
+
/**
|
|
58
|
+
* The current value
|
|
59
|
+
*/
|
|
29
60
|
get(): T;
|
|
61
|
+
/**
|
|
62
|
+
* Get the value based on the siteId
|
|
63
|
+
*
|
|
64
|
+
* ## Note
|
|
65
|
+
* If you pass a siteId which comes from craft
|
|
66
|
+
* you will never receive null
|
|
67
|
+
*/
|
|
30
68
|
bySiteId(siteId: number): T | null;
|
|
69
|
+
/** @hidden */
|
|
31
70
|
_updateSiteId(siteId: number): void;
|
|
32
71
|
}
|
|
33
72
|
//# sourceMappingURL=Globals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Globals.d.ts","sourceRoot":"","sources":["../../../../src/loadData/Globals.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,OAAO;IAG3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAgB;;IASlC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Globals.d.ts","sourceRoot":"","sources":["../../../../src/loadData/Globals.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,OAAO;IAG3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAgB;;IASlC;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzD;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,SAAS,UAAU,EAC5B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAc/C,cAAc;IACd,UAAU,IAAI,OAAO;IAOrB,cAAc;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAgBlC,cAAc;IACd,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAUhD,cAAc;IACd,aAAa,CAAC,MAAM,EAAE,MAAM;CAM5B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC,SAAS,UAAU;IACvC,OAAO,CAAC,KAAK,CAAc;IAE3B,OAAO,CAAC,SAAS,CAAa;gBAElB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM;IAsBvD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAI3C;;OAEG;IACH,GAAG,IAAI,CAAC;IAIR;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAOlC,cAAc;IACd,aAAa,CAAC,MAAM,EAAE,MAAM;CAM5B"}
|
package/dist/loadData/Globals.js
CHANGED
|
@@ -19,11 +19,24 @@ export default class Globals {
|
|
|
19
19
|
this.loaded = false;
|
|
20
20
|
this.prevSiteId = null;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* returns a store which contains a globalSet
|
|
24
|
+
*
|
|
25
|
+
* ## Note
|
|
26
|
+
* This only works in loadData, in loadGlobalData this will
|
|
27
|
+
* always return null. In that context you should use
|
|
28
|
+
* `.getGlobalAsync`
|
|
29
|
+
*/
|
|
22
30
|
get(name) {
|
|
23
31
|
return this.entries.get(name) ?? null;
|
|
24
32
|
}
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Get a store which contains a globalSet and wait until it is loaded
|
|
35
|
+
*
|
|
36
|
+
* ## Note
|
|
37
|
+
* This is only useful in loadGlobalData in all other cases
|
|
38
|
+
* you can use `.getGlobal` which does return a Promise
|
|
39
|
+
*/
|
|
27
40
|
getAsync(name) {
|
|
28
41
|
if (this.loaded)
|
|
29
42
|
return this.get(name);
|
|
@@ -36,14 +49,14 @@ export default class Globals {
|
|
|
36
49
|
waiter.push(resolve);
|
|
37
50
|
});
|
|
38
51
|
}
|
|
39
|
-
|
|
52
|
+
/** @hidden */
|
|
40
53
|
_wasLoaded() {
|
|
41
54
|
return this.loaded;
|
|
42
55
|
}
|
|
43
|
-
// hidden
|
|
44
56
|
// data is the data from the global graphql
|
|
45
57
|
// so it contains some keys and data which should be parsed
|
|
46
58
|
// and created a store for each key
|
|
59
|
+
/** @hidden */
|
|
47
60
|
_setData(siteId, data) {
|
|
48
61
|
const wasLoaded = this.loaded;
|
|
49
62
|
this.loaded = true;
|
|
@@ -57,6 +70,7 @@ export default class Globals {
|
|
|
57
70
|
this.waiters.clear();
|
|
58
71
|
}
|
|
59
72
|
}
|
|
73
|
+
/** @hidden */
|
|
60
74
|
_globalsBySite(siteId) {
|
|
61
75
|
const map = new Map();
|
|
62
76
|
for (const [key, global] of this.entries) {
|
|
@@ -64,6 +78,7 @@ export default class Globals {
|
|
|
64
78
|
}
|
|
65
79
|
return map;
|
|
66
80
|
}
|
|
81
|
+
/** @hidden */
|
|
67
82
|
_updateSiteId(siteId) {
|
|
68
83
|
// todo we should only trigger
|
|
69
84
|
if (this.prevSiteId === siteId)
|
|
@@ -71,6 +86,9 @@ export default class Globals {
|
|
|
71
86
|
this.entries.forEach(global => global._updateSiteId(siteId));
|
|
72
87
|
}
|
|
73
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* A globalSet store
|
|
91
|
+
*/
|
|
74
92
|
export class Global {
|
|
75
93
|
inner;
|
|
76
94
|
/// if languages is null this means we always have the same data
|
|
@@ -101,15 +119,25 @@ export class Global {
|
|
|
101
119
|
subscribe(fn) {
|
|
102
120
|
return this.inner.subscribe(fn);
|
|
103
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* The current value
|
|
124
|
+
*/
|
|
104
125
|
get() {
|
|
105
126
|
return this.inner.get();
|
|
106
127
|
}
|
|
107
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Get the value based on the siteId
|
|
130
|
+
*
|
|
131
|
+
* ## Note
|
|
132
|
+
* If you pass a siteId which comes from craft
|
|
133
|
+
* you will never receive null
|
|
134
|
+
*/
|
|
108
135
|
bySiteId(siteId) {
|
|
109
136
|
if (this.languages)
|
|
110
137
|
return this.languages.find(d => d.siteId === siteId) ?? null;
|
|
111
138
|
return this.inner.get();
|
|
112
139
|
}
|
|
140
|
+
/** @hidden */
|
|
113
141
|
_updateSiteId(siteId) {
|
|
114
142
|
if (!this.languages)
|
|
115
143
|
return;
|
package/dist/loadData/index.d.ts
CHANGED
|
@@ -1,24 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*/
|
|
4
|
-
import type CrelteRouted from '../CrelteRouted.js';
|
|
1
|
+
import CrelteRequest from '../CrelteRequest.js';
|
|
5
2
|
import { type GraphQlQuery } from '../graphql/GraphQl.js';
|
|
6
3
|
import type Globals from './Globals.js';
|
|
7
4
|
import type { Global } from './Globals.js';
|
|
8
5
|
export type { Globals, Global };
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Load data function
|
|
8
|
+
*
|
|
9
|
+
* There are three main ways `loadData` can be defined:
|
|
10
|
+
*
|
|
11
|
+
* ## Object
|
|
12
|
+
* This is the most common way loadData will be used.
|
|
13
|
+
* Each property should be a loadData type, each one is called in parallel.
|
|
14
|
+
* And will be available to your component with the same name.
|
|
15
|
+
* ```
|
|
16
|
+
* export const loadData = {
|
|
17
|
+
*
|
|
18
|
+
* import entriesQuery from '@/queries/entries.graphql';
|
|
19
|
+
* import { loadData as headerLoadData } from '@/layout/header.svelte';
|
|
20
|
+
*
|
|
21
|
+
* export const loadData = {
|
|
22
|
+
* entries: entriesQuery,
|
|
23
|
+
* header: headerLoadData
|
|
24
|
+
* };
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ## GraphQl
|
|
28
|
+
* You can just export a graphql query as a loadData type.
|
|
29
|
+
* This will export all queries from the graphql file as properties.
|
|
30
|
+
* ```
|
|
31
|
+
* import blogsQuery from '@/queries/blogs.graphql';
|
|
32
|
+
*
|
|
33
|
+
* export const loadData = blogsQuery;
|
|
34
|
+
*
|
|
35
|
+
* // or another option
|
|
36
|
+
* import { gql } from '@craft-svelte/core/graphql';
|
|
37
|
+
*
|
|
38
|
+
* export const loadData = gql`query {
|
|
39
|
+
* blogs: entries(section: "blogs") {
|
|
40
|
+
* title
|
|
41
|
+
* url
|
|
42
|
+
* }
|
|
43
|
+
* }`;
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* ## Function
|
|
47
|
+
* Using a function gives you the most flexibility but also is the
|
|
48
|
+
* most cumbersome.
|
|
49
|
+
*
|
|
50
|
+
* ```
|
|
51
|
+
* import articlesQuery from '@/queries/articles.graphql';
|
|
52
|
+
*
|
|
53
|
+
* export async function loadData(cr, entry) {
|
|
54
|
+
* return await cr.query(articlesQuery, {
|
|
55
|
+
* category: entry.category
|
|
56
|
+
* });
|
|
57
|
+
* }
|
|
58
|
+
*
|
|
59
|
+
* // or
|
|
60
|
+
* export const loadData = (cr, entry) => cr.query(articlesQuery, {
|
|
61
|
+
* category: entry.category
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* // or if you're in the context of an object
|
|
65
|
+
* export const loadData = {
|
|
66
|
+
* articles: (cr, entry) => cr.query(articlesQuery, {
|
|
67
|
+
* category: entry.category
|
|
68
|
+
* })
|
|
69
|
+
* }
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export type LoadData<T> = ((cr: CrelteRequest, ...args: any[]) => Promise<T>) | GraphQlQuery | T;
|
|
73
|
+
export declare function callLoadData(ld: LoadData<unknown>, cr: CrelteRequest, ...args: any[]): Promise<unknown>;
|
|
11
74
|
/**
|
|
12
75
|
* Spread the data of two loadData functions.
|
|
13
76
|
*
|
|
14
77
|
* ## Example
|
|
15
78
|
* ```
|
|
16
79
|
* export const loadData = mergeLoadData(
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* )
|
|
80
|
+
* {
|
|
81
|
+
* filter: (cr) => cr.route.search.get('filter'),
|
|
82
|
+
* },
|
|
83
|
+
* (cr) => cr.query(myQuery, { siteId: cr.site.id })
|
|
84
|
+
* );
|
|
22
85
|
* ```
|
|
23
86
|
*/
|
|
24
87
|
export declare function mergeLoadData(...lds: LoadData<object>[]): LoadData<object>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/loadData/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/loadData/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,MAAM,MAAM,QAAQ,CAAC,CAAC,IACnB,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GACnD,YAAY,GACZ,CAAC,CAAC;AAEL,wBAAsB,YAAY,CACjC,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,EACrB,EAAE,EAAE,aAAa,EACjB,GAAG,IAAI,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAQ1E"}
|
package/dist/loadData/index.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*/
|
|
4
1
|
import { isGraphQlQuery } from '../graphql/GraphQl.js';
|
|
5
2
|
export async function callLoadData(ld, cr, ...args) {
|
|
6
3
|
// either we have a function
|
|
@@ -24,11 +21,11 @@ export async function callLoadData(ld, cr, ...args) {
|
|
|
24
21
|
* ## Example
|
|
25
22
|
* ```
|
|
26
23
|
* export const loadData = mergeLoadData(
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* )
|
|
24
|
+
* {
|
|
25
|
+
* filter: (cr) => cr.route.search.get('filter'),
|
|
26
|
+
* },
|
|
27
|
+
* (cr) => cr.query(myQuery, { siteId: cr.site.id })
|
|
28
|
+
* );
|
|
32
29
|
* ```
|
|
33
30
|
*/
|
|
34
31
|
export function mergeLoadData(...lds) {
|
package/dist/plugins/Events.d.ts
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CrelteRequest } from '../index.js';
|
|
2
2
|
export default class Events {
|
|
3
3
|
inner: Map<string, Set<any>>;
|
|
4
4
|
constructor();
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Listens for an event.
|
|
7
|
+
*
|
|
8
|
+
* @returns a function to remove the listener
|
|
9
|
+
*/
|
|
10
|
+
on(ev: 'loadGlobalData', fn: (cr: CrelteRequest) => Promise<any>): () => void;
|
|
11
|
+
on(ev: 'loadData', fn: (cr: CrelteRequest, entry: any) => Promise<any>): () => void;
|
|
12
|
+
on(ev: 'beforeRender', fn: (cr: CrelteRequest) => void): () => void;
|
|
13
|
+
/**
|
|
14
|
+
* Remove a listener
|
|
15
|
+
*/
|
|
8
16
|
remove(ev: string, fn: any): void;
|
|
9
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Trigger an event
|
|
19
|
+
*/
|
|
20
|
+
trigger(ev: 'loadGlobalData', cr: CrelteRequest): Promise<any>[];
|
|
21
|
+
trigger(ev: 'loadData', cr: CrelteRequest, entry: any): Promise<any>[];
|
|
22
|
+
trigger(ev: 'beforeRender', cr: CrelteRequest): void[];
|
|
10
23
|
}
|
|
11
24
|
//# sourceMappingURL=Events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../../src/plugins/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../../src/plugins/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;IAM7B;;;;OAIG;IAEH,EAAE,CACD,EAAE,EAAE,gBAAgB,EACpB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,GACrC,MAAM,IAAI;IACb,EAAE,CACD,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,MAAM,IAAI;IACb,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAenE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG;IAO1B;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE;IAChE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE;IACtE,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI,EAAE;CAOtD"}
|