@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/plugin-preact",
3
- "version": "1.3.0",
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": "4.1.0",
31
- "@jsenv/sourcemap": "1.0.10",
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.15.1",
42
- "react-redux": "8.0.7",
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, context) => {
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)[0].url;
62
+ // return context.resolveReference(reference).url;
63
63
  }
64
64
  return null;
65
65
  },
66
66
  },
67
67
  transformUrlContent: {
68
- html: (urlInfo, context) => {
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 [preactDevtoolsReference] = context.referenceUtils.inject({
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, context) => {
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 [injectedReference] = context.referenceUtils.inject({
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: injectedReference.generatedSpecifier,
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 [preactRefreshClientReference] =
171
- context.referenceUtils.inject({
172
- type: "js_import",
173
- expectedType: "js_module",
174
- specifier: "@jsenv/plugin-preact/src/client/preact_refresh.js",
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
  }