@parcel/transformer-babel 2.0.0-nightly.92 → 2.0.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/lib/BabelTransformer.js +107 -47
- package/lib/astConverter.js +11 -3
- package/lib/babel7.js +81 -26
- package/lib/config.js +319 -213
- package/lib/constants.js +8 -0
- package/lib/flow.js +9 -1
- package/lib/jsx.js +30 -43
- package/lib/utils.js +31 -4
- package/package.json +20 -14
- package/src/BabelTransformer.js +44 -40
- package/src/babel7.js +47 -17
- package/src/config.js +364 -224
- package/src/constants.js +3 -0
- package/src/flow.js +19 -2
- package/src/jsx.js +29 -44
- package/src/types.js +0 -7
- package/src/utils.js +4 -2
- package/lib/babel6.js +0 -47
- package/lib/babelErrorUtils.js +0 -16
- package/lib/env.js +0 -63
- package/lib/getBabelTargets.js +0 -86
- package/lib/typescript.js +0 -18
- package/src/babel6.js +0 -52
- package/src/babelErrorUtils.js +0 -29
- package/src/env.js +0 -70
- package/src/getBabelTargets.js +0 -97
- package/src/typescript.js +0 -16
package/lib/BabelTransformer.js
CHANGED
|
@@ -5,50 +5,85 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
function _babelAstUtils() {
|
|
9
|
+
const data = require("@parcel/babel-ast-utils");
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
_babelAstUtils = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
function _plugin() {
|
|
19
|
+
const data = require("@parcel/plugin");
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
_plugin = function () {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
19
27
|
|
|
20
|
-
|
|
28
|
+
function _utils() {
|
|
29
|
+
const data = require("@parcel/utils");
|
|
30
|
+
|
|
31
|
+
_utils = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _sourceMap() {
|
|
39
|
+
const data = _interopRequireDefault(require("@parcel/source-map"));
|
|
40
|
+
|
|
41
|
+
_sourceMap = function () {
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function _semver() {
|
|
49
|
+
const data = _interopRequireDefault(require("semver"));
|
|
21
50
|
|
|
22
|
-
|
|
51
|
+
_semver = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _generator() {
|
|
59
|
+
const data = _interopRequireDefault(require("@babel/generator"));
|
|
60
|
+
|
|
61
|
+
_generator = function () {
|
|
62
|
+
return data;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return data;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var _babel = _interopRequireDefault(require("./babel7"));
|
|
69
|
+
|
|
70
|
+
var _config = require("./config");
|
|
23
71
|
|
|
24
72
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
73
|
|
|
26
|
-
var _default = new _plugin.Transformer({
|
|
27
|
-
|
|
74
|
+
var _default = new (_plugin().Transformer)({
|
|
75
|
+
loadConfig({
|
|
28
76
|
config,
|
|
29
77
|
options,
|
|
30
78
|
logger
|
|
31
79
|
}) {
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
preSerializeConfig({
|
|
36
|
-
config
|
|
37
|
-
}) {
|
|
38
|
-
return (0, _config.preSerialize)(config);
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
postDeserializeConfig({
|
|
42
|
-
config,
|
|
43
|
-
options
|
|
44
|
-
}) {
|
|
45
|
-
return (0, _config.postDeserialize)(config, options);
|
|
80
|
+
return (0, _config.load)(config, options, logger);
|
|
46
81
|
},
|
|
47
82
|
|
|
48
83
|
canReuseAST({
|
|
49
84
|
ast
|
|
50
85
|
}) {
|
|
51
|
-
return ast.type === 'babel' && _semver.default.satisfies(ast.version, '^7.0.0');
|
|
86
|
+
return ast.type === 'babel' && _semver().default.satisfies(ast.version, '^7.0.0');
|
|
52
87
|
},
|
|
53
88
|
|
|
54
89
|
async transform({
|
|
@@ -56,44 +91,69 @@ var _default = new _plugin.Transformer({
|
|
|
56
91
|
config,
|
|
57
92
|
options
|
|
58
93
|
}) {
|
|
59
|
-
// TODO: come up with a better name
|
|
60
94
|
try {
|
|
61
|
-
if (config
|
|
62
|
-
if (asset.meta.babelPlugins && Array.isArray(asset.meta.babelPlugins)) {
|
|
63
|
-
|
|
64
|
-
|
|
95
|
+
if (config !== null && config !== void 0 && config.config) {
|
|
96
|
+
if (asset.meta.babelPlugins != null && Array.isArray(asset.meta.babelPlugins)) {
|
|
97
|
+
await (0, _babel.default)({
|
|
98
|
+
asset,
|
|
99
|
+
options,
|
|
100
|
+
babelOptions: config,
|
|
101
|
+
additionalPlugins: asset.meta.babelPlugins
|
|
102
|
+
});
|
|
65
103
|
} else {
|
|
66
|
-
|
|
104
|
+
await (0, _babel.default)({
|
|
105
|
+
asset,
|
|
106
|
+
options,
|
|
107
|
+
babelOptions: config
|
|
108
|
+
});
|
|
67
109
|
}
|
|
68
110
|
}
|
|
69
111
|
|
|
70
112
|
return [asset];
|
|
71
113
|
} catch (e) {
|
|
72
|
-
throw await (0,
|
|
114
|
+
throw await (0, _babelAstUtils().babelErrorEnhancer)(e, asset);
|
|
73
115
|
}
|
|
74
116
|
},
|
|
75
117
|
|
|
76
118
|
async generate({
|
|
77
119
|
asset,
|
|
120
|
+
ast,
|
|
78
121
|
options
|
|
79
122
|
}) {
|
|
80
|
-
let
|
|
123
|
+
let originalSourceMap = await asset.getMap();
|
|
124
|
+
let sourceFileName = (0, _utils().relativeUrl)(options.projectRoot, asset.filePath);
|
|
125
|
+
let {
|
|
126
|
+
code,
|
|
127
|
+
rawMappings
|
|
128
|
+
} = (0, _generator().default)(ast.program, {
|
|
129
|
+
sourceFileName,
|
|
130
|
+
sourceMaps: !!asset.env.sourceMap,
|
|
131
|
+
comments: true
|
|
132
|
+
});
|
|
133
|
+
let map = new (_sourceMap().default)(options.projectRoot);
|
|
134
|
+
|
|
135
|
+
if (rawMappings) {
|
|
136
|
+
map.addIndexedMappings(rawMappings);
|
|
137
|
+
}
|
|
81
138
|
|
|
82
|
-
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
} catch (e) {
|
|
95
|
-
throw await (0, _babelErrorUtils.babelErrorEnhancer)(e, asset);
|
|
139
|
+
if (originalSourceMap) {
|
|
140
|
+
// The babel AST already contains the correct mappings, but not the source contents.
|
|
141
|
+
// We need to copy over the source contents from the original map.
|
|
142
|
+
let sourcesContent = originalSourceMap.getSourcesContentMap();
|
|
143
|
+
|
|
144
|
+
for (let filePath in sourcesContent) {
|
|
145
|
+
let content = sourcesContent[filePath];
|
|
146
|
+
|
|
147
|
+
if (content != null) {
|
|
148
|
+
map.setSourceContent(filePath, content);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
96
151
|
}
|
|
152
|
+
|
|
153
|
+
return {
|
|
154
|
+
content: code,
|
|
155
|
+
map
|
|
156
|
+
};
|
|
97
157
|
}
|
|
98
158
|
|
|
99
159
|
});
|
package/lib/astConverter.js
CHANGED
|
@@ -6,7 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.babel7toBabel6 = babel7toBabel6;
|
|
7
7
|
exports.babel6toBabel7 = babel6toBabel7;
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
function _traverse() {
|
|
10
|
+
const data = _interopRequireDefault(require("@babel/traverse"));
|
|
11
|
+
|
|
12
|
+
_traverse = function () {
|
|
13
|
+
return data;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
10
18
|
|
|
11
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
20
|
|
|
@@ -42,7 +50,7 @@ function babel7toBabel6(ast) {
|
|
|
42
50
|
}
|
|
43
51
|
}
|
|
44
52
|
};
|
|
45
|
-
(0, _traverse.default)(ast, {
|
|
53
|
+
(0, _traverse().default)(ast, {
|
|
46
54
|
enter(path) {
|
|
47
55
|
if (path.node.variance && path.node.variance.type === 'Variance') {
|
|
48
56
|
path.node.variance = path.node.variance.kind;
|
|
@@ -85,7 +93,7 @@ function babel6toBabel7(ast) {
|
|
|
85
93
|
node.type = 'RestElement';
|
|
86
94
|
}
|
|
87
95
|
};
|
|
88
|
-
(0, _traverse.default)(ast, {
|
|
96
|
+
(0, _traverse().default)(ast, {
|
|
89
97
|
enter(path) {
|
|
90
98
|
if (path.node.variance && typeof path.node.variance === 'string') {
|
|
91
99
|
path.node.variance = {
|
package/lib/babel7.js
CHANGED
|
@@ -5,61 +5,116 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = babel7;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
function _assert() {
|
|
9
|
+
const data = _interopRequireDefault(require("assert"));
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
_assert = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function internalBabelCore() {
|
|
19
|
+
const data = _interopRequireWildcard(require("@babel/core"));
|
|
20
|
+
|
|
21
|
+
internalBabelCore = function () {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _utils() {
|
|
29
|
+
const data = require("@parcel/utils");
|
|
30
|
+
|
|
31
|
+
_utils = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _babelAstUtils() {
|
|
39
|
+
const data = require("@parcel/babel-ast-utils");
|
|
40
|
+
|
|
41
|
+
_babelAstUtils = function () {
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
13
44
|
|
|
14
|
-
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
15
47
|
|
|
16
|
-
|
|
48
|
+
var _package = _interopRequireDefault(require("../package.json"));
|
|
49
|
+
|
|
50
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
17
51
|
|
|
18
|
-
function
|
|
52
|
+
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; }
|
|
53
|
+
|
|
54
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
55
|
|
|
20
56
|
const transformerVersion = _package.default.version;
|
|
21
|
-
(0, _assert.default)(typeof transformerVersion === 'string');
|
|
57
|
+
(0, _assert().default)(typeof transformerVersion === 'string');
|
|
22
58
|
|
|
23
|
-
async function babel7(
|
|
24
|
-
|
|
25
|
-
// otherwise require a local version from the package we're compiling.
|
|
26
|
-
let babel = babelOptions.internal ? require('@babel/core') : await options.packageManager.require('@babel/core', asset.filePath);
|
|
59
|
+
async function babel7(opts) {
|
|
60
|
+
var _babelOptions$config$, _babelOptions$config$2, _babelOptions$syntaxP;
|
|
27
61
|
|
|
28
|
-
let
|
|
62
|
+
let {
|
|
63
|
+
asset,
|
|
64
|
+
options,
|
|
65
|
+
babelOptions,
|
|
66
|
+
additionalPlugins = []
|
|
67
|
+
} = opts;
|
|
68
|
+
const babelCore = babelOptions.internal ? internalBabelCore() : await options.packageManager.require('@babel/core', asset.filePath, {
|
|
69
|
+
range: '^7.12.0',
|
|
70
|
+
saveDev: true,
|
|
71
|
+
shouldAutoInstall: options.shouldAutoInstall
|
|
72
|
+
});
|
|
73
|
+
let config = { ...babelOptions.config,
|
|
29
74
|
plugins: additionalPlugins.concat(babelOptions.config.plugins),
|
|
30
75
|
code: false,
|
|
31
76
|
ast: true,
|
|
32
77
|
filename: asset.filePath,
|
|
33
78
|
babelrc: false,
|
|
34
79
|
configFile: false,
|
|
35
|
-
parserOpts:
|
|
80
|
+
parserOpts: { ...babelOptions.config.parserOpts,
|
|
81
|
+
sourceFilename: (0, _utils().relativeUrl)(options.projectRoot, asset.filePath),
|
|
36
82
|
allowReturnOutsideFunction: true,
|
|
37
83
|
strictMode: false,
|
|
38
84
|
sourceType: 'module',
|
|
39
|
-
plugins: [
|
|
40
|
-
|
|
85
|
+
plugins: [...((_babelOptions$config$ = (_babelOptions$config$2 = babelOptions.config.parserOpts) === null || _babelOptions$config$2 === void 0 ? void 0 : _babelOptions$config$2.plugins) !== null && _babelOptions$config$ !== void 0 ? _babelOptions$config$ : []), ...((_babelOptions$syntaxP = babelOptions.syntaxPlugins) !== null && _babelOptions$syntaxP !== void 0 ? _babelOptions$syntaxP : []), // Applied by preset-env
|
|
86
|
+
'classProperties', 'classPrivateProperties', 'classPrivateMethods', 'exportDefaultFrom' // 'topLevelAwait'
|
|
87
|
+
]
|
|
88
|
+
},
|
|
41
89
|
caller: {
|
|
42
90
|
name: 'parcel',
|
|
43
91
|
version: transformerVersion,
|
|
44
|
-
targets: JSON.stringify(babelOptions.targets)
|
|
92
|
+
targets: JSON.stringify(babelOptions.targets),
|
|
93
|
+
outputFormat: asset.env.outputFormat
|
|
45
94
|
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
let code = await asset.getCode();
|
|
95
|
+
};
|
|
96
|
+
let ast = await asset.getAST();
|
|
49
97
|
let res;
|
|
50
98
|
|
|
51
|
-
if (
|
|
52
|
-
res =
|
|
99
|
+
if (ast) {
|
|
100
|
+
res = await babelCore.transformFromAstAsync(ast.program, asset.isASTDirty() ? undefined : await asset.getCode(), config);
|
|
53
101
|
} else {
|
|
54
|
-
res =
|
|
102
|
+
res = await babelCore.transformAsync(await asset.getCode(), config);
|
|
103
|
+
|
|
104
|
+
if (res.ast) {
|
|
105
|
+
let map = await asset.getMap();
|
|
106
|
+
|
|
107
|
+
if (map) {
|
|
108
|
+
(0, _babelAstUtils().remapAstLocations)(res.ast, map);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
55
111
|
}
|
|
56
112
|
|
|
57
113
|
if (res.ast) {
|
|
58
|
-
|
|
114
|
+
asset.setAST({
|
|
59
115
|
type: 'babel',
|
|
60
116
|
version: '7.0.0',
|
|
61
|
-
program: res.ast
|
|
62
|
-
|
|
63
|
-
};
|
|
117
|
+
program: res.ast
|
|
118
|
+
});
|
|
64
119
|
}
|
|
65
120
|
}
|