@weaverse/hydrogen 1.0.23 → 1.0.25
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/index.d.ts +46 -14
- package/dist/index.js +148 -57
- package/dist/index.mjs +148 -53
- package/package.json +9 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,52 @@
|
|
|
1
|
-
import { Weaverse
|
|
2
|
-
import { LoaderArgs } from '@remix-
|
|
1
|
+
import { Weaverse } from '@weaverse/core';
|
|
2
|
+
import { LoaderArgs } from '@shopify/remix-oxygen';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Declare local additions to `AppLoadContext` to include the session utilities we injected in `server.ts`.
|
|
6
|
+
*/
|
|
7
|
+
declare module '@shopify/remix-oxygen' {
|
|
8
|
+
interface AppLoadContext {
|
|
9
|
+
waitUntil: ExecutionContext['waitUntil'];
|
|
10
|
+
session: TODO;
|
|
11
|
+
storefront: TODO;
|
|
12
|
+
env: TODO;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
type WeaverseComponentsType = {
|
|
16
|
+
[key: string]: any;
|
|
8
17
|
};
|
|
9
|
-
|
|
18
|
+
type TODO = any;
|
|
19
|
+
|
|
10
20
|
declare let useStudio: (weaverseCore: Weaverse) => void;
|
|
11
21
|
|
|
12
|
-
|
|
22
|
+
type QueryKey = string | readonly unknown[];
|
|
23
|
+
declare function hashKey(queryKey: QueryKey): string;
|
|
24
|
+
declare let fetchWithServerCache: ({ url, options, storefront, waitUntil, }: {
|
|
25
|
+
url: string;
|
|
26
|
+
options: RequestInit | Request;
|
|
27
|
+
storefront: any;
|
|
28
|
+
waitUntil?: any;
|
|
29
|
+
}) => Promise<any>;
|
|
30
|
+
type WeaverseComponentLoaderArgs = LoaderArgs & {
|
|
31
|
+
data: any;
|
|
32
|
+
config: {
|
|
33
|
+
projectId: string;
|
|
34
|
+
weaverseHost: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
declare function weaverseLoader({ request, context: { env, storefront, waitUntil }, context, params, }: LoaderArgs, components: {
|
|
38
|
+
[key: string]: {
|
|
39
|
+
[key: string]: any;
|
|
40
|
+
loader?: (loaderArgs: WeaverseComponentLoaderArgs) => Promise<any>;
|
|
41
|
+
};
|
|
42
|
+
}): Promise<any>;
|
|
13
43
|
|
|
14
|
-
declare let
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
44
|
+
declare let WeaverseHydrogenRoot: ({ components, data, }: {
|
|
45
|
+
components: WeaverseComponentsType;
|
|
46
|
+
data: {
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
weaverseData: any;
|
|
49
|
+
};
|
|
50
|
+
}) => JSX.Element;
|
|
19
51
|
|
|
20
|
-
export {
|
|
52
|
+
export { WeaverseComponentLoaderArgs, WeaverseHydrogenRoot, fetchWithServerCache, hashKey, useStudio, weaverseLoader };
|
package/dist/index.js
CHANGED
|
@@ -31,44 +31,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
fetchPageData: () => fetchPageData,
|
|
34
|
+
fetchWithServerCache: () => fetchWithServerCache,
|
|
35
|
+
hashKey: () => hashKey,
|
|
37
36
|
useStudio: () => useStudio,
|
|
38
37
|
weaverseLoader: () => weaverseLoader
|
|
39
38
|
});
|
|
40
39
|
module.exports = __toCommonJS(src_exports);
|
|
41
40
|
|
|
42
|
-
// src/elements/index.ts
|
|
43
|
-
var elements = {};
|
|
44
|
-
var elements_default = elements;
|
|
45
|
-
|
|
46
|
-
// src/index.tsx
|
|
47
|
-
var import_core2 = require("@weaverse/core");
|
|
48
|
-
|
|
49
41
|
// src/utils.ts
|
|
50
42
|
var import_core = require("@weaverse/core");
|
|
51
43
|
var import_react = require("react");
|
|
52
|
-
var fetchPageData = async ({
|
|
53
|
-
weaverseHost = "https://studio.weaverse.io",
|
|
54
|
-
projectId,
|
|
55
|
-
url
|
|
56
|
-
}) => {
|
|
57
|
-
let handle = url.pathname;
|
|
58
|
-
let isDesignMode = url.searchParams.get("isDesignMode") === "true";
|
|
59
|
-
let data = await fetch(weaverseHost + "/api/public/project", {
|
|
60
|
-
method: "POST",
|
|
61
|
-
body: JSON.stringify({
|
|
62
|
-
projectId,
|
|
63
|
-
handle,
|
|
64
|
-
isDesignMode
|
|
65
|
-
})
|
|
66
|
-
}).then((res) => res.json()).catch((e) => {
|
|
67
|
-
console.error(e);
|
|
68
|
-
return {};
|
|
69
|
-
});
|
|
70
|
-
return { ...data, weaverseHost, isDesignMode };
|
|
71
|
-
};
|
|
72
44
|
var useStudio = (weaverseCore) => {
|
|
73
45
|
(0, import_react.useEffect)(() => {
|
|
74
46
|
if (weaverseCore.isDesignMode && import_core.isIframe && !window.weaverseStudioInitialized) {
|
|
@@ -88,48 +60,167 @@ var useStudio = (weaverseCore) => {
|
|
|
88
60
|
};
|
|
89
61
|
|
|
90
62
|
// src/index.tsx
|
|
91
|
-
var
|
|
63
|
+
var import_react3 = __toESM(require("react"));
|
|
64
|
+
var import_react4 = require("@weaverse/react");
|
|
65
|
+
|
|
66
|
+
// src/context.ts
|
|
67
|
+
var import_react2 = require("@weaverse/react");
|
|
68
|
+
var createWeaverseHydrogenContext = ({
|
|
69
|
+
weaverseData: { pageData, config } = {
|
|
70
|
+
pageData: {},
|
|
71
|
+
config: {}
|
|
72
|
+
}
|
|
73
|
+
}, components) => {
|
|
74
|
+
let weaverse = (0, import_react2.createRootContext)({
|
|
75
|
+
...config,
|
|
76
|
+
data: pageData,
|
|
77
|
+
pageId: pageData?.pageId,
|
|
78
|
+
isDesignMode: true,
|
|
79
|
+
platformType: "shopify-hydrogen"
|
|
80
|
+
});
|
|
81
|
+
Object.entries(components).forEach(([key, component]) => {
|
|
82
|
+
weaverse.registerElement({
|
|
83
|
+
type: component?.schema?.type || key,
|
|
84
|
+
Component: component?.default,
|
|
85
|
+
schema: component?.schema,
|
|
86
|
+
defaultCss: component?.css,
|
|
87
|
+
permanentCss: component?.permanentCss
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
return weaverse;
|
|
91
|
+
};
|
|
92
92
|
|
|
93
93
|
// src/weaverse-loader.ts
|
|
94
|
+
var import_hydrogen = require("@shopify/hydrogen");
|
|
95
|
+
function hashKey(queryKey) {
|
|
96
|
+
const rawKeys = Array.isArray(queryKey) ? queryKey : [queryKey];
|
|
97
|
+
let hash = "";
|
|
98
|
+
for (const key of rawKeys) {
|
|
99
|
+
if (key != null) {
|
|
100
|
+
if (typeof key === "object") {
|
|
101
|
+
if (!!key.body && typeof key.body === "string") {
|
|
102
|
+
hash += key.body;
|
|
103
|
+
} else {
|
|
104
|
+
hash += JSON.stringify(key);
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
hash += key;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return hash;
|
|
112
|
+
}
|
|
113
|
+
var fetchWithServerCache = async ({
|
|
114
|
+
url,
|
|
115
|
+
options = {},
|
|
116
|
+
storefront,
|
|
117
|
+
waitUntil
|
|
118
|
+
}) => {
|
|
119
|
+
const cacheUrl = new URL(url);
|
|
120
|
+
cacheUrl.pathname = "/cache" + cacheUrl.pathname + hashKey([options.body]);
|
|
121
|
+
const cacheKey = new Request(cacheUrl.toString());
|
|
122
|
+
let response = await storefront.cache.match(cacheKey);
|
|
123
|
+
if (!response) {
|
|
124
|
+
let cacheControl = (0, import_hydrogen.generateCacheControlHeader)({
|
|
125
|
+
...(0, import_hydrogen.CacheShort)()
|
|
126
|
+
});
|
|
127
|
+
console.log("fetchWithServerCache", cacheControl);
|
|
128
|
+
response = await fetch(url, {
|
|
129
|
+
...options,
|
|
130
|
+
headers: {
|
|
131
|
+
"cache-control": cacheControl,
|
|
132
|
+
...options.headers
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
waitUntil?.(storefront.cache.put(cacheKey, response.clone()));
|
|
136
|
+
}
|
|
137
|
+
return response;
|
|
138
|
+
};
|
|
94
139
|
async function weaverseLoader({
|
|
95
140
|
request,
|
|
141
|
+
context: { env, storefront, waitUntil },
|
|
96
142
|
context,
|
|
97
143
|
params
|
|
98
|
-
}) {
|
|
99
|
-
|
|
100
|
-
|
|
144
|
+
}, components) {
|
|
145
|
+
let projectId = env?.WEAVERSE_PROJECT_ID;
|
|
146
|
+
let weaverseHost = env?.WEAVERSE_HOST;
|
|
147
|
+
if (!projectId || !weaverseHost) {
|
|
148
|
+
console.error("WEAVERSE_PROJECT_ID or WEAVERSE_HOST is not set!");
|
|
149
|
+
return {};
|
|
150
|
+
}
|
|
151
|
+
let config = {
|
|
152
|
+
projectId,
|
|
153
|
+
weaverseHost
|
|
154
|
+
};
|
|
155
|
+
let fetchBody = {
|
|
156
|
+
projectId,
|
|
157
|
+
url: request.url
|
|
101
158
|
};
|
|
159
|
+
try {
|
|
160
|
+
let pageData = await fetchWithServerCache({
|
|
161
|
+
url: `${weaverseHost}/api/public/project`,
|
|
162
|
+
options: {
|
|
163
|
+
method: "POST",
|
|
164
|
+
headers: {
|
|
165
|
+
"Content-Type": "application/json"
|
|
166
|
+
},
|
|
167
|
+
body: JSON.stringify(fetchBody)
|
|
168
|
+
},
|
|
169
|
+
storefront,
|
|
170
|
+
waitUntil
|
|
171
|
+
}).then((r) => r.json()).catch((err) => {
|
|
172
|
+
console.error(err);
|
|
173
|
+
return {};
|
|
174
|
+
});
|
|
175
|
+
if (pageData?.items) {
|
|
176
|
+
let items = pageData.items;
|
|
177
|
+
pageData.items = await Promise.all(
|
|
178
|
+
items.map(async (item) => {
|
|
179
|
+
let loader = components[item.type]?.loader;
|
|
180
|
+
if (loader) {
|
|
181
|
+
return {
|
|
182
|
+
...item,
|
|
183
|
+
...await loader({
|
|
184
|
+
data: item,
|
|
185
|
+
context,
|
|
186
|
+
params,
|
|
187
|
+
request,
|
|
188
|
+
config
|
|
189
|
+
})
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
return item;
|
|
193
|
+
})
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
pageData,
|
|
198
|
+
config,
|
|
199
|
+
components: {}
|
|
200
|
+
};
|
|
201
|
+
} catch (err) {
|
|
202
|
+
console.error(err);
|
|
203
|
+
return {};
|
|
204
|
+
}
|
|
102
205
|
}
|
|
103
206
|
|
|
104
207
|
// src/index.tsx
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return rootContext;
|
|
111
|
-
};
|
|
112
|
-
var createWeaverseHydrogenContext = (configs) => {
|
|
113
|
-
let context = createHydrogenRootContext(configs);
|
|
114
|
-
Object.keys(elements_default).forEach((key) => {
|
|
115
|
-
context.registerElement(elements_default[key]);
|
|
116
|
-
});
|
|
117
|
-
return context;
|
|
118
|
-
};
|
|
119
|
-
var WeaverseHydrogenRoot = () => {
|
|
120
|
-
let weaverse = createHydrogenRootContext({
|
|
121
|
-
isDesignMode: true,
|
|
122
|
-
platformType: "shopify-hydrogen"
|
|
123
|
-
});
|
|
208
|
+
var WeaverseHydrogenRoot = ({
|
|
209
|
+
components,
|
|
210
|
+
data
|
|
211
|
+
}) => {
|
|
212
|
+
let weaverse = createWeaverseHydrogenContext(data, components);
|
|
124
213
|
useStudio(weaverse);
|
|
125
|
-
|
|
214
|
+
if (!weaverse?.data) {
|
|
215
|
+
return /* @__PURE__ */ import_react3.default.createElement("div", null, "404");
|
|
216
|
+
}
|
|
217
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react4.WeaverseRoot, { context: weaverse });
|
|
126
218
|
};
|
|
127
219
|
// Annotate the CommonJS export names for ESM import in node:
|
|
128
220
|
0 && (module.exports = {
|
|
129
221
|
WeaverseHydrogenRoot,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
fetchPageData,
|
|
222
|
+
fetchWithServerCache,
|
|
223
|
+
hashKey,
|
|
133
224
|
useStudio,
|
|
134
225
|
weaverseLoader
|
|
135
226
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,33 +1,6 @@
|
|
|
1
|
-
// src/elements/index.ts
|
|
2
|
-
var elements = {};
|
|
3
|
-
var elements_default = elements;
|
|
4
|
-
|
|
5
|
-
// src/index.tsx
|
|
6
|
-
import { Weaverse } from "@weaverse/core";
|
|
7
|
-
|
|
8
1
|
// src/utils.ts
|
|
9
2
|
import { isIframe, loadScript } from "@weaverse/core";
|
|
10
3
|
import { useEffect } from "react";
|
|
11
|
-
var fetchPageData = async ({
|
|
12
|
-
weaverseHost = "https://studio.weaverse.io",
|
|
13
|
-
projectId,
|
|
14
|
-
url
|
|
15
|
-
}) => {
|
|
16
|
-
let handle = url.pathname;
|
|
17
|
-
let isDesignMode = url.searchParams.get("isDesignMode") === "true";
|
|
18
|
-
let data = await fetch(weaverseHost + "/api/public/project", {
|
|
19
|
-
method: "POST",
|
|
20
|
-
body: JSON.stringify({
|
|
21
|
-
projectId,
|
|
22
|
-
handle,
|
|
23
|
-
isDesignMode
|
|
24
|
-
})
|
|
25
|
-
}).then((res) => res.json()).catch((e) => {
|
|
26
|
-
console.error(e);
|
|
27
|
-
return {};
|
|
28
|
-
});
|
|
29
|
-
return { ...data, weaverseHost, isDesignMode };
|
|
30
|
-
};
|
|
31
4
|
var useStudio = (weaverseCore) => {
|
|
32
5
|
useEffect(() => {
|
|
33
6
|
if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
|
|
@@ -48,46 +21,168 @@ var useStudio = (weaverseCore) => {
|
|
|
48
21
|
|
|
49
22
|
// src/index.tsx
|
|
50
23
|
import React from "react";
|
|
24
|
+
import { WeaverseRoot } from "@weaverse/react";
|
|
25
|
+
|
|
26
|
+
// src/context.ts
|
|
27
|
+
import { createRootContext } from "@weaverse/react";
|
|
28
|
+
var createWeaverseHydrogenContext = ({
|
|
29
|
+
weaverseData: { pageData, config } = {
|
|
30
|
+
pageData: {},
|
|
31
|
+
config: {}
|
|
32
|
+
}
|
|
33
|
+
}, components) => {
|
|
34
|
+
let weaverse = createRootContext({
|
|
35
|
+
...config,
|
|
36
|
+
data: pageData,
|
|
37
|
+
pageId: pageData?.pageId,
|
|
38
|
+
isDesignMode: true,
|
|
39
|
+
platformType: "shopify-hydrogen"
|
|
40
|
+
});
|
|
41
|
+
Object.entries(components).forEach(([key, component]) => {
|
|
42
|
+
weaverse.registerElement({
|
|
43
|
+
type: component?.schema?.type || key,
|
|
44
|
+
Component: component?.default,
|
|
45
|
+
schema: component?.schema,
|
|
46
|
+
defaultCss: component?.css,
|
|
47
|
+
permanentCss: component?.permanentCss
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
return weaverse;
|
|
51
|
+
};
|
|
51
52
|
|
|
52
53
|
// src/weaverse-loader.ts
|
|
54
|
+
import {
|
|
55
|
+
CacheShort,
|
|
56
|
+
generateCacheControlHeader
|
|
57
|
+
} from "@shopify/hydrogen";
|
|
58
|
+
function hashKey(queryKey) {
|
|
59
|
+
const rawKeys = Array.isArray(queryKey) ? queryKey : [queryKey];
|
|
60
|
+
let hash = "";
|
|
61
|
+
for (const key of rawKeys) {
|
|
62
|
+
if (key != null) {
|
|
63
|
+
if (typeof key === "object") {
|
|
64
|
+
if (!!key.body && typeof key.body === "string") {
|
|
65
|
+
hash += key.body;
|
|
66
|
+
} else {
|
|
67
|
+
hash += JSON.stringify(key);
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
hash += key;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return hash;
|
|
75
|
+
}
|
|
76
|
+
var fetchWithServerCache = async ({
|
|
77
|
+
url,
|
|
78
|
+
options = {},
|
|
79
|
+
storefront,
|
|
80
|
+
waitUntil
|
|
81
|
+
}) => {
|
|
82
|
+
const cacheUrl = new URL(url);
|
|
83
|
+
cacheUrl.pathname = "/cache" + cacheUrl.pathname + hashKey([options.body]);
|
|
84
|
+
const cacheKey = new Request(cacheUrl.toString());
|
|
85
|
+
let response = await storefront.cache.match(cacheKey);
|
|
86
|
+
if (!response) {
|
|
87
|
+
let cacheControl = generateCacheControlHeader({
|
|
88
|
+
...CacheShort()
|
|
89
|
+
});
|
|
90
|
+
console.log("fetchWithServerCache", cacheControl);
|
|
91
|
+
response = await fetch(url, {
|
|
92
|
+
...options,
|
|
93
|
+
headers: {
|
|
94
|
+
"cache-control": cacheControl,
|
|
95
|
+
...options.headers
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
waitUntil?.(storefront.cache.put(cacheKey, response.clone()));
|
|
99
|
+
}
|
|
100
|
+
return response;
|
|
101
|
+
};
|
|
53
102
|
async function weaverseLoader({
|
|
54
103
|
request,
|
|
104
|
+
context: { env, storefront, waitUntil },
|
|
55
105
|
context,
|
|
56
106
|
params
|
|
57
|
-
}) {
|
|
58
|
-
|
|
59
|
-
|
|
107
|
+
}, components) {
|
|
108
|
+
let projectId = env?.WEAVERSE_PROJECT_ID;
|
|
109
|
+
let weaverseHost = env?.WEAVERSE_HOST;
|
|
110
|
+
if (!projectId || !weaverseHost) {
|
|
111
|
+
console.error("WEAVERSE_PROJECT_ID or WEAVERSE_HOST is not set!");
|
|
112
|
+
return {};
|
|
113
|
+
}
|
|
114
|
+
let config = {
|
|
115
|
+
projectId,
|
|
116
|
+
weaverseHost
|
|
117
|
+
};
|
|
118
|
+
let fetchBody = {
|
|
119
|
+
projectId,
|
|
120
|
+
url: request.url
|
|
60
121
|
};
|
|
122
|
+
try {
|
|
123
|
+
let pageData = await fetchWithServerCache({
|
|
124
|
+
url: `${weaverseHost}/api/public/project`,
|
|
125
|
+
options: {
|
|
126
|
+
method: "POST",
|
|
127
|
+
headers: {
|
|
128
|
+
"Content-Type": "application/json"
|
|
129
|
+
},
|
|
130
|
+
body: JSON.stringify(fetchBody)
|
|
131
|
+
},
|
|
132
|
+
storefront,
|
|
133
|
+
waitUntil
|
|
134
|
+
}).then((r) => r.json()).catch((err) => {
|
|
135
|
+
console.error(err);
|
|
136
|
+
return {};
|
|
137
|
+
});
|
|
138
|
+
if (pageData?.items) {
|
|
139
|
+
let items = pageData.items;
|
|
140
|
+
pageData.items = await Promise.all(
|
|
141
|
+
items.map(async (item) => {
|
|
142
|
+
let loader = components[item.type]?.loader;
|
|
143
|
+
if (loader) {
|
|
144
|
+
return {
|
|
145
|
+
...item,
|
|
146
|
+
...await loader({
|
|
147
|
+
data: item,
|
|
148
|
+
context,
|
|
149
|
+
params,
|
|
150
|
+
request,
|
|
151
|
+
config
|
|
152
|
+
})
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
return item;
|
|
156
|
+
})
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
pageData,
|
|
161
|
+
config,
|
|
162
|
+
components: {}
|
|
163
|
+
};
|
|
164
|
+
} catch (err) {
|
|
165
|
+
console.error(err);
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
61
168
|
}
|
|
62
169
|
|
|
63
170
|
// src/index.tsx
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return rootContext;
|
|
70
|
-
};
|
|
71
|
-
var createWeaverseHydrogenContext = (configs) => {
|
|
72
|
-
let context = createHydrogenRootContext(configs);
|
|
73
|
-
Object.keys(elements_default).forEach((key) => {
|
|
74
|
-
context.registerElement(elements_default[key]);
|
|
75
|
-
});
|
|
76
|
-
return context;
|
|
77
|
-
};
|
|
78
|
-
var WeaverseHydrogenRoot = () => {
|
|
79
|
-
let weaverse = createHydrogenRootContext({
|
|
80
|
-
isDesignMode: true,
|
|
81
|
-
platformType: "shopify-hydrogen"
|
|
82
|
-
});
|
|
171
|
+
var WeaverseHydrogenRoot = ({
|
|
172
|
+
components,
|
|
173
|
+
data
|
|
174
|
+
}) => {
|
|
175
|
+
let weaverse = createWeaverseHydrogenContext(data, components);
|
|
83
176
|
useStudio(weaverse);
|
|
84
|
-
|
|
177
|
+
if (!weaverse?.data) {
|
|
178
|
+
return /* @__PURE__ */ React.createElement("div", null, "404");
|
|
179
|
+
}
|
|
180
|
+
return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
|
|
85
181
|
};
|
|
86
182
|
export {
|
|
87
183
|
WeaverseHydrogenRoot,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
fetchPageData,
|
|
184
|
+
fetchWithServerCache,
|
|
185
|
+
hashKey,
|
|
91
186
|
useStudio,
|
|
92
187
|
weaverseLoader
|
|
93
188
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.25",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"start": "npm run dev",
|
|
18
|
-
"dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external react
|
|
19
|
-
"build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external react
|
|
18
|
+
"dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external react",
|
|
19
|
+
"build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external react",
|
|
20
20
|
"clean": "rimraf dist",
|
|
21
21
|
"prepublish": "npm run build"
|
|
22
22
|
},
|
|
@@ -32,7 +32,11 @@
|
|
|
32
32
|
"name": "@weaverse/hydrogen",
|
|
33
33
|
"author": "Weaverse Team",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
35
|
+
"@shopify/hydrogen": "2023.4.0",
|
|
36
|
+
"@weaverse/core": "1.0.25",
|
|
37
|
+
"@weaverse/react": "1.0.25"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@shopify/remix-oxygen": "^1.0.5"
|
|
37
41
|
}
|
|
38
42
|
}
|