@web-widget/react 0.0.3 → 0.0.5
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/babel-plugin.d.ts +0 -20
- package/dist/babel-plugin.js +18 -11
- package/dist/react.client.d.ts +1 -1
- package/dist/react.client.js +17 -10
- package/dist/react.server.d.ts +1 -1
- package/dist/react.server.js +17 -10
- package/dist/{web-widget-ec342172.d.ts → web-widget-67fd682e.d.ts} +10 -6
- package/package.json +2 -2
package/dist/babel-plugin.d.ts
CHANGED
|
@@ -1,26 +1,6 @@
|
|
|
1
1
|
import { PluginPass } from '@babel/core';
|
|
2
2
|
import { Visitor } from '@babel/traverse';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* This adds web-widget source path to JSX tags.
|
|
6
|
-
*
|
|
7
|
-
* == JSX Literals ==
|
|
8
|
-
*
|
|
9
|
-
* import MyComponent from "../widgets/my-component.jsx";
|
|
10
|
-
* ...
|
|
11
|
-
* <MyComponent as="web-widget" title="My component" />
|
|
12
|
-
*
|
|
13
|
-
* becomes:
|
|
14
|
-
*
|
|
15
|
-
* import { defineWebWidget } from "@web-widget/react/web-widget";
|
|
16
|
-
* const MyComponent = defineWebWidget(() => import("../widgets/my-component.jsx"), "/routes/", {
|
|
17
|
-
* name: "MyComponent",
|
|
18
|
-
* recovering: true
|
|
19
|
-
* });
|
|
20
|
-
* ...
|
|
21
|
-
* <MyComponent title="My component" />
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
4
|
type Config = {
|
|
25
5
|
base: string;
|
|
26
6
|
root: string;
|
package/dist/babel-plugin.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
// src/babel-plugin.ts
|
|
2
|
+
import { dirname, join, relative } from "path";
|
|
3
|
+
|
|
4
|
+
// src/web-widget.tsx
|
|
5
|
+
import { Suspense, createElement, lazy } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
var ASSET_PLACEHOLDER = "asset://";
|
|
8
|
+
|
|
1
9
|
// src/babel-plugin.ts
|
|
2
10
|
import { addNamed } from "@babel/helper-module-imports";
|
|
3
11
|
import { declare } from "@babel/helper-plugin-utils";
|
|
4
12
|
import { types as t } from "@babel/core";
|
|
5
13
|
var TAGNAME = "web-widget";
|
|
6
|
-
function createWebWidgetVariableDeclaration(definer, component, source,
|
|
14
|
+
function createWebWidgetVariableDeclaration(definer, component, source, options) {
|
|
7
15
|
const getType = (object) => Object.prototype.toString.call(object).slice(8, -1).toLocaleLowerCase();
|
|
8
16
|
return t.variableDeclaration("const", [
|
|
9
17
|
t.variableDeclarator(
|
|
@@ -13,7 +21,6 @@ function createWebWidgetVariableDeclaration(definer, component, source, base, op
|
|
|
13
21
|
[],
|
|
14
22
|
t.callExpression(t.import(), [t.stringLiteral(source)])
|
|
15
23
|
),
|
|
16
|
-
t.stringLiteral(base),
|
|
17
24
|
t.objectExpression(
|
|
18
25
|
Object.keys(options).map((key) => {
|
|
19
26
|
const value = options[key];
|
|
@@ -95,13 +102,6 @@ var babel_plugin_default = declare((api) => {
|
|
|
95
102
|
container.openingElement.attributes = container.openingElement.attributes.filter(
|
|
96
103
|
(attr) => attr !== widgetAttr && attr !== loadingAttr
|
|
97
104
|
);
|
|
98
|
-
const options = {
|
|
99
|
-
name: container.openingElement.name.name,
|
|
100
|
-
recovering: config.isServer && mode !== "client"
|
|
101
|
-
};
|
|
102
|
-
if (loadingAttr && loadingAttr.value && t.isStringLiteral(loadingAttr.value)) {
|
|
103
|
-
options.loading = loadingAttr.value.value;
|
|
104
|
-
}
|
|
105
105
|
const importDeclaration = binding.path.parent;
|
|
106
106
|
const source = importDeclaration.source.value;
|
|
107
107
|
const importName = addNamed(
|
|
@@ -109,13 +109,20 @@ var babel_plugin_default = declare((api) => {
|
|
|
109
109
|
"defineWebWidget",
|
|
110
110
|
"@web-widget/react"
|
|
111
111
|
);
|
|
112
|
-
const
|
|
112
|
+
const options = {
|
|
113
|
+
// base: config.base,
|
|
114
|
+
import: ASSET_PLACEHOLDER + relative(config.root, join(dirname(state.filename), source)),
|
|
115
|
+
name: container.openingElement.name.name,
|
|
116
|
+
recovering: config.isServer && mode !== "client"
|
|
117
|
+
};
|
|
118
|
+
if (loadingAttr && loadingAttr.value && t.isStringLiteral(loadingAttr.value)) {
|
|
119
|
+
options.loading = loadingAttr.value.value;
|
|
120
|
+
}
|
|
113
121
|
binding.path.parentPath?.replaceWith(
|
|
114
122
|
createWebWidgetVariableDeclaration(
|
|
115
123
|
importName.name,
|
|
116
124
|
container.openingElement.name.name,
|
|
117
125
|
source,
|
|
118
|
-
base,
|
|
119
126
|
options
|
|
120
127
|
)
|
|
121
128
|
);
|
package/dist/react.client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
2
|
export * from '@web-widget/schema/client-helpers';
|
|
3
|
-
export { C as ClientOptions, D as DefineWebWidgetOptions, W as WebWidget, b as WebWidgetClient, a as WebWidgetClientProps, c as WebWidgetProps, _ as __ENV__, W as default, e as defineClient, f as defineClientOnly, d as defineWebWidget, r as renderServerWidget } from './web-widget-
|
|
3
|
+
export { A as ASSET_PLACEHOLDER, C as ClientOptions, D as DefineWebWidgetOptions, W as WebWidget, b as WebWidgetClient, a as WebWidgetClientProps, c as WebWidgetProps, _ as __ENV__, W as default, e as defineClient, f as defineClientOnly, d as defineWebWidget, r as renderServerWidget } from './web-widget-67fd682e.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
|
6
6
|
|
package/dist/react.client.js
CHANGED
|
@@ -89,9 +89,6 @@ function WebWidget({
|
|
|
89
89
|
name,
|
|
90
90
|
recovering
|
|
91
91
|
}) {
|
|
92
|
-
if (!base) {
|
|
93
|
-
throw new Error(`Missing base`);
|
|
94
|
-
}
|
|
95
92
|
if (children) {
|
|
96
93
|
throw new Error(`No support for 'children'`);
|
|
97
94
|
}
|
|
@@ -124,8 +121,15 @@ function WebWidget({
|
|
|
124
121
|
});
|
|
125
122
|
return /* @__PURE__ */ jsx(Suspense, { fallback, children: /* @__PURE__ */ jsx(WebWidgetClientFactory, {}) });
|
|
126
123
|
}
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
var ASSET_PLACEHOLDER = "asset://";
|
|
125
|
+
function defineWebWidget(loader, {
|
|
126
|
+
base,
|
|
127
|
+
import: url,
|
|
128
|
+
loading,
|
|
129
|
+
name,
|
|
130
|
+
recovering = true
|
|
131
|
+
}) {
|
|
132
|
+
const clientImport = url && !url.startsWith(ASSET_PLACEHOLDER) ? url : getFilename(loader);
|
|
129
133
|
return function WebWidgetFactory({
|
|
130
134
|
children,
|
|
131
135
|
fallback,
|
|
@@ -138,7 +142,7 @@ function defineWebWidget(loader, base, { loading, name, recovering = true } = {}
|
|
|
138
142
|
base,
|
|
139
143
|
data,
|
|
140
144
|
fallback,
|
|
141
|
-
import:
|
|
145
|
+
import: clientImport,
|
|
142
146
|
loader,
|
|
143
147
|
loading,
|
|
144
148
|
name,
|
|
@@ -149,15 +153,17 @@ function defineWebWidget(loader, base, { loading, name, recovering = true } = {}
|
|
|
149
153
|
);
|
|
150
154
|
};
|
|
151
155
|
}
|
|
152
|
-
function defineClient(loader, base,
|
|
153
|
-
return defineWebWidget(loader,
|
|
156
|
+
function defineClient(loader, { base, loading, name } = {}) {
|
|
157
|
+
return defineWebWidget(loader, {
|
|
158
|
+
base,
|
|
154
159
|
loading,
|
|
155
160
|
name,
|
|
156
161
|
recovering: true
|
|
157
162
|
});
|
|
158
163
|
}
|
|
159
|
-
function defineClientOnly(loader, base,
|
|
160
|
-
return defineWebWidget(loader,
|
|
164
|
+
function defineClientOnly(loader, { base, loading, name } = {}) {
|
|
165
|
+
return defineWebWidget(loader, {
|
|
166
|
+
base,
|
|
161
167
|
loading,
|
|
162
168
|
name,
|
|
163
169
|
recovering: false
|
|
@@ -200,6 +206,7 @@ var render = defineRender(async (context, component, props) => {
|
|
|
200
206
|
};
|
|
201
207
|
});
|
|
202
208
|
export {
|
|
209
|
+
ASSET_PLACEHOLDER,
|
|
203
210
|
WebWidget,
|
|
204
211
|
WebWidgetClient,
|
|
205
212
|
__ENV__,
|
package/dist/react.server.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
2
|
export * from '@web-widget/schema/server-helpers';
|
|
3
|
-
export { C as ClientOptions, D as DefineWebWidgetOptions, W as WebWidget, b as WebWidgetClient, a as WebWidgetClientProps, c as WebWidgetProps, _ as __ENV__, W as default, e as defineClient, f as defineClientOnly, d as defineWebWidget, r as renderServerWidget } from './web-widget-
|
|
3
|
+
export { A as ASSET_PLACEHOLDER, C as ClientOptions, D as DefineWebWidgetOptions, W as WebWidget, b as WebWidgetClient, a as WebWidgetClientProps, c as WebWidgetProps, _ as __ENV__, W as default, e as defineClient, f as defineClientOnly, d as defineWebWidget, r as renderServerWidget } from './web-widget-67fd682e.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
|
6
6
|
|
package/dist/react.server.js
CHANGED
|
@@ -89,9 +89,6 @@ function WebWidget({
|
|
|
89
89
|
name,
|
|
90
90
|
recovering
|
|
91
91
|
}) {
|
|
92
|
-
if (!base) {
|
|
93
|
-
throw new Error(`Missing base`);
|
|
94
|
-
}
|
|
95
92
|
if (children) {
|
|
96
93
|
throw new Error(`No support for 'children'`);
|
|
97
94
|
}
|
|
@@ -124,8 +121,15 @@ function WebWidget({
|
|
|
124
121
|
});
|
|
125
122
|
return /* @__PURE__ */ jsx(Suspense, { fallback, children: /* @__PURE__ */ jsx(WebWidgetClientFactory, {}) });
|
|
126
123
|
}
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
var ASSET_PLACEHOLDER = "asset://";
|
|
125
|
+
function defineWebWidget(loader, {
|
|
126
|
+
base,
|
|
127
|
+
import: url,
|
|
128
|
+
loading,
|
|
129
|
+
name,
|
|
130
|
+
recovering = true
|
|
131
|
+
}) {
|
|
132
|
+
const clientImport = url && !url.startsWith(ASSET_PLACEHOLDER) ? url : getFilename(loader);
|
|
129
133
|
return function WebWidgetFactory({
|
|
130
134
|
children,
|
|
131
135
|
fallback,
|
|
@@ -138,7 +142,7 @@ function defineWebWidget(loader, base, { loading, name, recovering = true } = {}
|
|
|
138
142
|
base,
|
|
139
143
|
data,
|
|
140
144
|
fallback,
|
|
141
|
-
import:
|
|
145
|
+
import: clientImport,
|
|
142
146
|
loader,
|
|
143
147
|
loading,
|
|
144
148
|
name,
|
|
@@ -149,15 +153,17 @@ function defineWebWidget(loader, base, { loading, name, recovering = true } = {}
|
|
|
149
153
|
);
|
|
150
154
|
};
|
|
151
155
|
}
|
|
152
|
-
function defineClient(loader, base,
|
|
153
|
-
return defineWebWidget(loader,
|
|
156
|
+
function defineClient(loader, { base, loading, name } = {}) {
|
|
157
|
+
return defineWebWidget(loader, {
|
|
158
|
+
base,
|
|
154
159
|
loading,
|
|
155
160
|
name,
|
|
156
161
|
recovering: true
|
|
157
162
|
});
|
|
158
163
|
}
|
|
159
|
-
function defineClientOnly(loader, base,
|
|
160
|
-
return defineWebWidget(loader,
|
|
164
|
+
function defineClientOnly(loader, { base, loading, name } = {}) {
|
|
165
|
+
return defineWebWidget(loader, {
|
|
166
|
+
base,
|
|
161
167
|
loading,
|
|
162
168
|
name,
|
|
163
169
|
recovering: false
|
|
@@ -182,6 +188,7 @@ var render = defineRender(async (context, component, props) => {
|
|
|
182
188
|
return ReactDOMServer.renderToReadableStream(vnode);
|
|
183
189
|
});
|
|
184
190
|
export {
|
|
191
|
+
ASSET_PLACEHOLDER,
|
|
185
192
|
WebWidget,
|
|
186
193
|
WebWidgetClient,
|
|
187
194
|
__ENV__,
|
|
@@ -14,7 +14,7 @@ type JSONProps = {
|
|
|
14
14
|
};
|
|
15
15
|
type Loader = () => Promise<WidgetModule>;
|
|
16
16
|
interface WebWidgetClientProps {
|
|
17
|
-
base
|
|
17
|
+
base?: string;
|
|
18
18
|
data: JSONProps;
|
|
19
19
|
import: string;
|
|
20
20
|
innerHTML?: string;
|
|
@@ -26,7 +26,7 @@ declare function WebWidgetClient({ base, data, import: url, innerHTML, loading,
|
|
|
26
26
|
dangerouslySetInnerHTML: {
|
|
27
27
|
__html: string;
|
|
28
28
|
};
|
|
29
|
-
base: string;
|
|
29
|
+
base: string | undefined;
|
|
30
30
|
data: string;
|
|
31
31
|
import: string;
|
|
32
32
|
loading: string | undefined;
|
|
@@ -45,16 +45,20 @@ type WebWidgetFactoryProps = JSONProps & {
|
|
|
45
45
|
fallback?: ReactNode;
|
|
46
46
|
};
|
|
47
47
|
interface DefineWebWidgetOptions {
|
|
48
|
+
base?: string;
|
|
49
|
+
import?: string;
|
|
48
50
|
loading?: string;
|
|
49
51
|
name?: string;
|
|
50
52
|
recovering?: boolean;
|
|
51
53
|
}
|
|
52
|
-
declare
|
|
54
|
+
declare const ASSET_PLACEHOLDER = "asset://";
|
|
55
|
+
declare function defineWebWidget(loader: Loader, { base, import: url, loading, name, recovering, }: DefineWebWidgetOptions): ({ children, fallback, ...data }: WebWidgetFactoryProps) => react_jsx_runtime.JSX.Element;
|
|
53
56
|
interface ClientOptions {
|
|
57
|
+
base?: string;
|
|
54
58
|
loading?: "lazy";
|
|
55
59
|
name?: string;
|
|
56
60
|
}
|
|
57
|
-
declare function defineClient(loader: Loader, base
|
|
58
|
-
declare function defineClientOnly(loader: Loader, base
|
|
61
|
+
declare function defineClient(loader: Loader, { base, loading, name }?: ClientOptions): ({ children, fallback, ...data }: WebWidgetFactoryProps) => react_jsx_runtime.JSX.Element;
|
|
62
|
+
declare function defineClientOnly(loader: Loader, { base, loading, name }?: ClientOptions): ({ children, fallback, ...data }: WebWidgetFactoryProps) => react_jsx_runtime.JSX.Element;
|
|
59
63
|
|
|
60
|
-
export { ClientOptions as C, DefineWebWidgetOptions as D, WebWidget as W, __ENV__ as _, WebWidgetClientProps as a, WebWidgetClient as b, WebWidgetProps as c, defineWebWidget as d, defineClient as e, defineClientOnly as f, renderServerWidget as r };
|
|
64
|
+
export { ASSET_PLACEHOLDER as A, ClientOptions as C, DefineWebWidgetOptions as D, WebWidget as W, __ENV__ as _, WebWidgetClientProps as a, WebWidgetClient as b, WebWidgetProps as c, defineWebWidget as d, defineClient as e, defineClientOnly as f, renderServerWidget as r };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web-widget/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@babel/helper-module-imports": "^7.22.5",
|
|
37
37
|
"@babel/helper-plugin-utils": "^7.22.5",
|
|
38
38
|
"@babel/traverse": "^7.22.5",
|
|
39
|
-
"@web-widget/schema": "0.0.
|
|
39
|
+
"@web-widget/schema": "0.0.7"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@vitejs/plugin-react": "^4.0.2",
|