@weaverse/hydrogen 2.5.1 → 2.6.1
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 +1 -1
- package/dist/index.js +9 -4
- package/dist/index.mjs +9 -4
- package/package.json +11 -5
- package/readme.md +173 -0
package/LICENSE
CHANGED
package/dist/index.js
CHANGED
|
@@ -257,7 +257,10 @@ var import_hydrogen = require("@shopify/hydrogen");
|
|
|
257
257
|
|
|
258
258
|
// package.json
|
|
259
259
|
var package_default = {
|
|
260
|
-
|
|
260
|
+
name: "@weaverse/hydrogen",
|
|
261
|
+
author: "Weaverse Team",
|
|
262
|
+
description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
263
|
+
version: "2.6.1",
|
|
261
264
|
license: "MIT",
|
|
262
265
|
main: "dist/index.js",
|
|
263
266
|
typings: "dist/index.d.ts",
|
|
@@ -265,6 +268,10 @@ var package_default = {
|
|
|
265
268
|
publishConfig: {
|
|
266
269
|
access: "public"
|
|
267
270
|
},
|
|
271
|
+
repository: {
|
|
272
|
+
url: "git+https://github.com/Weaverse/weaverse.git",
|
|
273
|
+
directory: "packages/hydrogen"
|
|
274
|
+
},
|
|
268
275
|
files: [
|
|
269
276
|
"dist/*"
|
|
270
277
|
],
|
|
@@ -289,10 +296,8 @@ var package_default = {
|
|
|
289
296
|
semi: false,
|
|
290
297
|
singleQuote: true
|
|
291
298
|
},
|
|
292
|
-
name: "@weaverse/hydrogen",
|
|
293
|
-
author: "Weaverse Team",
|
|
294
299
|
dependencies: {
|
|
295
|
-
"@weaverse/react": "2.
|
|
300
|
+
"@weaverse/react": "2.6.1",
|
|
296
301
|
"react-error-boundary": "^4.0.11"
|
|
297
302
|
},
|
|
298
303
|
devDependencies: {
|
package/dist/index.mjs
CHANGED
|
@@ -223,7 +223,10 @@ import { createWithCache } from "@shopify/hydrogen";
|
|
|
223
223
|
|
|
224
224
|
// package.json
|
|
225
225
|
var package_default = {
|
|
226
|
-
|
|
226
|
+
name: "@weaverse/hydrogen",
|
|
227
|
+
author: "Weaverse Team",
|
|
228
|
+
description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
229
|
+
version: "2.6.1",
|
|
227
230
|
license: "MIT",
|
|
228
231
|
main: "dist/index.js",
|
|
229
232
|
typings: "dist/index.d.ts",
|
|
@@ -231,6 +234,10 @@ var package_default = {
|
|
|
231
234
|
publishConfig: {
|
|
232
235
|
access: "public"
|
|
233
236
|
},
|
|
237
|
+
repository: {
|
|
238
|
+
url: "git+https://github.com/Weaverse/weaverse.git",
|
|
239
|
+
directory: "packages/hydrogen"
|
|
240
|
+
},
|
|
234
241
|
files: [
|
|
235
242
|
"dist/*"
|
|
236
243
|
],
|
|
@@ -255,10 +262,8 @@ var package_default = {
|
|
|
255
262
|
semi: false,
|
|
256
263
|
singleQuote: true
|
|
257
264
|
},
|
|
258
|
-
name: "@weaverse/hydrogen",
|
|
259
|
-
author: "Weaverse Team",
|
|
260
265
|
dependencies: {
|
|
261
|
-
"@weaverse/react": "2.
|
|
266
|
+
"@weaverse/react": "2.6.1",
|
|
262
267
|
"react-error-boundary": "^4.0.11"
|
|
263
268
|
},
|
|
264
269
|
devDependencies: {
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"name": "@weaverse/hydrogen",
|
|
3
|
+
"author": "Weaverse Team",
|
|
4
|
+
"description": "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
5
|
+
"version": "2.6.1",
|
|
3
6
|
"license": "MIT",
|
|
4
7
|
"main": "dist/index.js",
|
|
5
8
|
"typings": "dist/index.d.ts",
|
|
6
9
|
"module": "dist/index.mjs",
|
|
7
10
|
"publishConfig": {
|
|
8
|
-
"access": "public"
|
|
11
|
+
"access": "public",
|
|
12
|
+
"@weaverse:registry": "https://registry.npmjs.org"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"url": "git+https://github.com/Weaverse/weaverse.git",
|
|
16
|
+
"directory": "packages/hydrogen"
|
|
9
17
|
},
|
|
10
18
|
"files": [
|
|
11
19
|
"dist/*"
|
|
@@ -31,10 +39,8 @@
|
|
|
31
39
|
"semi": false,
|
|
32
40
|
"singleQuote": true
|
|
33
41
|
},
|
|
34
|
-
"name": "@weaverse/hydrogen",
|
|
35
|
-
"author": "Weaverse Team",
|
|
36
42
|
"dependencies": {
|
|
37
|
-
"@weaverse/react": "2.
|
|
43
|
+
"@weaverse/react": "2.6.1",
|
|
38
44
|
"react-error-boundary": "^4.0.11"
|
|
39
45
|
},
|
|
40
46
|
"devDependencies": {
|
package/readme.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# @weaverse/hydrogen
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`@weaverse/hydrogen` is a crucial package within the Weaverse ecosystem, designed to facilitate the integration of
|
|
6
|
+
Shopify Hydrogen and Remix projects with the Weaverse CMS. It leverages `@weaverse/react` for rendering content and
|
|
7
|
+
provides a client for easy setup and data fetching from Weaverse CMS.
|
|
8
|
+
|
|
9
|
+
## Key Features
|
|
10
|
+
|
|
11
|
+
- **Weaverse Client Integration**: Enables seamless integration with Weaverse CMS, allowing for efficient data fetching
|
|
12
|
+
and rendering in Hydrogen/Remix projects.
|
|
13
|
+
- **Dynamic Data Fetching**: Fetch and render page data and global theme settings server-side, ensuring dynamic and
|
|
14
|
+
consistent content delivery.
|
|
15
|
+
- **Component Registration and Rendering**: Register React components with Weaverse and render them using
|
|
16
|
+
the `WeaverseHydrogenRoot` component.
|
|
17
|
+
- **Flexible Schema Definition**: Define behavior and interactivity of components within Weaverse Studio through
|
|
18
|
+
the `HydrogenComponentSchema`.
|
|
19
|
+
- **Customizable Input Settings**: Specify configurations for merchant-customizable component settings in Weaverse
|
|
20
|
+
Studio.
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install @weaverse/hydrogen
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Setup and Usage
|
|
29
|
+
|
|
30
|
+
### Weaverse Client Setup
|
|
31
|
+
|
|
32
|
+
Initialize the Weaverse Client to establish a connection between your Hydrogen project and Weaverse CMS:
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
// <root>/server.ts
|
|
36
|
+
|
|
37
|
+
import {createWeaverseClient} from '~/weaverse/create-weaverse.server';
|
|
38
|
+
|
|
39
|
+
const handleRequest = createRequestHandler({
|
|
40
|
+
// ...
|
|
41
|
+
getLoadContext: () => ({
|
|
42
|
+
// Injecting the Weaverse client into the loader context.
|
|
43
|
+
weaverse: createWeaverseClient({
|
|
44
|
+
storefront,
|
|
45
|
+
request,
|
|
46
|
+
env,
|
|
47
|
+
cache,
|
|
48
|
+
waitUntil,
|
|
49
|
+
}),
|
|
50
|
+
// ... more app context properties
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Data Fetching and Rendering
|
|
57
|
+
|
|
58
|
+
Use the Weaverse Client to fetch data such as page content and global theme settings:
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// <root>/app/routes/($locale)._index.tsx
|
|
62
|
+
|
|
63
|
+
import { json } from '@shopify/remix-oxygen';
|
|
64
|
+
import { type RouteLoaderArgs } from '@weaverse/hydrogen';
|
|
65
|
+
|
|
66
|
+
export async function loader({context}: RouteLoaderArgs) {
|
|
67
|
+
let {weaverse} = context;
|
|
68
|
+
|
|
69
|
+
return json({
|
|
70
|
+
// The key prop for a Weaverse page must always be `weaverseData`
|
|
71
|
+
weaverseData: await weaverse.loadPage(),
|
|
72
|
+
// Additional page data...
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Implement the `WeaverseHydrogenRoot` component to render the fetched content:
|
|
79
|
+
|
|
80
|
+
```jsx
|
|
81
|
+
// <root>/app/weaverse/index.tsx
|
|
82
|
+
|
|
83
|
+
import {WeaverseHydrogenRoot} from '@weaverse/hydrogen';
|
|
84
|
+
import {GenericError} from '~/components/GenericError';
|
|
85
|
+
import {components} from './components';
|
|
86
|
+
|
|
87
|
+
export function WeaverseContent() {
|
|
88
|
+
return (
|
|
89
|
+
<WeaverseHydrogenRoot
|
|
90
|
+
components={components}
|
|
91
|
+
errorComponent={GenericError}
|
|
92
|
+
/>
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
// <root>/app/routes/($locale)._index.tsx
|
|
98
|
+
|
|
99
|
+
import { WeaverseContent } from '~/weaverse';
|
|
100
|
+
|
|
101
|
+
export default function Homepage() {
|
|
102
|
+
return <WeaverseContent />;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Defining Component Schema
|
|
108
|
+
|
|
109
|
+
Define your component's schema to control its behavior and interactivity within Weaverse Studio:
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
import type { HydrogenComponentSchema } from '@weaverse/hydrogen';
|
|
113
|
+
|
|
114
|
+
export let schema: HydrogenComponentSchema = {
|
|
115
|
+
title: 'Product Card',
|
|
116
|
+
type: 'product-card',
|
|
117
|
+
inspector: [
|
|
118
|
+
{
|
|
119
|
+
group: 'Settings',
|
|
120
|
+
inputs: [] // Defining input settings
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
childTypes: ['image', 'product-title', 'price'],
|
|
124
|
+
presets: {
|
|
125
|
+
type: 'product-card',
|
|
126
|
+
children: [
|
|
127
|
+
{ type: 'image' },
|
|
128
|
+
{ type: 'product-title' },
|
|
129
|
+
{ type: 'price' },
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
limit: 3,
|
|
133
|
+
enabledOn: {
|
|
134
|
+
pages: ['INDEX', 'PRODUCT', 'ALL_PRODUCTS'],
|
|
135
|
+
groups: ['body'],
|
|
136
|
+
},
|
|
137
|
+
toolbar: ['general-settings', ['duplicate', 'delete']],
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Customizing Input Settings
|
|
143
|
+
|
|
144
|
+
Customize input settings for merchant-adjustable component configurations in Weaverse Studio:
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
{
|
|
148
|
+
type: "select",
|
|
149
|
+
label: "Image aspect ratio",
|
|
150
|
+
name: "imageAspectRatio",
|
|
151
|
+
configs: {
|
|
152
|
+
options: [
|
|
153
|
+
{ value: "auto", label: "Adapt to image" },
|
|
154
|
+
{ value: "1/1", label: "1/1" },
|
|
155
|
+
{ value: "3/4", label: "3/4" },
|
|
156
|
+
{ value: "4/3", label: "4/3" },
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
defaultValue: "auto"
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Contributing
|
|
165
|
+
|
|
166
|
+
Contributions to the `@weaverse/hydrogen` package are highly appreciated. Please refer to our contributing guidelines
|
|
167
|
+
for more details on how to contribute effectively.
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
This package is created by The Weaverse Team ([https://weaverse.io](https://weaverse.io)) and is licensed under the MIT
|
|
172
|
+
License.
|
|
173
|
+
|