crelte 0.1.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/LICENSE.md +41 -0
- package/dist/Crelte.d.ts +55 -0
- package/dist/Crelte.d.ts.map +1 -0
- package/dist/Crelte.js +106 -0
- package/dist/CrelteBase.d.ts +16 -0
- package/dist/CrelteBase.d.ts.map +1 -0
- package/dist/CrelteBase.js +1 -0
- package/dist/CrelteRouted.d.ts +50 -0
- package/dist/CrelteRouted.d.ts.map +1 -0
- package/dist/CrelteRouted.js +88 -0
- package/dist/blocks/Blocks.d.ts +35 -0
- package/dist/blocks/Blocks.d.ts.map +1 -0
- package/dist/blocks/Blocks.js +100 -0
- package/dist/blocks/Blocks.svelte +21 -0
- package/dist/blocks/Blocks.svelte.d.ts +24 -0
- package/dist/blocks/Blocks.svelte.d.ts.map +1 -0
- package/dist/blocks/index.d.ts +5 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +3 -0
- package/dist/cookies/ClientCookies.d.ts +9 -0
- package/dist/cookies/ClientCookies.d.ts.map +1 -0
- package/dist/cookies/ClientCookies.js +22 -0
- package/dist/cookies/ServerCookies.d.ts +13 -0
- package/dist/cookies/ServerCookies.d.ts.map +1 -0
- package/dist/cookies/ServerCookies.js +31 -0
- package/dist/cookies/index.d.ts +20 -0
- package/dist/cookies/index.d.ts.map +1 -0
- package/dist/cookies/index.js +1 -0
- package/dist/cookies/utils.d.ts +12 -0
- package/dist/cookies/utils.d.ts.map +1 -0
- package/dist/cookies/utils.js +32 -0
- package/dist/graphql/GraphQl.d.ts +60 -0
- package/dist/graphql/GraphQl.d.ts.map +1 -0
- package/dist/graphql/GraphQl.js +197 -0
- package/dist/graphql/gql.test.d.ts +2 -0
- package/dist/graphql/gql.test.d.ts.map +1 -0
- package/dist/graphql/gql.test.js +80 -0
- package/dist/graphql/index.d.ts +3 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +2 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/init/client.d.ts +13 -0
- package/dist/init/client.d.ts.map +1 -0
- package/dist/init/client.js +129 -0
- package/dist/init/server.d.ts +38 -0
- package/dist/init/server.d.ts.map +1 -0
- package/dist/init/server.js +95 -0
- package/dist/init/shared.d.ts +29 -0
- package/dist/init/shared.d.ts.map +1 -0
- package/dist/init/shared.js +154 -0
- package/dist/loadData/Globals.d.ts +33 -0
- package/dist/loadData/Globals.d.ts.map +1 -0
- package/dist/loadData/Globals.js +119 -0
- package/dist/loadData/index.d.ts +25 -0
- package/dist/loadData/index.d.ts.map +1 -0
- package/dist/loadData/index.js +39 -0
- package/dist/plugins/Events.d.ts +11 -0
- package/dist/plugins/Events.d.ts.map +1 -0
- package/dist/plugins/Events.js +29 -0
- package/dist/plugins/Plugins.d.ts +12 -0
- package/dist/plugins/Plugins.d.ts.map +1 -0
- package/dist/plugins/Plugins.js +12 -0
- package/dist/plugins/index.d.ts +5 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +2 -0
- package/dist/routing/History.d.ts +22 -0
- package/dist/routing/History.d.ts.map +1 -0
- package/dist/routing/History.js +36 -0
- package/dist/routing/InnerRouter.d.ts +111 -0
- package/dist/routing/InnerRouter.d.ts.map +1 -0
- package/dist/routing/InnerRouter.js +397 -0
- package/dist/routing/PageLoader.d.ts +37 -0
- package/dist/routing/PageLoader.d.ts.map +1 -0
- package/dist/routing/PageLoader.js +72 -0
- package/dist/routing/Route.d.ts +82 -0
- package/dist/routing/Route.d.ts.map +1 -0
- package/dist/routing/Route.js +134 -0
- package/dist/routing/Router.d.ts +162 -0
- package/dist/routing/Router.d.ts.map +1 -0
- package/dist/routing/Router.js +333 -0
- package/dist/routing/Site.d.ts +47 -0
- package/dist/routing/Site.d.ts.map +1 -0
- package/dist/routing/Site.js +48 -0
- package/dist/routing/index.d.ts +5 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +4 -0
- package/dist/ssr/SsrCache.d.ts +12 -0
- package/dist/ssr/SsrCache.d.ts.map +1 -0
- package/dist/ssr/SsrCache.js +50 -0
- package/dist/ssr/SsrComponents.d.ts +7 -0
- package/dist/ssr/SsrComponents.d.ts.map +1 -0
- package/dist/ssr/SsrComponents.js +30 -0
- package/dist/ssr/index.d.ts +4 -0
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/ssr/index.js +3 -0
- package/package.json +79 -0
- package/src/Crelte.ts +135 -0
- package/src/CrelteBase.ts +24 -0
- package/src/CrelteRouted.ts +128 -0
- package/src/blocks/Blocks.svelte +68 -0
- package/src/blocks/Blocks.ts +155 -0
- package/src/blocks/index.ts +14 -0
- package/src/cookies/ClientCookies.ts +30 -0
- package/src/cookies/ServerCookies.ts +42 -0
- package/src/cookies/index.ts +24 -0
- package/src/cookies/utils.ts +53 -0
- package/src/graphql/GraphQl.ts +281 -0
- package/src/graphql/gql.test.ts +123 -0
- package/src/graphql/index.ts +8 -0
- package/src/index.ts +109 -0
- package/src/init/client.ts +190 -0
- package/src/init/server.ts +177 -0
- package/src/init/shared.ts +221 -0
- package/src/loadData/Globals.ts +150 -0
- package/src/loadData/index.ts +67 -0
- package/src/plugins/Events.ts +50 -0
- package/src/plugins/Plugins.ts +23 -0
- package/src/plugins/index.ts +5 -0
- package/src/routing/History.ts +52 -0
- package/src/routing/InnerRouter.ts +469 -0
- package/src/routing/PageLoader.ts +112 -0
- package/src/routing/Route.ts +184 -0
- package/src/routing/Router.ts +476 -0
- package/src/routing/Site.ts +65 -0
- package/src/routing/index.ts +5 -0
- package/src/ssr/SsrCache.ts +61 -0
- package/src/ssr/SsrComponents.ts +34 -0
- package/src/ssr/index.ts +4 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export async function calcKey(data: any) {
|
|
2
|
+
// Convert the string data to an ArrayBuffer
|
|
3
|
+
const encoder = new TextEncoder();
|
|
4
|
+
const dataBuffer = encoder.encode(JSON.stringify(data));
|
|
5
|
+
|
|
6
|
+
// Use the Web Crypto API to hash the data with SHA-1
|
|
7
|
+
const hashBuffer = await crypto.subtle.digest('SHA-1', dataBuffer);
|
|
8
|
+
|
|
9
|
+
// Convert the ArrayBuffer to a hex string
|
|
10
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer)); // Create an array from the buffer
|
|
11
|
+
const hashHex = hashArray
|
|
12
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
13
|
+
.join(''); // Convert to hex string
|
|
14
|
+
|
|
15
|
+
return hashHex;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default class SsrCache {
|
|
19
|
+
private store: Record<string, any>;
|
|
20
|
+
|
|
21
|
+
constructor() {
|
|
22
|
+
this.store = {};
|
|
23
|
+
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
if (typeof window !== 'undefined' && window.SSR_STORE) {
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
this.store = window.SSR_STORE;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/// check if the value is in the cache else calls the fn
|
|
32
|
+
async load<T>(key: string, fn: () => Promise<T>) {
|
|
33
|
+
if (key in this.store) return this.store[key];
|
|
34
|
+
const v = await fn();
|
|
35
|
+
this.set(key, v);
|
|
36
|
+
return v;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/// returns null if the data does not exists
|
|
40
|
+
get<T>(key: string): T | null {
|
|
41
|
+
return this.store[key] ?? null;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
set<T>(key: string, val: T): T {
|
|
45
|
+
return (this.store[key] = val);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
clear() {
|
|
49
|
+
this.store = {};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// internal
|
|
53
|
+
private exportAsJson(): string {
|
|
54
|
+
return JSON.stringify(this.store).replace(/</g, '\\u003c');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// internal
|
|
58
|
+
_exportToHead(): string {
|
|
59
|
+
return `\n\t\t<script>window.SSR_STORE = ${this.exportAsJson()};</script>`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export default class SsrComponents {
|
|
2
|
+
private modules: Set<string>;
|
|
3
|
+
|
|
4
|
+
constructor() {
|
|
5
|
+
this.modules = new Set();
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/// ctx: Map
|
|
9
|
+
addToContext(ctx: Map<string, any>) {
|
|
10
|
+
ctx.set('modules', this.modules);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// Returns preload for js and link stylesheet for css
|
|
14
|
+
///
|
|
15
|
+
/// ssrManifest: {}, gets generated by client build
|
|
16
|
+
toHead(ssrManifest: Record<string, string[]>) {
|
|
17
|
+
const requirements = new Set<string>();
|
|
18
|
+
for (const mod of this.modules) {
|
|
19
|
+
const deps = ssrManifest[mod] ?? [];
|
|
20
|
+
deps.forEach(dep => requirements.add(dep));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let head = '';
|
|
24
|
+
for (const req of requirements) {
|
|
25
|
+
if (req.endsWith('.js')) {
|
|
26
|
+
head += `\n\t\t<link rel="preload" href="${req}" as="script">`;
|
|
27
|
+
} else if (req.endsWith('.css')) {
|
|
28
|
+
head += `\n\t\t<link rel="stylesheet" href="${req}">`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return head;
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/ssr/index.ts
ADDED