@parcel/transformer-react-refresh-wrap 2.0.0-beta.2 → 2.0.0-nightly.1004
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.
|
@@ -5,16 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
function _semver() {
|
|
9
|
-
const data = _interopRequireDefault(require("semver"));
|
|
10
|
-
|
|
11
|
-
_semver = function () {
|
|
12
|
-
return data;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
8
|
function _path() {
|
|
19
9
|
const data = _interopRequireDefault(require("path"));
|
|
20
10
|
|
|
@@ -25,16 +15,6 @@ function _path() {
|
|
|
25
15
|
return data;
|
|
26
16
|
}
|
|
27
17
|
|
|
28
|
-
function _babelAstUtils() {
|
|
29
|
-
const data = require("@parcel/babel-ast-utils");
|
|
30
|
-
|
|
31
|
-
_babelAstUtils = function () {
|
|
32
|
-
return data;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
return data;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
18
|
function _plugin() {
|
|
39
19
|
const data = require("@parcel/plugin");
|
|
40
20
|
|
|
@@ -45,123 +25,51 @@ function _plugin() {
|
|
|
45
25
|
return data;
|
|
46
26
|
}
|
|
47
27
|
|
|
48
|
-
function _utils() {
|
|
49
|
-
const data = require("@parcel/utils");
|
|
50
|
-
|
|
51
|
-
_utils = function () {
|
|
52
|
-
return data;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return data;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function _template() {
|
|
59
|
-
const data = _interopRequireDefault(require("@babel/template"));
|
|
60
|
-
|
|
61
|
-
_template = function () {
|
|
62
|
-
return data;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
return data;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function t() {
|
|
69
|
-
const data = _interopRequireWildcard(require("@babel/types"));
|
|
70
|
-
|
|
71
|
-
t = function () {
|
|
72
|
-
return data;
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
return data;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
79
|
-
|
|
80
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
81
|
-
|
|
82
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
83
29
|
|
|
84
|
-
const WRAPPER = _path().default.join(__dirname, 'helpers', 'helpers.js');
|
|
85
|
-
|
|
86
|
-
const wrapper = _template().default.statements(`
|
|
87
|
-
var helpers = require(%%helper%%);
|
|
88
|
-
var prevRefreshReg = window.$RefreshReg$;
|
|
89
|
-
var prevRefreshSig = window.$RefreshSig$;
|
|
90
|
-
helpers.prelude(module);
|
|
91
|
-
|
|
92
|
-
try {
|
|
93
|
-
%%module%%
|
|
94
|
-
helpers.postlude(module);
|
|
95
|
-
} finally {
|
|
96
|
-
window.$RefreshReg$ = prevRefreshReg;
|
|
97
|
-
window.$RefreshSig$ = prevRefreshSig;
|
|
98
|
-
}
|
|
99
|
-
`);
|
|
100
|
-
|
|
101
30
|
function shouldExclude(asset, options) {
|
|
102
|
-
return !asset.isSource || !options.hmrOptions || !asset.env.isBrowser() || options.mode !== 'development' || !asset.getDependencies().find(v => v.
|
|
31
|
+
return !asset.isSource || !options.hmrOptions || !asset.env.isBrowser() || asset.env.isWorker() || asset.env.isWorklet() || options.mode !== 'development' || !asset.getDependencies().find(v => v.specifier === 'react' || v.specifier === 'react/jsx-runtime' || v.specifier === 'react/jsx-dev-runtime');
|
|
103
32
|
}
|
|
104
33
|
|
|
105
34
|
var _default = new (_plugin().Transformer)({
|
|
106
|
-
canReuseAST({
|
|
107
|
-
ast
|
|
108
|
-
}) {
|
|
109
|
-
return ast.type === 'babel' && _semver().default.satisfies(ast.version, '^7.0.0');
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
async parse({
|
|
113
|
-
asset,
|
|
114
|
-
options
|
|
115
|
-
}) {
|
|
116
|
-
if (shouldExclude(asset, options)) {
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return (0, _babelAstUtils().parse)({
|
|
121
|
-
asset,
|
|
122
|
-
code: await asset.getCode(),
|
|
123
|
-
options
|
|
124
|
-
});
|
|
125
|
-
},
|
|
126
|
-
|
|
127
35
|
async transform({
|
|
128
36
|
asset,
|
|
129
37
|
options
|
|
130
38
|
}) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (!ast || shouldExclude(asset, options)) {
|
|
39
|
+
if (shouldExclude(asset, options)) {
|
|
134
40
|
return [asset];
|
|
135
41
|
}
|
|
136
42
|
|
|
137
|
-
let wrapperPath =
|
|
43
|
+
let wrapperPath = `@parcel/transformer-react-refresh-wrap/${_path().default.basename(__dirname)}/helpers/helpers.js`;
|
|
44
|
+
let code = await asset.getCode();
|
|
45
|
+
let map = await asset.getMap();
|
|
46
|
+
let name = `$parcel$ReactRefreshHelpers$${asset.id.slice(-4)}`;
|
|
47
|
+
code = `var ${name} = require(${JSON.stringify(wrapperPath)});
|
|
48
|
+
var prevRefreshReg = window.$RefreshReg$;
|
|
49
|
+
var prevRefreshSig = window.$RefreshSig$;
|
|
50
|
+
${name}.prelude(module);
|
|
138
51
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
52
|
+
try {
|
|
53
|
+
${code}
|
|
54
|
+
${name}.postlude(module);
|
|
55
|
+
} finally {
|
|
56
|
+
window.$RefreshReg$ = prevRefreshReg;
|
|
57
|
+
window.$RefreshSig$ = prevRefreshSig;
|
|
58
|
+
}`;
|
|
59
|
+
asset.setCode(code);
|
|
60
|
+
|
|
61
|
+
if (map) {
|
|
62
|
+
map.offsetLines(1, 6);
|
|
63
|
+
asset.setMap(map);
|
|
64
|
+
} // The JSTransformer has already run, do it manually
|
|
142
65
|
|
|
143
|
-
ast.program.program.body = wrapper({
|
|
144
|
-
helper: t().stringLiteral(wrapperPath),
|
|
145
|
-
module: ast.program.program.body
|
|
146
|
-
});
|
|
147
|
-
asset.setAST(ast); // The JSTransformer has already run, do it manually
|
|
148
66
|
|
|
149
67
|
asset.addDependency({
|
|
150
|
-
|
|
68
|
+
specifier: wrapperPath,
|
|
69
|
+
specifierType: 'esm',
|
|
70
|
+
resolveFrom: __filename
|
|
151
71
|
});
|
|
152
72
|
return [asset];
|
|
153
|
-
},
|
|
154
|
-
|
|
155
|
-
generate({
|
|
156
|
-
asset,
|
|
157
|
-
ast,
|
|
158
|
-
options
|
|
159
|
-
}) {
|
|
160
|
-
return (0, _babelAstUtils().generate)({
|
|
161
|
-
asset,
|
|
162
|
-
ast,
|
|
163
|
-
options
|
|
164
|
-
});
|
|
165
73
|
}
|
|
166
74
|
|
|
167
75
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parcel/transformer-react-refresh-wrap",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-nightly.1004+47379bf8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,16 +17,12 @@
|
|
|
17
17
|
"source": "src/ReactRefreshWrapTransformer.js",
|
|
18
18
|
"engines": {
|
|
19
19
|
"node": ">= 12.0.0",
|
|
20
|
-
"parcel": "
|
|
20
|
+
"parcel": "2.0.0-nightly.1002+47379bf8"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@
|
|
24
|
-
"@
|
|
25
|
-
"
|
|
26
|
-
"@parcel/plugin": "2.0.0-beta.2",
|
|
27
|
-
"@parcel/utils": "2.0.0-beta.2",
|
|
28
|
-
"react-refresh": "^0.9.0",
|
|
29
|
-
"semver": "^5.4.1"
|
|
23
|
+
"@parcel/plugin": "2.0.0-nightly.1004+47379bf8",
|
|
24
|
+
"@parcel/utils": "2.0.0-nightly.1004+47379bf8",
|
|
25
|
+
"react-refresh": "^0.9.0"
|
|
30
26
|
},
|
|
31
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "47379bf8fabeb2cfe03ade8802d942388b153e5b"
|
|
32
28
|
}
|
|
@@ -1,88 +1,67 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import type {StringLiteral, Statement} from '@babel/types';
|
|
4
|
-
|
|
5
|
-
import semver from 'semver';
|
|
6
3
|
import path from 'path';
|
|
7
|
-
import {generate, parse} from '@parcel/babel-ast-utils';
|
|
8
4
|
import {Transformer} from '@parcel/plugin';
|
|
9
|
-
import {relativePath} from '@parcel/utils';
|
|
10
|
-
import template from '@babel/template';
|
|
11
|
-
import * as t from '@babel/types';
|
|
12
|
-
|
|
13
|
-
const WRAPPER = path.join(__dirname, 'helpers', 'helpers.js');
|
|
14
|
-
|
|
15
|
-
const wrapper = template.statements<{|
|
|
16
|
-
helper: StringLiteral,
|
|
17
|
-
module: Array<Statement>,
|
|
18
|
-
|}>(`
|
|
19
|
-
var helpers = require(%%helper%%);
|
|
20
|
-
var prevRefreshReg = window.$RefreshReg$;
|
|
21
|
-
var prevRefreshSig = window.$RefreshSig$;
|
|
22
|
-
helpers.prelude(module);
|
|
23
|
-
|
|
24
|
-
try {
|
|
25
|
-
%%module%%
|
|
26
|
-
helpers.postlude(module);
|
|
27
|
-
} finally {
|
|
28
|
-
window.$RefreshReg$ = prevRefreshReg;
|
|
29
|
-
window.$RefreshSig$ = prevRefreshSig;
|
|
30
|
-
}
|
|
31
|
-
`);
|
|
32
5
|
|
|
33
6
|
function shouldExclude(asset, options) {
|
|
34
7
|
return (
|
|
35
8
|
!asset.isSource ||
|
|
36
9
|
!options.hmrOptions ||
|
|
37
10
|
!asset.env.isBrowser() ||
|
|
11
|
+
asset.env.isWorker() ||
|
|
12
|
+
asset.env.isWorklet() ||
|
|
38
13
|
options.mode !== 'development' ||
|
|
39
|
-
!asset
|
|
14
|
+
!asset
|
|
15
|
+
.getDependencies()
|
|
16
|
+
.find(
|
|
17
|
+
v =>
|
|
18
|
+
v.specifier === 'react' ||
|
|
19
|
+
v.specifier === 'react/jsx-runtime' ||
|
|
20
|
+
v.specifier === 'react/jsx-dev-runtime',
|
|
21
|
+
)
|
|
40
22
|
);
|
|
41
23
|
}
|
|
42
24
|
|
|
43
25
|
export default (new Transformer({
|
|
44
|
-
|
|
45
|
-
return ast.type === 'babel' && semver.satisfies(ast.version, '^7.0.0');
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
async parse({asset, options}) {
|
|
26
|
+
async transform({asset, options}) {
|
|
49
27
|
if (shouldExclude(asset, options)) {
|
|
50
|
-
return
|
|
28
|
+
return [asset];
|
|
51
29
|
}
|
|
52
30
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
options,
|
|
57
|
-
});
|
|
58
|
-
},
|
|
31
|
+
let wrapperPath = `@parcel/transformer-react-refresh-wrap/${path.basename(
|
|
32
|
+
__dirname,
|
|
33
|
+
)}/helpers/helpers.js`;
|
|
59
34
|
|
|
60
|
-
|
|
61
|
-
let
|
|
62
|
-
|
|
63
|
-
return [asset];
|
|
64
|
-
}
|
|
35
|
+
let code = await asset.getCode();
|
|
36
|
+
let map = await asset.getMap();
|
|
37
|
+
let name = `$parcel$ReactRefreshHelpers$${asset.id.slice(-4)}`;
|
|
65
38
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
39
|
+
code = `var ${name} = require(${JSON.stringify(wrapperPath)});
|
|
40
|
+
var prevRefreshReg = window.$RefreshReg$;
|
|
41
|
+
var prevRefreshSig = window.$RefreshSig$;
|
|
42
|
+
${name}.prelude(module);
|
|
70
43
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
44
|
+
try {
|
|
45
|
+
${code}
|
|
46
|
+
${name}.postlude(module);
|
|
47
|
+
} finally {
|
|
48
|
+
window.$RefreshReg$ = prevRefreshReg;
|
|
49
|
+
window.$RefreshSig$ = prevRefreshSig;
|
|
50
|
+
}`;
|
|
51
|
+
|
|
52
|
+
asset.setCode(code);
|
|
53
|
+
if (map) {
|
|
54
|
+
map.offsetLines(1, 6);
|
|
55
|
+
asset.setMap(map);
|
|
56
|
+
}
|
|
76
57
|
|
|
77
58
|
// The JSTransformer has already run, do it manually
|
|
78
59
|
asset.addDependency({
|
|
79
|
-
|
|
60
|
+
specifier: wrapperPath,
|
|
61
|
+
specifierType: 'esm',
|
|
62
|
+
resolveFrom: __filename,
|
|
80
63
|
});
|
|
81
64
|
|
|
82
65
|
return [asset];
|
|
83
66
|
},
|
|
84
|
-
|
|
85
|
-
generate({asset, ast, options}) {
|
|
86
|
-
return generate({asset, ast, options});
|
|
87
|
-
},
|
|
88
67
|
}): Transformer);
|
package/src/helpers/helpers.js
CHANGED
|
@@ -2,21 +2,21 @@ var Refresh = require('react-refresh/runtime');
|
|
|
2
2
|
|
|
3
3
|
function debounce(func, delay) {
|
|
4
4
|
if (process.env.NODE_ENV === 'test') {
|
|
5
|
-
return function(args) {
|
|
5
|
+
return function (args) {
|
|
6
6
|
func.call(null, args);
|
|
7
7
|
};
|
|
8
8
|
} else {
|
|
9
9
|
var timeout = undefined;
|
|
10
|
-
return function(args) {
|
|
10
|
+
return function (args) {
|
|
11
11
|
clearTimeout(timeout);
|
|
12
|
-
timeout = setTimeout(function() {
|
|
12
|
+
timeout = setTimeout(function () {
|
|
13
13
|
timeout = undefined;
|
|
14
14
|
func.call(null, args);
|
|
15
15
|
}, delay);
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
var enqueueUpdate = debounce(function() {
|
|
19
|
+
var enqueueUpdate = debounce(function () {
|
|
20
20
|
Refresh.performReactRefresh();
|
|
21
21
|
}, 30);
|
|
22
22
|
|
|
@@ -24,19 +24,19 @@ var enqueueUpdate = debounce(function() {
|
|
|
24
24
|
// https://github.com/facebook/metro/blob/61de16bd1edd7e738dd0311c89555a644023ab2d/packages/metro/src/lib/polyfills/require.js
|
|
25
25
|
// MIT License - Copyright (c) Facebook, Inc. and its affiliates.
|
|
26
26
|
|
|
27
|
-
module.exports.prelude = function(module) {
|
|
28
|
-
window.$RefreshReg$ = function(type, id) {
|
|
27
|
+
module.exports.prelude = function (module) {
|
|
28
|
+
window.$RefreshReg$ = function (type, id) {
|
|
29
29
|
Refresh.register(type, module.id + ' ' + id);
|
|
30
30
|
};
|
|
31
31
|
window.$RefreshSig$ = Refresh.createSignatureFunctionForTransform;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
module.exports.postlude = function(module) {
|
|
34
|
+
module.exports.postlude = function (module) {
|
|
35
35
|
if (isReactRefreshBoundary(module.exports)) {
|
|
36
36
|
registerExportsForReactRefresh(module);
|
|
37
37
|
|
|
38
38
|
if (module.hot) {
|
|
39
|
-
module.hot.dispose(function(data) {
|
|
39
|
+
module.hot.dispose(function (data) {
|
|
40
40
|
if (Refresh.hasUnrecoverableErrors()) {
|
|
41
41
|
window.location.reload();
|
|
42
42
|
}
|
|
@@ -44,7 +44,7 @@ module.exports.postlude = function(module) {
|
|
|
44
44
|
data.prevExports = module.exports;
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
module.hot.accept(function(getParents) {
|
|
47
|
+
module.hot.accept(function (getParents) {
|
|
48
48
|
var prevExports = module.hot.data.prevExports;
|
|
49
49
|
var nextExports = module.exports;
|
|
50
50
|
// Since we just executed the code for it, it's possible
|