crelte 0.5.8 → 0.5.10
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/blocks/Blocks.d.ts +41 -4
- package/dist/blocks/Blocks.d.ts.map +1 -1
- package/dist/blocks/Blocks.js +47 -2
- package/dist/blocks/Blocks.svelte +2 -16
- package/dist/blocks/Blocks.svelte.d.ts +20 -37
- package/dist/blocks/Blocks.svelte.d.ts.map +1 -1
- package/dist/blocks/index.d.ts +2 -2
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +2 -2
- package/dist/cookies/ServerCookies.d.ts +1 -1
- package/dist/cookies/ServerCookies.js +1 -1
- package/dist/cookies/index.d.ts +1 -1
- package/dist/crelte.d.ts +21 -10
- package/dist/crelte.d.ts.map +1 -1
- package/dist/index.d.ts +19 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -13
- package/dist/init/client.d.ts +2 -2
- package/dist/init/client.d.ts.map +1 -1
- package/dist/init/client.js +3 -2
- package/dist/init/server.d.ts +7 -6
- package/dist/init/server.d.ts.map +1 -1
- package/dist/init/server.js +6 -6
- package/dist/loadData/Globals.d.ts +3 -3
- package/dist/loadData/Globals.js +3 -3
- package/dist/loadData/loadData.d.ts +8 -18
- package/dist/loadData/loadData.d.ts.map +1 -1
- package/dist/loadData/loadData.js +2 -2
- package/dist/node/index.d.ts +5 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +84 -35
- package/dist/plugins/Events.d.ts +4 -4
- package/dist/plugins/Plugins.d.ts +2 -2
- package/dist/plugins/index.d.ts +2 -3
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +2 -1
- package/dist/queries/Queries.d.ts +9 -0
- package/dist/queries/Queries.d.ts.map +1 -1
- package/dist/queries/Queries.js +29 -17
- package/dist/queries/QueryError.d.ts +2 -0
- package/dist/queries/QueryError.d.ts.map +1 -1
- package/dist/queries/QueryError.js +6 -1
- package/dist/queries/gql.d.ts +2 -2
- package/dist/queries/gql.js +2 -2
- package/dist/queries/index.d.ts +7 -5
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/vars.d.ts +7 -7
- package/dist/queries/vars.d.ts.map +1 -1
- package/dist/queries/vars.js +10 -8
- package/dist/routing/LoadRunner.d.ts +1 -1
- package/dist/routing/LoadRunner.js +1 -1
- package/dist/routing/index.d.ts +4 -4
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/route/BaseRoute.d.ts +25 -25
- package/dist/routing/route/BaseRoute.js +24 -24
- package/dist/routing/route/Request.d.ts +4 -4
- package/dist/routing/route/Request.js +4 -4
- package/dist/routing/route/Route.d.ts +2 -2
- package/dist/routing/route/Route.js +2 -2
- package/dist/routing/router/BaseRouter.d.ts +4 -4
- package/dist/routing/router/BaseRouter.js +3 -3
- package/dist/routing/router/ClientRouter.d.ts +1 -1
- package/dist/routing/router/ClientRouter.js +1 -1
- package/dist/routing/router/Router.d.ts +27 -25
- package/dist/routing/router/Router.d.ts.map +1 -1
- package/dist/routing/router/Router.js +24 -21
- package/dist/routing/router/ServerRouter.d.ts +1 -1
- package/dist/routing/router/ServerRouter.js +1 -1
- package/dist/server/CrelteServer.d.ts +5 -5
- package/dist/server/CrelteServer.d.ts.map +1 -1
- package/dist/server/CrelteServer.js +4 -4
- package/dist/server/Request.d.ts +7 -1
- package/dist/server/Request.d.ts.map +1 -1
- package/dist/server/Request.js +7 -1
- package/dist/server/ServerRouter.d.ts +1 -1
- package/dist/server/ServerRouter.d.ts.map +1 -1
- package/dist/server/index.d.ts +4 -4
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/shared.d.ts +7 -13
- package/dist/server/shared.d.ts.map +1 -1
- package/dist/server/shared.js +14 -16
- package/dist/ssr/SsrCache.d.ts +56 -4
- package/dist/ssr/SsrCache.d.ts.map +1 -1
- package/dist/ssr/SsrCache.js +94 -20
- package/dist/std/index.d.ts +13 -0
- package/dist/std/index.d.ts.map +1 -1
- package/dist/std/index.js +13 -0
- package/dist/std/rand/index.d.ts +34 -0
- package/dist/std/rand/index.d.ts.map +1 -0
- package/dist/std/rand/index.js +45 -0
- package/dist/std/rand/internal.d.ts +8 -0
- package/dist/std/rand/internal.d.ts.map +1 -0
- package/dist/std/rand/internal.js +15 -0
- package/dist/std/stores/Writable.d.ts +1 -1
- package/dist/std/stores/Writable.js +1 -1
- package/dist/translations/index.d.ts +28 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +31 -0
- package/dist/translations/loadTranslations.d.ts +23 -0
- package/dist/translations/loadTranslations.d.ts.map +1 -0
- package/dist/translations/loadTranslations.js +26 -0
- package/dist/translations/loader/GlobalLoader.d.ts +34 -0
- package/dist/translations/loader/GlobalLoader.d.ts.map +1 -0
- package/dist/translations/loader/GlobalLoader.js +45 -0
- package/dist/translations/loader/fileLoader/ClientFileLoader.d.ts +10 -0
- package/dist/translations/loader/fileLoader/ClientFileLoader.d.ts.map +1 -0
- package/dist/translations/loader/fileLoader/ClientFileLoader.js +24 -0
- package/dist/translations/loader/fileLoader/NodeFileLoader.d.ts +9 -0
- package/dist/translations/loader/fileLoader/NodeFileLoader.d.ts.map +1 -0
- package/dist/translations/loader/fileLoader/NodeFileLoader.js +21 -0
- package/dist/translations/loader/fileLoader/fileLoader.d.ts +5 -0
- package/dist/translations/loader/fileLoader/fileLoader.d.ts.map +1 -0
- package/dist/translations/loader/fileLoader/fileLoader.js +16 -0
- package/dist/translations/loader/index.d.ts +7 -0
- package/dist/translations/loader/index.d.ts.map +1 -0
- package/dist/translations/loader/index.js +1 -0
- package/dist/translations/translationsPlugin.d.ts +64 -0
- package/dist/translations/translationsPlugin.d.ts.map +1 -0
- package/dist/translations/translationsPlugin.js +110 -0
- package/dist/translations/utils.d.ts +8 -0
- package/dist/translations/utils.d.ts.map +1 -0
- package/dist/translations/utils.js +15 -0
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +30 -38
- package/package.json +9 -1
- package/src/blocks/Blocks.svelte +3 -78
- package/src/blocks/Blocks.ts +63 -6
- package/src/blocks/index.ts +2 -2
- package/src/cookies/ServerCookies.ts +1 -1
- package/src/cookies/index.ts +1 -1
- package/src/crelte.ts +21 -10
- package/src/index.ts +19 -14
- package/src/init/client.ts +3 -2
- package/src/init/server.ts +14 -8
- package/src/loadData/Globals.ts +3 -3
- package/src/loadData/loadData.ts +8 -18
- package/src/node/index.ts +100 -39
- package/src/plugins/Events.ts +4 -4
- package/src/plugins/Plugins.ts +2 -2
- package/src/plugins/index.ts +2 -3
- package/src/queries/Queries.ts +35 -18
- package/src/queries/QueryError.ts +10 -1
- package/src/queries/gql.ts +2 -2
- package/src/queries/index.ts +7 -4
- package/src/queries/vars.ts +12 -8
- package/src/routing/LoadRunner.ts +1 -1
- package/src/routing/index.ts +13 -3
- package/src/routing/route/BaseRoute.ts +25 -25
- package/src/routing/route/Request.ts +4 -4
- package/src/routing/route/Route.ts +2 -2
- package/src/routing/router/BaseRouter.ts +4 -4
- package/src/routing/router/ClientRouter.ts +1 -1
- package/src/routing/router/Router.ts +28 -25
- package/src/routing/router/ServerRouter.ts +1 -1
- package/src/server/CrelteServer.ts +5 -5
- package/src/server/Request.ts +7 -1
- package/src/server/ServerRouter.ts +1 -2
- package/src/server/index.ts +17 -3
- package/src/server/shared.ts +28 -33
- package/src/ssr/SsrCache.ts +104 -22
- package/src/std/index.ts +14 -0
- package/src/std/rand/index.ts +55 -0
- package/src/std/rand/internal.ts +17 -0
- package/src/std/stores/Writable.ts +1 -1
- package/src/translations/index.ts +56 -0
- package/src/translations/loadTranslations.ts +33 -0
- package/src/translations/loader/GlobalLoader.ts +62 -0
- package/src/translations/loader/fileLoader/ClientFileLoader.ts +40 -0
- package/src/translations/loader/fileLoader/NodeFileLoader.ts +32 -0
- package/src/translations/loader/fileLoader/fileLoader.ts +19 -0
- package/src/translations/loader/index.ts +8 -0
- package/src/translations/translationsPlugin.ts +145 -0
- package/src/translations/utils.ts +17 -0
- package/src/vite/index.ts +43 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,cAAc,CAAC;AACzC,OAAO,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,cAAc,CAAC;AACzC,OAAO,YAAY,EAAE,EACpB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,mBAAmB,EAAE,EAC3B,KAAK,0BAA0B,EAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,IAAI,EACJ,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,SAAS,GACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,aAAa,EACb,OAAO,EACP,aAAa,GACb,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -2,4 +2,4 @@ import ServerRequest from './Request.js';
|
|
|
2
2
|
import ServerRouter from './ServerRouter.js';
|
|
3
3
|
import CrelteServerRequest from './CrelteServer.js';
|
|
4
4
|
export { main, mainError, } from '../init/server.js';
|
|
5
|
-
export { CrelteServerRequest, ServerRouter, ServerRequest };
|
|
5
|
+
export { CrelteServerRequest, ServerRouter, ServerRequest, };
|
package/dist/server/shared.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Platform } from './platform.js';
|
|
2
|
+
import { SiteFromGraphQl } from '../routing/Site.js';
|
|
2
3
|
export type ServerOptions = {
|
|
3
4
|
ts?: boolean;
|
|
4
5
|
};
|
|
@@ -15,22 +16,14 @@ export type EnvData = {
|
|
|
15
16
|
craftWebUrl: string;
|
|
16
17
|
frontendUrl: string;
|
|
17
18
|
viteEnv: Map<string, string>;
|
|
18
|
-
sites: SiteFromGraphQl[];
|
|
19
|
-
};
|
|
20
|
-
export declare function initEnvData(os: Platform, cache?: SitesCache): Promise<EnvData>;
|
|
21
|
-
export type SiteFromGraphQl = {
|
|
22
|
-
id: number;
|
|
23
|
-
baseUrl: string;
|
|
24
|
-
language: string;
|
|
25
|
-
name: string | null;
|
|
26
|
-
handle: string;
|
|
27
|
-
primary: boolean;
|
|
28
19
|
};
|
|
20
|
+
export declare function initEnvData(os: Platform): Promise<EnvData>;
|
|
29
21
|
export type SitesCache = {
|
|
30
22
|
enabled: boolean;
|
|
31
23
|
readSitesCache?: () => Promise<any>;
|
|
32
24
|
writeSitesCache?: (data: any) => Promise<void>;
|
|
33
25
|
};
|
|
26
|
+
export declare function initSites(env: EnvData, cache?: SitesCache): Promise<SiteFromGraphQl[]>;
|
|
34
27
|
export type ModRenderOptions = {
|
|
35
28
|
ssrManifest?: Record<string, string[]>;
|
|
36
29
|
};
|
|
@@ -45,7 +38,7 @@ export type RenderRequest = {
|
|
|
45
38
|
sites: SiteFromGraphQl[];
|
|
46
39
|
headers: Headers;
|
|
47
40
|
};
|
|
48
|
-
export declare function modRender(env: EnvData, mod: any, template: string, req: Request, opts?: ModRenderOptions): Promise<Response>;
|
|
41
|
+
export declare function modRender(env: EnvData, sites: SiteFromGraphQl[], mod: any, template: string, req: Request, opts?: ModRenderOptions): Promise<Response>;
|
|
49
42
|
export type RenderErrorRequest = {
|
|
50
43
|
url: string;
|
|
51
44
|
htmlTemplate: string;
|
|
@@ -55,7 +48,8 @@ export type RenderErrorRequest = {
|
|
|
55
48
|
craftWeb: string;
|
|
56
49
|
frontend: string;
|
|
57
50
|
viteEnv: Map<string, string>;
|
|
58
|
-
sites: SiteFromGraphQl[];
|
|
59
51
|
};
|
|
60
|
-
export declare function modRenderError(env: EnvData, mod: any, thrownError: Error, template: string, req: Request, opts?: ModRenderOptions
|
|
52
|
+
export declare function modRenderError(env: EnvData, mod: any, thrownError: Error, template: string, req: Request, opts?: ModRenderOptions & {
|
|
53
|
+
debugError?: boolean;
|
|
54
|
+
}): Promise<Response>;
|
|
61
55
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/server/shared.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/server/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/server/shared.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Queries from '../queries/Queries.js';
|
|
2
2
|
import { SsrCache } from '../ssr/index.js';
|
|
3
3
|
import { gql } from '../queries/index.js';
|
|
4
|
-
|
|
4
|
+
import { isQueryError } from '../queries/QueryError.js';
|
|
5
|
+
export async function initEnvData(os) {
|
|
5
6
|
const envPath = '../craft/.env';
|
|
6
7
|
let env;
|
|
7
8
|
try {
|
|
@@ -22,10 +23,6 @@ export async function initEnvData(os, cache) {
|
|
|
22
23
|
throw new Error('FRONTEND_URL not set');
|
|
23
24
|
// parse all vite related env variables
|
|
24
25
|
const viteEnv = new Map(Array.from(env).filter(([key]) => key.startsWith('VITE_')));
|
|
25
|
-
const queries = Queries.new(endpointUrl, frontendUrl, new SsrCache(), {
|
|
26
|
-
bearerToken: endpointToken,
|
|
27
|
-
});
|
|
28
|
-
const sites = await loadSites(queries, cache);
|
|
29
26
|
return {
|
|
30
27
|
env,
|
|
31
28
|
endpointUrl,
|
|
@@ -33,9 +30,12 @@ export async function initEnvData(os, cache) {
|
|
|
33
30
|
craftWebUrl,
|
|
34
31
|
frontendUrl,
|
|
35
32
|
viteEnv,
|
|
36
|
-
sites,
|
|
37
33
|
};
|
|
38
34
|
}
|
|
35
|
+
export async function initSites(env, cache) {
|
|
36
|
+
const queries = Queries.new(env.endpointUrl, env.frontendUrl, new SsrCache(), { bearerToken: env.endpointToken });
|
|
37
|
+
return await loadSites(queries, cache);
|
|
38
|
+
}
|
|
39
39
|
// requires, GraphQl, SsrCache
|
|
40
40
|
async function loadSites(queries, cache) {
|
|
41
41
|
if ('CRAFT_SITES_CACHED' in globalThis) {
|
|
@@ -73,9 +73,7 @@ async function loadSites(queries, cache) {
|
|
|
73
73
|
}
|
|
74
74
|
return resp.crelteSites;
|
|
75
75
|
}
|
|
76
|
-
export async function modRender(env, mod, template, req, opts = {}) {
|
|
77
|
-
// const acceptLang = req.headers.get('accept-language') ?? null;
|
|
78
|
-
// const cookies = req.headers.get('cookie') ?? '';
|
|
76
|
+
export async function modRender(env, sites, mod, template, req, opts = {}) {
|
|
79
77
|
const { status, location, html, headers: nHeaders, } = await mod.render({
|
|
80
78
|
url: req.url,
|
|
81
79
|
htmlTemplate: template,
|
|
@@ -84,7 +82,7 @@ export async function modRender(env, mod, template, req, opts = {}) {
|
|
|
84
82
|
craftWeb: env.craftWebUrl,
|
|
85
83
|
frontend: env.frontendUrl,
|
|
86
84
|
viteEnv: env.viteEnv,
|
|
87
|
-
sites
|
|
85
|
+
sites,
|
|
88
86
|
headers: req.headers,
|
|
89
87
|
...opts,
|
|
90
88
|
});
|
|
@@ -102,10 +100,13 @@ export async function modRenderError(env, mod, thrownError, template, req, opts
|
|
|
102
100
|
status: 500,
|
|
103
101
|
message: thrownError.message,
|
|
104
102
|
};
|
|
105
|
-
if (
|
|
103
|
+
if (isQueryError(thrownError)) {
|
|
106
104
|
error.status = thrownError.status();
|
|
105
|
+
}
|
|
107
106
|
// todo is the process.env.NODE_ENV the correct check?
|
|
108
|
-
if (error.status !== 503 &&
|
|
107
|
+
if (error.status !== 503 &&
|
|
108
|
+
!opts.debugError &&
|
|
109
|
+
process.env.NODE_ENV === 'development') {
|
|
109
110
|
throw thrownError;
|
|
110
111
|
}
|
|
111
112
|
const { status, html } = await mod.renderError(error, {
|
|
@@ -117,14 +118,11 @@ export async function modRenderError(env, mod, thrownError, template, req, opts
|
|
|
117
118
|
craftWeb: env.craftWebUrl,
|
|
118
119
|
frontend: env.frontendUrl,
|
|
119
120
|
viteEnv: env.viteEnv,
|
|
120
|
-
sites: env.sites,
|
|
121
121
|
...opts,
|
|
122
122
|
});
|
|
123
123
|
return new Response(html, {
|
|
124
124
|
status,
|
|
125
|
-
headers: {
|
|
126
|
-
'Content-Type': 'text/html',
|
|
127
|
-
},
|
|
125
|
+
headers: { 'Content-Type': 'text/html' },
|
|
128
126
|
});
|
|
129
127
|
}
|
|
130
128
|
/**
|
package/dist/ssr/SsrCache.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates a key based on the json representation of the data
|
|
3
|
+
*
|
|
4
|
+
* If available hashes the data using SHA-1
|
|
5
|
+
*/
|
|
1
6
|
export declare function calcKey(data: any): Promise<string>;
|
|
2
7
|
/**
|
|
3
8
|
* A simple cache for server side rendering
|
|
@@ -9,9 +14,9 @@ export default class SsrCache {
|
|
|
9
14
|
private store;
|
|
10
15
|
constructor();
|
|
11
16
|
/**
|
|
12
|
-
*
|
|
17
|
+
* Check if a key exists in the cache
|
|
13
18
|
*/
|
|
14
|
-
|
|
19
|
+
has(key: string): boolean;
|
|
15
20
|
/**
|
|
16
21
|
* Get a value from the cache
|
|
17
22
|
*/
|
|
@@ -20,10 +25,57 @@ export default class SsrCache {
|
|
|
20
25
|
* Set a value in the cache
|
|
21
26
|
*/
|
|
22
27
|
set<T>(key: string, val: T): T;
|
|
28
|
+
/**
|
|
29
|
+
* check if the value is in the cache else calls the fn
|
|
30
|
+
*
|
|
31
|
+
* See also {@link getOrInsertLoaded}
|
|
32
|
+
*/
|
|
33
|
+
getOrInsertComputed<T>(key: string, fn: () => T): T;
|
|
34
|
+
/**
|
|
35
|
+
* check if the value is in the cache else calls the fn
|
|
36
|
+
*
|
|
37
|
+
* See also {@link getOrInsertComputed}
|
|
38
|
+
*
|
|
39
|
+
* @deprecated use {@link getOrInsertLoaded} instead
|
|
40
|
+
*/
|
|
41
|
+
load<T>(key: string, fn: () => Promise<T>): Promise<T>;
|
|
42
|
+
/**
|
|
43
|
+
* check if the value is in the cache else calls the fn
|
|
44
|
+
*
|
|
45
|
+
* See also {@link getOrInsertComputed}
|
|
46
|
+
*/
|
|
47
|
+
getOrInsertLoaded<T>(key: string, fn: () => Promise<T>): Promise<T>;
|
|
48
|
+
/**
|
|
49
|
+
* One-shot SSR handoff value.
|
|
50
|
+
*
|
|
51
|
+
* Intended use: call this once per request (per key) during SSR to generate
|
|
52
|
+
* a value that must match between server render and client hydration.
|
|
53
|
+
*
|
|
54
|
+
* On the server, the value is generated once per key and stored for hydration.
|
|
55
|
+
* Subsequent calls with the same key during SSR currently return the same value,
|
|
56
|
+
* but this behaviour is an implementation detail and may change in the future.
|
|
57
|
+
* Consumers should rely on calling this at most once per key during SSR.
|
|
58
|
+
*
|
|
59
|
+
* On the client, the stored value is returned exactly once and removed.
|
|
60
|
+
* Subsequent calls return a fresh value and are not cached.
|
|
61
|
+
*
|
|
62
|
+
* Warning: this function is designed to be called once per key during SSR.
|
|
63
|
+
* Calling it multiple times may lead to unexpected behaviour if the server-side
|
|
64
|
+
* implementation changes.
|
|
65
|
+
*
|
|
66
|
+
* See also {@link getOrInsertComputed}
|
|
67
|
+
*/
|
|
68
|
+
takeOnce<T>(key: string, fn: () => T): T;
|
|
69
|
+
/**
|
|
70
|
+
* Remove a value from the cache and return it
|
|
71
|
+
*/
|
|
72
|
+
remove<T>(key: string): T | null;
|
|
73
|
+
/** @hidden */
|
|
74
|
+
z_clear(): void;
|
|
23
75
|
/** @hidden */
|
|
24
|
-
|
|
76
|
+
z_importFromHead(): void;
|
|
25
77
|
private exportAsJson;
|
|
26
78
|
/** @hidden */
|
|
27
|
-
|
|
79
|
+
z_exportToHead(): string;
|
|
28
80
|
}
|
|
29
81
|
//# sourceMappingURL=SsrCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SsrCache.d.ts","sourceRoot":"","sources":["../../src/ssr/SsrCache.ts"],"names":[],"mappings":"AAAA,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"SsrCache.d.ts","sourceRoot":"","sources":["../../src/ssr/SsrCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBxD;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B,OAAO,CAAC,KAAK,CAAmB;;IAMhC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK9B;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAKnD;;;;;;OAMG;IACG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D;;;;OAIG;IACG,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKzE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAcxC;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAMhC,cAAc;IACd,OAAO;IAIP,cAAc;IACd,gBAAgB;IAOhB,OAAO,CAAC,YAAY;IAOpB,cAAc;IACd,cAAc,IAAI,MAAM;CAGxB"}
|
package/dist/ssr/SsrCache.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates a key based on the json representation of the data
|
|
3
|
+
*
|
|
4
|
+
* If available hashes the data using SHA-1
|
|
5
|
+
*/
|
|
1
6
|
export async function calcKey(data) {
|
|
2
7
|
const json = JSON.stringify(data);
|
|
3
8
|
// this should only happen in an unsecure context
|
|
@@ -25,44 +30,113 @@ export async function calcKey(data) {
|
|
|
25
30
|
export default class SsrCache {
|
|
26
31
|
store;
|
|
27
32
|
constructor() {
|
|
28
|
-
this.store =
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
if (typeof window !== 'undefined' && window.SSR_STORE) {
|
|
31
|
-
// @ts-ignore
|
|
32
|
-
this.store = window.SSR_STORE;
|
|
33
|
-
}
|
|
33
|
+
this.store = new Map();
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Check if a key exists in the cache
|
|
37
37
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return this.store[key];
|
|
41
|
-
const v = await fn();
|
|
42
|
-
this.set(key, v);
|
|
43
|
-
return v;
|
|
38
|
+
has(key) {
|
|
39
|
+
return this.store.has(key);
|
|
44
40
|
}
|
|
45
41
|
/**
|
|
46
42
|
* Get a value from the cache
|
|
47
43
|
*/
|
|
48
44
|
get(key) {
|
|
49
|
-
return this.store
|
|
45
|
+
return this.store.get(key) ?? null;
|
|
50
46
|
}
|
|
51
47
|
/**
|
|
52
48
|
* Set a value in the cache
|
|
53
49
|
*/
|
|
54
50
|
set(key, val) {
|
|
55
|
-
|
|
51
|
+
this.store.set(key, val);
|
|
52
|
+
return val;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* check if the value is in the cache else calls the fn
|
|
56
|
+
*
|
|
57
|
+
* See also {@link getOrInsertLoaded}
|
|
58
|
+
*/
|
|
59
|
+
getOrInsertComputed(key, fn) {
|
|
60
|
+
if (this.store.has(key))
|
|
61
|
+
return this.store.get(key);
|
|
62
|
+
return this.set(key, fn());
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* check if the value is in the cache else calls the fn
|
|
66
|
+
*
|
|
67
|
+
* See also {@link getOrInsertComputed}
|
|
68
|
+
*
|
|
69
|
+
* @deprecated use {@link getOrInsertLoaded} instead
|
|
70
|
+
*/
|
|
71
|
+
async load(key, fn) {
|
|
72
|
+
return this.getOrInsertLoaded(key, fn);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* check if the value is in the cache else calls the fn
|
|
76
|
+
*
|
|
77
|
+
* See also {@link getOrInsertComputed}
|
|
78
|
+
*/
|
|
79
|
+
async getOrInsertLoaded(key, fn) {
|
|
80
|
+
if (this.store.has(key))
|
|
81
|
+
return this.store.get(key);
|
|
82
|
+
return this.set(key, await fn());
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* One-shot SSR handoff value.
|
|
86
|
+
*
|
|
87
|
+
* Intended use: call this once per request (per key) during SSR to generate
|
|
88
|
+
* a value that must match between server render and client hydration.
|
|
89
|
+
*
|
|
90
|
+
* On the server, the value is generated once per key and stored for hydration.
|
|
91
|
+
* Subsequent calls with the same key during SSR currently return the same value,
|
|
92
|
+
* but this behaviour is an implementation detail and may change in the future.
|
|
93
|
+
* Consumers should rely on calling this at most once per key during SSR.
|
|
94
|
+
*
|
|
95
|
+
* On the client, the stored value is returned exactly once and removed.
|
|
96
|
+
* Subsequent calls return a fresh value and are not cached.
|
|
97
|
+
*
|
|
98
|
+
* Warning: this function is designed to be called once per key during SSR.
|
|
99
|
+
* Calling it multiple times may lead to unexpected behaviour if the server-side
|
|
100
|
+
* implementation changes.
|
|
101
|
+
*
|
|
102
|
+
* See also {@link getOrInsertComputed}
|
|
103
|
+
*/
|
|
104
|
+
takeOnce(key, fn) {
|
|
105
|
+
if (import.meta.env.SSR) {
|
|
106
|
+
if (this.store.has(key)) {
|
|
107
|
+
console.warn(`SsrCache.takeOnce called multiple times for key "${key}" during SSR.`);
|
|
108
|
+
return this.store.get(key);
|
|
109
|
+
}
|
|
110
|
+
return this.set(key, fn());
|
|
111
|
+
}
|
|
112
|
+
if (this.store.has(key))
|
|
113
|
+
return this.remove(key);
|
|
114
|
+
return fn();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove a value from the cache and return it
|
|
118
|
+
*/
|
|
119
|
+
remove(key) {
|
|
120
|
+
const val = this.get(key);
|
|
121
|
+
this.store.delete(key);
|
|
122
|
+
return val;
|
|
56
123
|
}
|
|
57
124
|
/** @hidden */
|
|
58
|
-
|
|
59
|
-
this.store
|
|
125
|
+
z_clear() {
|
|
126
|
+
this.store.clear();
|
|
127
|
+
}
|
|
128
|
+
/** @hidden */
|
|
129
|
+
z_importFromHead() {
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
this.store = new Map(window._SSR_STORE ?? []);
|
|
132
|
+
// @ts-ignore
|
|
133
|
+
delete window._SSR_STORE;
|
|
60
134
|
}
|
|
61
135
|
exportAsJson() {
|
|
62
|
-
return JSON.stringify(this.store).replace(/</g, '\\u003c');
|
|
136
|
+
return JSON.stringify(Array.from(this.store.entries())).replace(/</g, '\\u003c');
|
|
63
137
|
}
|
|
64
138
|
/** @hidden */
|
|
65
|
-
|
|
66
|
-
return `\n\t\t<script>window.
|
|
139
|
+
z_exportToHead() {
|
|
140
|
+
return `\n\t\t<script>window._SSR_STORE = ${this.exportAsJson()};</script>`;
|
|
67
141
|
}
|
|
68
142
|
}
|
package/dist/std/index.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Crelte Standard library
|
|
5
|
+
*
|
|
6
|
+
* Provides standard utility functions and types for Crelte applications.
|
|
7
|
+
*
|
|
8
|
+
* ### Modules:
|
|
9
|
+
* - {@link std/intl}
|
|
10
|
+
* - {@link std/stores}
|
|
11
|
+
* - {@link std/sync}
|
|
12
|
+
* - {@link std/rand}
|
|
13
|
+
*/
|
|
1
14
|
/**
|
|
2
15
|
* Delays for a specified amount of time.
|
|
3
16
|
*
|
package/dist/std/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/std/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC7B,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,CAAC;AAEb;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIjE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/std/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC7B,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,CAAC;AAEb;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIjE"}
|
package/dist/std/index.js
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Crelte Standard library
|
|
5
|
+
*
|
|
6
|
+
* Provides standard utility functions and types for Crelte applications.
|
|
7
|
+
*
|
|
8
|
+
* ### Modules:
|
|
9
|
+
* - {@link std/intl}
|
|
10
|
+
* - {@link std/stores}
|
|
11
|
+
* - {@link std/sync}
|
|
12
|
+
* - {@link std/rand}
|
|
13
|
+
*/
|
|
1
14
|
/**
|
|
2
15
|
* Delays for a specified amount of time.
|
|
3
16
|
*
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Crelte } from '../../crelte.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a random number between 0 (inclusive) and 1 (exclusive).
|
|
4
|
+
*
|
|
5
|
+
* In SSR mode, the same key will always return the same random number.
|
|
6
|
+
* In client mode, the first call will return the number generated during SSR.
|
|
7
|
+
*/
|
|
8
|
+
export declare function random(key: string, crelte?: Crelte): number;
|
|
9
|
+
/**
|
|
10
|
+
* Create a deterministic random number generator.
|
|
11
|
+
*
|
|
12
|
+
* Intended use: create this once during component initialization when a sequence
|
|
13
|
+
* of random values must be consistent between server-side rendering and client
|
|
14
|
+
* hydration.
|
|
15
|
+
*
|
|
16
|
+
* The generator is seeded during SSR using the provided key. During hydration,
|
|
17
|
+
* the same seed is reused so that the client produces the same sequence of random
|
|
18
|
+
* numbers as the server for the initial render.
|
|
19
|
+
*
|
|
20
|
+
* After hydration, the generator continues independently on the client.
|
|
21
|
+
*
|
|
22
|
+
* @returns A function that returns a pseudo-random number in the range
|
|
23
|
+
* [0, 1).
|
|
24
|
+
*
|
|
25
|
+
* #### Example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const rng = createRng('lucky-number');
|
|
28
|
+
*
|
|
29
|
+
* const val1 = rng(); // same on server and client
|
|
30
|
+
* const val2 = rng(); // same on server and client
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function createRng(key: string, crelte?: Crelte): () => number;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/std/rand/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAoB,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAoB,GAC1B,MAAM,MAAM,CAcd"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { getCrelte } from '../../index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a random number between 0 (inclusive) and 1 (exclusive).
|
|
4
|
+
*
|
|
5
|
+
* In SSR mode, the same key will always return the same random number.
|
|
6
|
+
* In client mode, the first call will return the number generated during SSR.
|
|
7
|
+
*/
|
|
8
|
+
export function random(key, crelte = getCrelte()) {
|
|
9
|
+
return crelte.ssrCache.takeOnce('_rand_' + key, () => Math.random());
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a deterministic random number generator.
|
|
13
|
+
*
|
|
14
|
+
* Intended use: create this once during component initialization when a sequence
|
|
15
|
+
* of random values must be consistent between server-side rendering and client
|
|
16
|
+
* hydration.
|
|
17
|
+
*
|
|
18
|
+
* The generator is seeded during SSR using the provided key. During hydration,
|
|
19
|
+
* the same seed is reused so that the client produces the same sequence of random
|
|
20
|
+
* numbers as the server for the initial render.
|
|
21
|
+
*
|
|
22
|
+
* After hydration, the generator continues independently on the client.
|
|
23
|
+
*
|
|
24
|
+
* @returns A function that returns a pseudo-random number in the range
|
|
25
|
+
* [0, 1).
|
|
26
|
+
*
|
|
27
|
+
* #### Example
|
|
28
|
+
* ```ts
|
|
29
|
+
* const rng = createRng('lucky-number');
|
|
30
|
+
*
|
|
31
|
+
* const val1 = rng(); // same on server and client
|
|
32
|
+
* const val2 = rng(); // same on server and client
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function createRng(key, crelte = getCrelte()) {
|
|
36
|
+
const seed = crelte.ssrCache.takeOnce('_rng_' + key, () => Math.random());
|
|
37
|
+
// park miller algorithm
|
|
38
|
+
const MOD = 2147483647;
|
|
39
|
+
const MUL = 16807;
|
|
40
|
+
let state = Math.floor(seed * (MOD - 1)) + 1;
|
|
41
|
+
return () => {
|
|
42
|
+
state = (state * MUL) % MOD;
|
|
43
|
+
return (state - 1) / (MOD - 1);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/std/rand/internal.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAU,GAAG,MAAM,CAMtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const ALPHABET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
|
2
|
+
const ALPHABET_LENGTH = ALPHABET.length;
|
|
3
|
+
/**
|
|
4
|
+
* Generates a random token of a specified length.
|
|
5
|
+
*
|
|
6
|
+
* @param length - The desired length of the token.
|
|
7
|
+
* @returns A random token.
|
|
8
|
+
*/
|
|
9
|
+
export function randomToken(length = 8) {
|
|
10
|
+
let s = '';
|
|
11
|
+
for (let i = 0; i < length; i++) {
|
|
12
|
+
s += ALPHABET[Math.floor(Math.random() * ALPHABET_LENGTH)];
|
|
13
|
+
}
|
|
14
|
+
return s;
|
|
15
|
+
}
|
|
@@ -20,7 +20,7 @@ export default class Writable<T> {
|
|
|
20
20
|
* The function get's called once with the current value and then when the
|
|
21
21
|
* values changes
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* #### Note
|
|
24
24
|
* This does not check for equality like svelte.
|
|
25
25
|
*
|
|
26
26
|
* @return a function which should be called to unsubscribe
|
|
@@ -23,7 +23,7 @@ export default class Writable {
|
|
|
23
23
|
* The function get's called once with the current value and then when the
|
|
24
24
|
* values changes
|
|
25
25
|
*
|
|
26
|
-
*
|
|
26
|
+
* #### Note
|
|
27
27
|
* This does not check for equality like svelte.
|
|
28
28
|
*
|
|
29
29
|
* @return a function which should be called to unsubscribe
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* ## Unstable
|
|
5
|
+
* The translations module is not yet stable. APIs may change without a major version bump.
|
|
6
|
+
*/
|
|
7
|
+
import { createFileLoader } from './loader/fileLoader/fileLoader.js';
|
|
8
|
+
import { createGlobalLoader } from './loader/GlobalLoader.js';
|
|
9
|
+
import { type TranslationsLoader, type LoaderCreator } from './loader/index.js';
|
|
10
|
+
import loadTranslations from './loadTranslations.js';
|
|
11
|
+
import { createTranslations, getTranslationsPlugin, type TranslateFunction, type TranslateStore, type Translations, TranslationsPlugin, type TranslationsPluginOptions } from './translationsPlugin.js';
|
|
12
|
+
/**
|
|
13
|
+
* Creates a translate store for the given namespace.
|
|
14
|
+
*
|
|
15
|
+
* #### Example
|
|
16
|
+
* ```svelte
|
|
17
|
+
* <script>
|
|
18
|
+
* import { getTranslations } from 'crelte/translations';
|
|
19
|
+
*
|
|
20
|
+
* const t = getTranslations();
|
|
21
|
+
* </script>
|
|
22
|
+
*
|
|
23
|
+
* <h1>{$t('welcome_message')}</h1>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare function getTranslations(namespace?: string): TranslateStore;
|
|
27
|
+
export { createTranslations, TranslationsPluginOptions, loadTranslations, getTranslations, getTranslationsPlugin, Translations, TranslationsPlugin, TranslationsLoader, LoaderCreator, TranslateStore, TranslateFunction, createFileLoader, createGlobalLoader, };
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACN,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,iBAAS,eAAe,CAAC,SAAS,GAAE,MAAiB,GAAG,cAAc,CAGrE;AAED,OAAO,EACN,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,iBAAiB,EAEjB,gBAAgB,EAChB,kBAAkB,GAClB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* ## Unstable
|
|
5
|
+
* The translations module is not yet stable. APIs may change without a major version bump.
|
|
6
|
+
*/
|
|
7
|
+
import { createFileLoader } from './loader/fileLoader/fileLoader.js';
|
|
8
|
+
import { createGlobalLoader } from './loader/GlobalLoader.js';
|
|
9
|
+
import loadTranslations from './loadTranslations.js';
|
|
10
|
+
import { createTranslations, getTranslationsPlugin, TranslationsPlugin, } from './translationsPlugin.js';
|
|
11
|
+
/**
|
|
12
|
+
* Creates a translate store for the given namespace.
|
|
13
|
+
*
|
|
14
|
+
* #### Example
|
|
15
|
+
* ```svelte
|
|
16
|
+
* <script>
|
|
17
|
+
* import { getTranslations } from 'crelte/translations';
|
|
18
|
+
*
|
|
19
|
+
* const t = getTranslations();
|
|
20
|
+
* </script>
|
|
21
|
+
*
|
|
22
|
+
* <h1>{$t('welcome_message')}</h1>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function getTranslations(namespace = 'common') {
|
|
26
|
+
const plugin = getTranslationsPlugin();
|
|
27
|
+
return plugin.z_createTranslateStore(namespace);
|
|
28
|
+
}
|
|
29
|
+
export { createTranslations, loadTranslations, getTranslations, getTranslationsPlugin, TranslationsPlugin,
|
|
30
|
+
// loaders
|
|
31
|
+
createFileLoader, createGlobalLoader, };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CrelteRequest } from '../crelte.js';
|
|
2
|
+
import { TranslateStore } from './translationsPlugin.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a translate store and loads the specified namespace.
|
|
5
|
+
*
|
|
6
|
+
* #### Example
|
|
7
|
+
* ```svelte
|
|
8
|
+
* <script module>
|
|
9
|
+
* import { loadTranslations } from 'crelte/translations';
|
|
10
|
+
* export const loadData = {
|
|
11
|
+
* t: cr => loadTranslations(cr, 'customNamespace')
|
|
12
|
+
* };
|
|
13
|
+
* </script>
|
|
14
|
+
*
|
|
15
|
+
* <script>
|
|
16
|
+
* let { t } = $props();
|
|
17
|
+
* </script>
|
|
18
|
+
*
|
|
19
|
+
* <h1>{$t('welcome_message')}</h1>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export default function loadTranslations(cr: CrelteRequest, namespace: string): Promise<TranslateStore>;
|
|
23
|
+
//# sourceMappingURL=loadTranslations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadTranslations.d.ts","sourceRoot":"","sources":["../../src/translations/loadTranslations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAyB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAA8B,gBAAgB,CAC7C,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAOzB"}
|