@weaverse/hydrogen 1.0.23 → 1.0.24
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 +14 -12
- package/dist/index.js +51 -52
- package/dist/index.mjs +50 -49
- package/package.json +5 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { Weaverse
|
|
1
|
+
import { Weaverse } from '@weaverse/core';
|
|
2
2
|
import { LoaderArgs } from '@remix-run/server-runtime';
|
|
3
3
|
|
|
4
|
-
type
|
|
5
|
-
weaverseHost?: string;
|
|
4
|
+
type WeaverseHydrogenConfigs = {
|
|
6
5
|
projectId: string;
|
|
7
|
-
|
|
6
|
+
weaverseHost: string;
|
|
7
|
+
components: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
8
10
|
};
|
|
9
|
-
|
|
11
|
+
|
|
10
12
|
declare let useStudio: (weaverseCore: Weaverse) => void;
|
|
11
13
|
|
|
12
|
-
declare function weaverseLoader({ request, context, params
|
|
14
|
+
declare function weaverseLoader({ request, context, params }: LoaderArgs, weaverseConfig: WeaverseHydrogenConfigs): Promise<any>;
|
|
13
15
|
|
|
14
|
-
declare let
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
declare let useWeaverseHydrogen: (weaverseHydrogenConfigs: WeaverseHydrogenConfigs, data: any) => Weaverse;
|
|
17
|
+
declare let WeaverseHydrogenRoot: ({ configs, data, }: {
|
|
18
|
+
configs: WeaverseHydrogenConfigs;
|
|
19
|
+
data: any;
|
|
20
|
+
}) => JSX.Element;
|
|
19
21
|
|
|
20
|
-
export {
|
|
22
|
+
export { WeaverseHydrogenRoot, useStudio, useWeaverseHydrogen, weaverseLoader };
|
package/dist/index.js
CHANGED
|
@@ -31,47 +31,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
|
|
34
|
-
createHydrogenRootContext: () => createHydrogenRootContext,
|
|
35
|
-
createWeaverseHydrogenContext: () => createWeaverseHydrogenContext,
|
|
36
|
-
fetchPageData: () => fetchPageData,
|
|
37
34
|
useStudio: () => useStudio,
|
|
35
|
+
useWeaverseHydrogen: () => useWeaverseHydrogen,
|
|
38
36
|
weaverseLoader: () => weaverseLoader
|
|
39
37
|
});
|
|
40
38
|
module.exports = __toCommonJS(src_exports);
|
|
41
39
|
|
|
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
40
|
// src/utils.ts
|
|
50
41
|
var import_core = require("@weaverse/core");
|
|
51
42
|
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
43
|
var useStudio = (weaverseCore) => {
|
|
73
44
|
(0, import_react.useEffect)(() => {
|
|
74
45
|
if (weaverseCore.isDesignMode && import_core.isIframe && !window.weaverseStudioInitialized) {
|
|
46
|
+
console.log("useStudio", weaverseCore);
|
|
75
47
|
window.weaverseStudioInitialized = true;
|
|
76
48
|
let host = weaverseCore.weaverseHost;
|
|
77
49
|
let version = weaverseCore.weaverseVersion || Date.now();
|
|
@@ -89,47 +61,74 @@ var useStudio = (weaverseCore) => {
|
|
|
89
61
|
|
|
90
62
|
// src/index.tsx
|
|
91
63
|
var import_react2 = __toESM(require("react"));
|
|
64
|
+
var import_react3 = require("@weaverse/react");
|
|
92
65
|
|
|
93
66
|
// src/weaverse-loader.ts
|
|
94
|
-
async function weaverseLoader({
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
67
|
+
async function weaverseLoader({ request, context, params }, weaverseConfig) {
|
|
68
|
+
let fetchBody = {
|
|
69
|
+
projectId: weaverseConfig.projectId,
|
|
70
|
+
url: request.url
|
|
71
|
+
};
|
|
72
|
+
let response = await fetch(
|
|
73
|
+
`${weaverseConfig.weaverseHost}/api/public/project`,
|
|
74
|
+
{
|
|
75
|
+
method: "POST",
|
|
76
|
+
headers: {
|
|
77
|
+
"Content-Type": "application/json"
|
|
78
|
+
},
|
|
79
|
+
body: JSON.stringify(fetchBody)
|
|
80
|
+
}
|
|
81
|
+
).then((res) => res.json());
|
|
99
82
|
return {
|
|
100
|
-
|
|
83
|
+
weaversePageData: response
|
|
101
84
|
};
|
|
102
85
|
}
|
|
103
86
|
|
|
104
87
|
// src/index.tsx
|
|
105
|
-
var createHydrogenRootContext = (configs,
|
|
106
|
-
let rootContext =
|
|
107
|
-
Object.keys(
|
|
108
|
-
rootContext.registerElement(
|
|
88
|
+
var createHydrogenRootContext = (configs, elements = {}) => {
|
|
89
|
+
let rootContext = (0, import_react3.createRootContext)(configs);
|
|
90
|
+
Object.keys(elements).forEach((key) => {
|
|
91
|
+
rootContext.registerElement(elements[key]);
|
|
109
92
|
});
|
|
110
93
|
return rootContext;
|
|
111
94
|
};
|
|
112
|
-
var
|
|
113
|
-
let
|
|
114
|
-
|
|
115
|
-
context.registerElement(elements_default[key]);
|
|
116
|
-
});
|
|
117
|
-
return context;
|
|
118
|
-
};
|
|
119
|
-
var WeaverseHydrogenRoot = () => {
|
|
95
|
+
var useWeaverseHydrogen = (weaverseHydrogenConfigs, data) => {
|
|
96
|
+
let weaversePageData = data?.weaverseData?.weaversePageData;
|
|
97
|
+
let { components, ...rest } = weaverseHydrogenConfigs;
|
|
120
98
|
let weaverse = createHydrogenRootContext({
|
|
99
|
+
...rest,
|
|
100
|
+
data: weaversePageData,
|
|
101
|
+
pageId: weaversePageData?.pageId,
|
|
121
102
|
isDesignMode: true,
|
|
122
103
|
platformType: "shopify-hydrogen"
|
|
123
104
|
});
|
|
105
|
+
Object.keys(components).forEach((key) => {
|
|
106
|
+
let component = components[key];
|
|
107
|
+
weaverse.registerElement({
|
|
108
|
+
type: components[key]?.schema?.type || key,
|
|
109
|
+
Component: component?.default,
|
|
110
|
+
schema: component?.schema,
|
|
111
|
+
defaultCss: component?.css,
|
|
112
|
+
permanentCss: component?.permanentCss
|
|
113
|
+
});
|
|
114
|
+
});
|
|
124
115
|
useStudio(weaverse);
|
|
125
|
-
return
|
|
116
|
+
return weaverse;
|
|
117
|
+
};
|
|
118
|
+
var WeaverseHydrogenRoot = ({
|
|
119
|
+
configs,
|
|
120
|
+
data
|
|
121
|
+
}) => {
|
|
122
|
+
let weaverse = useWeaverseHydrogen(configs, data);
|
|
123
|
+
if (!weaverse?.data) {
|
|
124
|
+
return /* @__PURE__ */ import_react2.default.createElement("div", null, "404");
|
|
125
|
+
}
|
|
126
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react3.WeaverseRoot, { context: weaverse });
|
|
126
127
|
};
|
|
127
128
|
// Annotate the CommonJS export names for ESM import in node:
|
|
128
129
|
0 && (module.exports = {
|
|
129
130
|
WeaverseHydrogenRoot,
|
|
130
|
-
createHydrogenRootContext,
|
|
131
|
-
createWeaverseHydrogenContext,
|
|
132
|
-
fetchPageData,
|
|
133
131
|
useStudio,
|
|
132
|
+
useWeaverseHydrogen,
|
|
134
133
|
weaverseLoader
|
|
135
134
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,36 +1,10 @@
|
|
|
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) {
|
|
7
|
+
console.log("useStudio", weaverseCore);
|
|
34
8
|
window.weaverseStudioInitialized = true;
|
|
35
9
|
let host = weaverseCore.weaverseHost;
|
|
36
10
|
let version = weaverseCore.weaverseVersion || Date.now();
|
|
@@ -48,46 +22,73 @@ var useStudio = (weaverseCore) => {
|
|
|
48
22
|
|
|
49
23
|
// src/index.tsx
|
|
50
24
|
import React from "react";
|
|
25
|
+
import { WeaverseRoot, createRootContext } from "@weaverse/react";
|
|
51
26
|
|
|
52
27
|
// src/weaverse-loader.ts
|
|
53
|
-
async function weaverseLoader({
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
28
|
+
async function weaverseLoader({ request, context, params }, weaverseConfig) {
|
|
29
|
+
let fetchBody = {
|
|
30
|
+
projectId: weaverseConfig.projectId,
|
|
31
|
+
url: request.url
|
|
32
|
+
};
|
|
33
|
+
let response = await fetch(
|
|
34
|
+
`${weaverseConfig.weaverseHost}/api/public/project`,
|
|
35
|
+
{
|
|
36
|
+
method: "POST",
|
|
37
|
+
headers: {
|
|
38
|
+
"Content-Type": "application/json"
|
|
39
|
+
},
|
|
40
|
+
body: JSON.stringify(fetchBody)
|
|
41
|
+
}
|
|
42
|
+
).then((res) => res.json());
|
|
58
43
|
return {
|
|
59
|
-
|
|
44
|
+
weaversePageData: response
|
|
60
45
|
};
|
|
61
46
|
}
|
|
62
47
|
|
|
63
48
|
// src/index.tsx
|
|
64
|
-
var createHydrogenRootContext = (configs,
|
|
65
|
-
let rootContext =
|
|
66
|
-
Object.keys(
|
|
67
|
-
rootContext.registerElement(
|
|
49
|
+
var createHydrogenRootContext = (configs, elements = {}) => {
|
|
50
|
+
let rootContext = createRootContext(configs);
|
|
51
|
+
Object.keys(elements).forEach((key) => {
|
|
52
|
+
rootContext.registerElement(elements[key]);
|
|
68
53
|
});
|
|
69
54
|
return rootContext;
|
|
70
55
|
};
|
|
71
|
-
var
|
|
72
|
-
let
|
|
73
|
-
|
|
74
|
-
context.registerElement(elements_default[key]);
|
|
75
|
-
});
|
|
76
|
-
return context;
|
|
77
|
-
};
|
|
78
|
-
var WeaverseHydrogenRoot = () => {
|
|
56
|
+
var useWeaverseHydrogen = (weaverseHydrogenConfigs, data) => {
|
|
57
|
+
let weaversePageData = data?.weaverseData?.weaversePageData;
|
|
58
|
+
let { components, ...rest } = weaverseHydrogenConfigs;
|
|
79
59
|
let weaverse = createHydrogenRootContext({
|
|
60
|
+
...rest,
|
|
61
|
+
data: weaversePageData,
|
|
62
|
+
pageId: weaversePageData?.pageId,
|
|
80
63
|
isDesignMode: true,
|
|
81
64
|
platformType: "shopify-hydrogen"
|
|
82
65
|
});
|
|
66
|
+
Object.keys(components).forEach((key) => {
|
|
67
|
+
let component = components[key];
|
|
68
|
+
weaverse.registerElement({
|
|
69
|
+
type: components[key]?.schema?.type || key,
|
|
70
|
+
Component: component?.default,
|
|
71
|
+
schema: component?.schema,
|
|
72
|
+
defaultCss: component?.css,
|
|
73
|
+
permanentCss: component?.permanentCss
|
|
74
|
+
});
|
|
75
|
+
});
|
|
83
76
|
useStudio(weaverse);
|
|
84
|
-
return
|
|
77
|
+
return weaverse;
|
|
78
|
+
};
|
|
79
|
+
var WeaverseHydrogenRoot = ({
|
|
80
|
+
configs,
|
|
81
|
+
data
|
|
82
|
+
}) => {
|
|
83
|
+
let weaverse = useWeaverseHydrogen(configs, data);
|
|
84
|
+
if (!weaverse?.data) {
|
|
85
|
+
return /* @__PURE__ */ React.createElement("div", null, "404");
|
|
86
|
+
}
|
|
87
|
+
return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
|
|
85
88
|
};
|
|
86
89
|
export {
|
|
87
90
|
WeaverseHydrogenRoot,
|
|
88
|
-
createHydrogenRootContext,
|
|
89
|
-
createWeaverseHydrogenContext,
|
|
90
|
-
fetchPageData,
|
|
91
91
|
useStudio,
|
|
92
|
+
useWeaverseHydrogen,
|
|
92
93
|
weaverseLoader
|
|
93
94
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.24",
|
|
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,8 @@
|
|
|
32
32
|
"name": "@weaverse/hydrogen",
|
|
33
33
|
"author": "Weaverse Team",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@weaverse/
|
|
35
|
+
"@weaverse/react": "1.0.24",
|
|
36
|
+
"@weaverse/core": "1.0.24",
|
|
36
37
|
"@shopify/hydrogen": "2023.1.6"
|
|
37
38
|
}
|
|
38
39
|
}
|