@jsenv/plugin-react 1.3.0 → 1.4.0
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsenv/plugin-react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@babel/plugin-transform-react-jsx": "7.22.5",
|
|
28
28
|
"@babel/plugin-transform-react-jsx-development": "7.22.5",
|
|
29
|
-
"@jsenv/ast": "
|
|
30
|
-
"@jsenv/plugin-commonjs": "2.
|
|
31
|
-
"@jsenv/sourcemap": "1.0
|
|
29
|
+
"@jsenv/ast": "5.0.0",
|
|
30
|
+
"@jsenv/plugin-commonjs": "2.2.0",
|
|
31
|
+
"@jsenv/sourcemap": "1.1.0",
|
|
32
32
|
"@jsenv/url-meta": "8.1.0",
|
|
33
33
|
"react-refresh": "0.14.0"
|
|
34
34
|
},
|
|
@@ -76,13 +76,13 @@ const jsenvPluginJsxAndRefresh = ({
|
|
|
76
76
|
name: "jsenv:jsx_and_refresh",
|
|
77
77
|
appliesDuring: "*",
|
|
78
78
|
transformUrlContent: {
|
|
79
|
-
js_module: async (urlInfo
|
|
79
|
+
js_module: async (urlInfo) => {
|
|
80
80
|
const urlMeta = URL_META.applyAssociations({
|
|
81
81
|
url: urlInfo.url,
|
|
82
82
|
associations,
|
|
83
83
|
});
|
|
84
84
|
const jsxEnabled = urlMeta.jsxTranspilation;
|
|
85
|
-
const refreshEnabled = context.dev
|
|
85
|
+
const refreshEnabled = urlInfo.context.dev
|
|
86
86
|
? urlMeta.refreshInstrumentation &&
|
|
87
87
|
!urlInfo.content.includes("import.meta.hot.decline()")
|
|
88
88
|
: false;
|
|
@@ -90,7 +90,7 @@ const jsenvPluginJsxAndRefresh = ({
|
|
|
90
90
|
...(jsxEnabled
|
|
91
91
|
? [
|
|
92
92
|
[
|
|
93
|
-
context.dev
|
|
93
|
+
urlInfo.context.dev
|
|
94
94
|
? "@babel/plugin-transform-react-jsx-development"
|
|
95
95
|
: "@babel/plugin-transform-react-jsx",
|
|
96
96
|
{
|
|
@@ -129,7 +129,7 @@ const jsenvPluginJsxAndRefresh = ({
|
|
|
129
129
|
let index = code.indexOf(importSpecifier);
|
|
130
130
|
while (index > -1) {
|
|
131
131
|
const specifier = importSpecifier.slice(1, -1);
|
|
132
|
-
const
|
|
132
|
+
const injectedJsImportReference = urlInfo.dependencies.inject({
|
|
133
133
|
type: "js_import",
|
|
134
134
|
expectedType: "js_module",
|
|
135
135
|
specifier,
|
|
@@ -137,7 +137,7 @@ const jsenvPluginJsxAndRefresh = ({
|
|
|
137
137
|
magicSource.replace({
|
|
138
138
|
start: index,
|
|
139
139
|
end: index + importSpecifier.length,
|
|
140
|
-
replacement:
|
|
140
|
+
replacement: injectedJsImportReference.generatedSpecifier,
|
|
141
141
|
});
|
|
142
142
|
index = code.indexOf(importSpecifier, index + 1);
|
|
143
143
|
}
|
|
@@ -147,22 +147,20 @@ const jsenvPluginJsxAndRefresh = ({
|
|
|
147
147
|
const hasReg = /\$RefreshReg\$\(/.test(code);
|
|
148
148
|
const hasSig = /\$RefreshSig\$\(/.test(code);
|
|
149
149
|
if (hasReg || hasSig) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
},
|
|
156
|
-
);
|
|
150
|
+
const reactRefreshClientReference = urlInfo.dependencies.inject({
|
|
151
|
+
type: "js_import",
|
|
152
|
+
expectedType: "js_module",
|
|
153
|
+
specifier: "@jsenv/plugin-react/src/client/react_refresh.js",
|
|
154
|
+
});
|
|
157
155
|
magicSource.prepend(`import { installReactRefresh } from ${
|
|
158
156
|
reactRefreshClientReference.generatedSpecifier
|
|
159
157
|
}
|
|
160
|
-
const __react_refresh__ = installReactRefresh(${JSON.stringify(urlInfo.url)})
|
|
158
|
+
const __react_refresh__ = installReactRefresh(${JSON.stringify(urlInfo.url)});
|
|
161
159
|
`);
|
|
162
160
|
if (hasReg) {
|
|
163
161
|
magicSource.append(`
|
|
164
|
-
__react_refresh__.end()
|
|
165
|
-
import.meta.hot.accept(__react_refresh__.acceptCallback)
|
|
162
|
+
__react_refresh__.end();
|
|
163
|
+
import.meta.hot.accept(__react_refresh__.acceptCallback);`);
|
|
166
164
|
}
|
|
167
165
|
}
|
|
168
166
|
}
|
|
@@ -15,9 +15,9 @@ export const jsenvPluginReactRefreshPreamble = () => {
|
|
|
15
15
|
name: "jsenv:react_refresh_preamble",
|
|
16
16
|
appliesDuring: "dev",
|
|
17
17
|
transformUrlContent: {
|
|
18
|
-
html: (urlInfo
|
|
18
|
+
html: (urlInfo) => {
|
|
19
19
|
const htmlAst = parseHtmlString(urlInfo.content);
|
|
20
|
-
const
|
|
20
|
+
const reactRefreshPreambleReference = urlInfo.dependencies.inject({
|
|
21
21
|
type: "script",
|
|
22
22
|
subtype: "js_module",
|
|
23
23
|
expectedType: "js_module",
|