@jsenv/plugin-preact 1.3.0 → 1.4.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/package.json +5 -5
- package/src/jsenv_plugin_preact.js +24 -22
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsenv/plugin-preact",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"babel-plugin-transform-hook-names": "1.0.2",
|
|
28
28
|
"@babel/plugin-transform-react-jsx": "7.22.5",
|
|
29
29
|
"@babel/plugin-transform-react-jsx-development": "7.22.5",
|
|
30
|
-
"@jsenv/ast": "
|
|
31
|
-
"@jsenv/sourcemap": "1.0
|
|
30
|
+
"@jsenv/ast": "5.0.0",
|
|
31
|
+
"@jsenv/sourcemap": "1.1.0",
|
|
32
32
|
"@jsenv/url-meta": "8.1.0",
|
|
33
33
|
"@prefresh/babel-plugin": "0.5.0",
|
|
34
34
|
"@prefresh/core": "1.5.1",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"@jsenv/core": "*"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"preact": "10.
|
|
42
|
-
"react-redux": "8.
|
|
41
|
+
"preact": "10.16.0",
|
|
42
|
+
"react-redux": "8.1.1",
|
|
43
43
|
"redux": "4.2.1"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -53,30 +53,33 @@ export const jsenvPluginPreact = ({
|
|
|
53
53
|
name: "jsenv:preact",
|
|
54
54
|
appliesDuring: "*",
|
|
55
55
|
resolveReference: {
|
|
56
|
-
js_import: (reference
|
|
56
|
+
js_import: (reference) => {
|
|
57
57
|
if (
|
|
58
58
|
reference.specifier === "react" ||
|
|
59
59
|
reference.specifier === "react-dom"
|
|
60
60
|
) {
|
|
61
61
|
reference.specifier = "preact/compat";
|
|
62
|
-
return context.resolveReference(reference)
|
|
62
|
+
// return context.resolveReference(reference).url;
|
|
63
63
|
}
|
|
64
64
|
return null;
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
67
|
transformUrlContent: {
|
|
68
|
-
html: (urlInfo
|
|
68
|
+
html: (urlInfo) => {
|
|
69
69
|
if (!preactDevtools) {
|
|
70
70
|
return null;
|
|
71
71
|
}
|
|
72
|
-
if (context.build && preactDevtools !== "dev_and_build") {
|
|
72
|
+
if (urlInfo.context.build && preactDevtools !== "dev_and_build") {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
if (urlInfo.data.isJsenvToolbar) {
|
|
73
76
|
return null;
|
|
74
77
|
}
|
|
75
78
|
const htmlAst = parseHtmlString(urlInfo.content);
|
|
76
|
-
const
|
|
79
|
+
const preactDevtoolsReference = urlInfo.dependencies.inject({
|
|
77
80
|
type: "js_import",
|
|
78
81
|
expectedType: "js_module",
|
|
79
|
-
specifier: context.dev ? "preact/debug" : "preact/devtools",
|
|
82
|
+
specifier: urlInfo.context.dev ? "preact/debug" : "preact/devtools",
|
|
80
83
|
});
|
|
81
84
|
injectHtmlNodeAsEarlyAsPossible(
|
|
82
85
|
htmlAst,
|
|
@@ -90,18 +93,18 @@ export const jsenvPluginPreact = ({
|
|
|
90
93
|
const htmlModified = stringifyHtmlAst(htmlAst);
|
|
91
94
|
return { content: htmlModified };
|
|
92
95
|
},
|
|
93
|
-
js_module: async (urlInfo
|
|
96
|
+
js_module: async (urlInfo) => {
|
|
94
97
|
const urlMeta = URL_META.applyAssociations({
|
|
95
98
|
url: urlInfo.url,
|
|
96
99
|
associations,
|
|
97
100
|
});
|
|
98
101
|
const jsxEnabled = urlMeta.jsxTranspilation;
|
|
99
|
-
const refreshEnabled = context.dev
|
|
102
|
+
const refreshEnabled = urlInfo.context.dev
|
|
100
103
|
? urlMeta.refreshInstrumentation &&
|
|
101
104
|
!urlInfo.content.includes("import.meta.hot.decline()")
|
|
102
105
|
: false;
|
|
103
106
|
const hookNamesEnabled =
|
|
104
|
-
context.dev &&
|
|
107
|
+
urlInfo.context.dev &&
|
|
105
108
|
urlMeta.hookNamesInstrumentation &&
|
|
106
109
|
(urlInfo.content.includes("useState") ||
|
|
107
110
|
urlInfo.content.includes("useReducer") ||
|
|
@@ -112,7 +115,7 @@ export const jsenvPluginPreact = ({
|
|
|
112
115
|
...(jsxEnabled
|
|
113
116
|
? [
|
|
114
117
|
[
|
|
115
|
-
context.dev
|
|
118
|
+
urlInfo.context.dev
|
|
116
119
|
? "@babel/plugin-transform-react-jsx-development"
|
|
117
120
|
: "@babel/plugin-transform-react-jsx",
|
|
118
121
|
{
|
|
@@ -149,7 +152,7 @@ export const jsenvPluginPreact = ({
|
|
|
149
152
|
let index = code.indexOf(importSpecifier);
|
|
150
153
|
while (index > -1) {
|
|
151
154
|
const specifier = importSpecifier.slice(1, -1);
|
|
152
|
-
const
|
|
155
|
+
const injectedJsImportReference = urlInfo.dependencies.inject({
|
|
153
156
|
type: "js_import",
|
|
154
157
|
expectedType: "js_module",
|
|
155
158
|
specifier,
|
|
@@ -157,7 +160,7 @@ export const jsenvPluginPreact = ({
|
|
|
157
160
|
magicSource.replace({
|
|
158
161
|
start: index,
|
|
159
162
|
end: index + importSpecifier.length,
|
|
160
|
-
replacement:
|
|
163
|
+
replacement: injectedJsImportReference.generatedSpecifier,
|
|
161
164
|
});
|
|
162
165
|
index = code.indexOf(importSpecifier, index + 1);
|
|
163
166
|
}
|
|
@@ -167,21 +170,20 @@ export const jsenvPluginPreact = ({
|
|
|
167
170
|
const hasReg = /\$RefreshReg\$\(/.test(code);
|
|
168
171
|
const hasSig = /\$RefreshSig\$\(/.test(code);
|
|
169
172
|
if (hasReg || hasSig) {
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
});
|
|
173
|
+
const preactRefreshClientReference = urlInfo.dependencies.inject({
|
|
174
|
+
type: "js_import",
|
|
175
|
+
expectedType: "js_module",
|
|
176
|
+
specifier: "@jsenv/plugin-preact/src/client/preact_refresh.js",
|
|
177
|
+
});
|
|
176
178
|
magicSource.prepend(`import { installPreactRefresh } from ${
|
|
177
179
|
preactRefreshClientReference.generatedSpecifier
|
|
178
|
-
}
|
|
179
|
-
const __preact_refresh__ = installPreactRefresh(${JSON.stringify(urlInfo.url)})
|
|
180
|
+
};
|
|
181
|
+
const __preact_refresh__ = installPreactRefresh(${JSON.stringify(urlInfo.url)});
|
|
180
182
|
`);
|
|
181
183
|
if (hasReg) {
|
|
182
184
|
magicSource.append(`
|
|
183
|
-
__preact_refresh__.end()
|
|
184
|
-
import.meta.hot.accept(__preact_refresh__.acceptCallback)
|
|
185
|
+
__preact_refresh__.end();
|
|
186
|
+
import.meta.hot.accept(__preact_refresh__.acceptCallback);`);
|
|
185
187
|
}
|
|
186
188
|
}
|
|
187
189
|
}
|