@babel/core
Advanced tools
Comparing version 7.0.0-beta.35 to 7.0.0-beta.36
@@ -33,5 +33,5 @@ "use strict"; | ||
var _ref3 = _ref2; | ||
var _value2 = _ref3[0]; | ||
var _valid = _ref3[1]; | ||
if (_valid(data)) return _value2; | ||
var _value2 = _ref3.value, | ||
_valid2 = _ref3.valid; | ||
if (_valid2(data)) return _value2; | ||
} | ||
@@ -47,5 +47,8 @@ } | ||
case "forever": | ||
cachedValue = [[value, function () { | ||
return true; | ||
}]]; | ||
cachedValue = [{ | ||
value: value, | ||
valid: function valid() { | ||
return true; | ||
} | ||
}]; | ||
callCache.set(arg, cachedValue); | ||
@@ -55,3 +58,6 @@ break; | ||
case "invalidate": | ||
cachedValue = [[value, cache.validator()]]; | ||
cachedValue = [{ | ||
value: value, | ||
valid: cache.validator() | ||
}]; | ||
callCache.set(arg, cachedValue); | ||
@@ -62,5 +68,11 @@ break; | ||
if (cachedValue) { | ||
cachedValue.push([value, cache.validator()]); | ||
cachedValue.push({ | ||
value: value, | ||
valid: cache.validator() | ||
}); | ||
} else { | ||
cachedValue = [[value, cache.validator()]]; | ||
cachedValue = [{ | ||
value: value, | ||
valid: cache.validator() | ||
}]; | ||
callCache.set(arg, cachedValue); | ||
@@ -67,0 +79,0 @@ } |
@@ -6,12 +6,269 @@ "use strict"; | ||
var _optionManager = _interopRequireDefault(require("./option-manager")); | ||
var _path = _interopRequireDefault(require("path")); | ||
var context = _interopRequireWildcard(require("../index")); | ||
var _plugin = _interopRequireDefault(require("./plugin")); | ||
var _merge = _interopRequireDefault(require("lodash/merge")); | ||
var _configChain = require("./config-chain"); | ||
var _traverse = _interopRequireDefault(require("@babel/traverse")); | ||
var _clone = _interopRequireDefault(require("lodash/clone")); | ||
var _caching = require("./caching"); | ||
var _environment = require("./helpers/environment"); | ||
var _options = require("./validation/options"); | ||
var _plugins = require("./validation/plugins"); | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function loadConfig(opts) { | ||
if (opts != null && (typeof opts !== "object" || Array.isArray(opts))) { | ||
function loadConfig(inputOpts) { | ||
if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) { | ||
throw new Error("Babel options must be an object, null, or undefined"); | ||
} | ||
return (0, _optionManager.default)(opts || {}); | ||
var args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {}; | ||
var _args$envName = args.envName, | ||
envName = _args$envName === void 0 ? (0, _environment.getEnv)() : _args$envName, | ||
_args$cwd = args.cwd, | ||
cwd = _args$cwd === void 0 ? "." : _args$cwd; | ||
var absoluteCwd = _path.default.resolve(cwd); | ||
var configChain = (0, _configChain.buildRootChain)(absoluteCwd, args, envName); | ||
if (!configChain) return null; | ||
var optionDefaults = {}; | ||
var options = {}; | ||
var passes = [[]]; | ||
try { | ||
(function recurseDescriptors(config, pass, envName) { | ||
var plugins = config.plugins.map(function (descriptor) { | ||
return loadPluginDescriptor(descriptor, envName); | ||
}); | ||
var presets = config.presets.map(function (descriptor) { | ||
return { | ||
preset: loadPresetDescriptor(descriptor, envName), | ||
pass: descriptor.ownPass ? [] : pass | ||
}; | ||
}); | ||
if (presets.length > 0) { | ||
passes.splice.apply(passes, [1, 0].concat(presets.map(function (o) { | ||
return o.pass; | ||
}).filter(function (p) { | ||
return p !== pass; | ||
}))); | ||
for (var _iterator = presets, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { | ||
var _ref2; | ||
if (_isArray) { | ||
if (_i >= _iterator.length) break; | ||
_ref2 = _iterator[_i++]; | ||
} else { | ||
_i = _iterator.next(); | ||
if (_i.done) break; | ||
_ref2 = _i.value; | ||
} | ||
var _ref3 = _ref2; | ||
var _preset = _ref3.preset, | ||
_pass2 = _ref3.pass; | ||
recurseDescriptors({ | ||
plugins: _preset.plugins, | ||
presets: _preset.presets | ||
}, _pass2, envName); | ||
_preset.options.forEach(function (opts) { | ||
(0, _merge.default)(optionDefaults, opts); | ||
}); | ||
} | ||
} | ||
if (plugins.length > 0) { | ||
pass.unshift.apply(pass, plugins); | ||
} | ||
})({ | ||
plugins: configChain.plugins, | ||
presets: configChain.presets | ||
}, passes[0], envName); | ||
configChain.options.forEach(function (opts) { | ||
(0, _merge.default)(options, opts); | ||
}); | ||
} catch (e) { | ||
if (!/^\[BABEL\]/.test(e.message)) { | ||
e.message = "[BABEL] " + (args.filename || "unknown") + ": " + e.message; | ||
} | ||
throw e; | ||
} | ||
var opts = (0, _merge.default)(optionDefaults, options); | ||
opts.babelrc = false; | ||
opts.plugins = passes[0]; | ||
opts.presets = passes.slice(1).filter(function (plugins) { | ||
return plugins.length > 0; | ||
}).map(function (plugins) { | ||
return { | ||
plugins: plugins | ||
}; | ||
}); | ||
opts.passPerPreset = opts.presets.length > 0; | ||
opts.envName = envName; | ||
opts.cwd = absoluteCwd; | ||
return { | ||
options: opts, | ||
passes: passes | ||
}; | ||
} | ||
var loadDescriptor = (0, _caching.makeWeakCache)(function (_ref4, cache) { | ||
var value = _ref4.value, | ||
options = _ref4.options, | ||
dirname = _ref4.dirname, | ||
alias = _ref4.alias; | ||
if (options === false) throw new Error("Assertion failure"); | ||
options = options || {}; | ||
var item = value; | ||
if (typeof value === "function") { | ||
var api = Object.assign(Object.create(context), { | ||
cache: cache.simple(), | ||
env: function env() { | ||
return cache.using(function (data) { | ||
return data.envName; | ||
}); | ||
}, | ||
async: function async() { | ||
return false; | ||
} | ||
}); | ||
try { | ||
item = value(api, options, dirname); | ||
} catch (e) { | ||
if (alias) { | ||
e.message += " (While processing: " + JSON.stringify(alias) + ")"; | ||
} | ||
throw e; | ||
} | ||
} | ||
if (!item || typeof item !== "object") { | ||
throw new Error("Plugin/Preset did not return an object."); | ||
} | ||
if (typeof item.then === "function") { | ||
throw new Error("You appear to be using an async plugin, " + "which your current version of Babel does not support." + "If you're using a published plugin, " + "you may need to upgrade your @babel/core version."); | ||
} | ||
return { | ||
value: item, | ||
options: options, | ||
dirname: dirname, | ||
alias: alias | ||
}; | ||
}); | ||
function loadPluginDescriptor(descriptor, envName) { | ||
if (descriptor.value instanceof _plugin.default) { | ||
if (descriptor.options) { | ||
throw new Error("Passed options to an existing Plugin instance will not work."); | ||
} | ||
return descriptor.value; | ||
} | ||
return instantiatePlugin(loadDescriptor(descriptor, { | ||
envName: envName | ||
}), { | ||
envName: envName | ||
}); | ||
} | ||
var instantiatePlugin = (0, _caching.makeWeakCache)(function (_ref5, cache) { | ||
var value = _ref5.value, | ||
options = _ref5.options, | ||
dirname = _ref5.dirname, | ||
alias = _ref5.alias; | ||
var pluginObj = (0, _plugins.validatePluginObject)(value); | ||
var plugin = Object.assign({}, pluginObj); | ||
if (plugin.visitor) { | ||
plugin.visitor = _traverse.default.explode((0, _clone.default)(plugin.visitor)); | ||
} | ||
if (plugin.inherits) { | ||
var inheritsDescriptor = { | ||
name: undefined, | ||
alias: alias + "$inherits", | ||
value: plugin.inherits, | ||
options: options, | ||
dirname: dirname | ||
}; | ||
var inherits = cache.invalidate(function (data) { | ||
return loadPluginDescriptor(inheritsDescriptor, data.envName); | ||
}); | ||
plugin.pre = chain(inherits.pre, plugin.pre); | ||
plugin.post = chain(inherits.post, plugin.post); | ||
plugin.manipulateOptions = chain(inherits.manipulateOptions, plugin.manipulateOptions); | ||
plugin.visitor = _traverse.default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); | ||
} | ||
return new _plugin.default(plugin, options, alias); | ||
}); | ||
var loadPresetDescriptor = function loadPresetDescriptor(descriptor, envName) { | ||
return (0, _configChain.buildPresetChain)(instantiatePreset(loadDescriptor(descriptor, { | ||
envName: envName | ||
}))); | ||
}; | ||
var instantiatePreset = (0, _caching.makeWeakCache)(function (_ref6) { | ||
var value = _ref6.value, | ||
dirname = _ref6.dirname, | ||
alias = _ref6.alias; | ||
return { | ||
options: (0, _options.validate)("preset", value), | ||
alias: alias, | ||
dirname: dirname | ||
}; | ||
}); | ||
function chain(a, b) { | ||
var fns = [a, b].filter(Boolean); | ||
if (fns.length <= 1) return fns[0]; | ||
return function () { | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
for (var _iterator2 = fns, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { | ||
var _ref7; | ||
if (_isArray2) { | ||
if (_i2 >= _iterator2.length) break; | ||
_ref7 = _iterator2[_i2++]; | ||
} else { | ||
_i2 = _iterator2.next(); | ||
if (_i2.done) break; | ||
_ref7 = _i2.value; | ||
} | ||
var _fn = _ref7; | ||
_fn.apply(this, args); | ||
} | ||
}; | ||
} |
"use strict"; | ||
exports.__esModule = true; | ||
exports.validatePluginObject = validatePluginObject; | ||
exports.default = void 0; | ||
var _optionAssertions = require("./option-assertions"); | ||
var VALIDATORS = { | ||
name: _optionAssertions.assertString, | ||
manipulateOptions: _optionAssertions.assertFunction, | ||
pre: _optionAssertions.assertFunction, | ||
post: _optionAssertions.assertFunction, | ||
inherits: _optionAssertions.assertFunction, | ||
visitor: assertVisitorMap, | ||
parserOverride: _optionAssertions.assertFunction, | ||
generatorOverride: _optionAssertions.assertFunction | ||
}; | ||
function assertVisitorMap(key, value) { | ||
var obj = (0, _optionAssertions.assertObject)(key, value); | ||
if (obj) { | ||
Object.keys(obj).forEach(function (prop) { | ||
return assertVisitorHandler(prop, obj[prop]); | ||
}); | ||
if (obj.enter || obj.exit) { | ||
throw new Error("." + key + " cannot contain catch-all \"enter\" or \"exit\" handlers. Please target individual nodes."); | ||
} | ||
} | ||
return obj; | ||
} | ||
function assertVisitorHandler(key, value) { | ||
if (value && typeof value === "object") { | ||
Object.keys(value).forEach(function (handler) { | ||
if (handler !== "enter" && handler !== "exit") { | ||
throw new Error(".visitor[\"" + key + "\"] may only have .enter and/or .exit handlers."); | ||
} | ||
}); | ||
} else if (typeof value !== "function") { | ||
throw new Error(".visitor[\"" + key + "\"] must be a function"); | ||
} | ||
return value; | ||
} | ||
function validatePluginObject(obj) { | ||
Object.keys(obj).forEach(function (key) { | ||
var validator = VALIDATORS[key]; | ||
if (validator) validator(key, obj[key]);else throw new Error("." + key + " is not a valid Plugin property"); | ||
}); | ||
return obj; | ||
} | ||
var Plugin = function Plugin(plugin, options, key) { | ||
@@ -59,0 +7,0 @@ this.key = void 0; |
@@ -16,3 +16,3 @@ "use strict"; | ||
var _files = require("./config/loading/files"); | ||
var _files = require("./config/files"); | ||
@@ -19,0 +19,0 @@ exports.resolvePlugin = _files.resolvePlugin; |
@@ -16,2 +16,4 @@ "use strict"; | ||
var _missingPluginHelper = _interopRequireDefault(require("./util/missing-plugin-helper")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -116,7 +118,8 @@ | ||
} catch (err) { | ||
var loc = err.loc; | ||
var loc = err.loc, | ||
missingPlugin = err.missingPlugin; | ||
if (loc) { | ||
err.loc = null; | ||
err.message = (options.filename || "unknown") + ": " + err.message + "\n" + (0, _codeFrame.codeFrameColumns)(code, { | ||
var codeFrame = (0, _codeFrame.codeFrameColumns)(code, { | ||
start: { | ||
@@ -127,2 +130,8 @@ line: loc.line, | ||
}, options); | ||
if (missingPlugin) { | ||
err.message = (options.filename || "unknown") + ": " + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame); | ||
} else { | ||
err.message = (options.filename || "unknown") + ": " + err.message + "\n\n" + codeFrame; | ||
} | ||
} | ||
@@ -129,0 +138,0 @@ |
{ | ||
"name": "@babel/core", | ||
"version": "7.0.0-beta.35", | ||
"version": "7.0.0-beta.36", | ||
"description": "Babel compiler core.", | ||
@@ -26,3 +26,3 @@ "main": "./lib/index.js", | ||
"browser": { | ||
"./lib/config/loading/files/index.js": "./lib/config/loading/files/index-browser.js", | ||
"./lib/config/files/index.js": "./lib/config/files/index-browser.js", | ||
"./lib/transform-file.js": "./lib/transform-file-browser.js", | ||
@@ -32,9 +32,9 @@ "./lib/transform-file-sync.js": "./lib/transform-file-sync-browser.js" | ||
"dependencies": { | ||
"@babel/code-frame": "7.0.0-beta.35", | ||
"@babel/generator": "7.0.0-beta.35", | ||
"@babel/helpers": "7.0.0-beta.35", | ||
"@babel/template": "7.0.0-beta.35", | ||
"@babel/traverse": "7.0.0-beta.35", | ||
"@babel/types": "7.0.0-beta.35", | ||
"babylon": "7.0.0-beta.35", | ||
"@babel/code-frame": "7.0.0-beta.36", | ||
"@babel/generator": "7.0.0-beta.36", | ||
"@babel/helpers": "7.0.0-beta.36", | ||
"@babel/template": "7.0.0-beta.36", | ||
"@babel/traverse": "7.0.0-beta.36", | ||
"@babel/types": "7.0.0-beta.36", | ||
"babylon": "7.0.0-beta.36", | ||
"convert-source-map": "^1.1.0", | ||
@@ -49,5 +49,5 @@ "debug": "^3.0.1", | ||
"devDependencies": { | ||
"@babel/helper-transform-fixture-test-runner": "7.0.0-beta.35", | ||
"@babel/register": "7.0.0-beta.35" | ||
"@babel/helper-transform-fixture-test-runner": "7.0.0-beta.36", | ||
"@babel/register": "7.0.0-beta.36" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
109064
34
2704
1
+ Added@babel/code-frame@7.0.0-beta.36(transitive)
+ Added@babel/generator@7.0.0-beta.36(transitive)
+ Added@babel/helper-function-name@7.0.0-beta.36(transitive)
+ Added@babel/helper-get-function-arity@7.0.0-beta.36(transitive)
+ Added@babel/helpers@7.0.0-beta.36(transitive)
+ Added@babel/template@7.0.0-beta.36(transitive)
+ Added@babel/traverse@7.0.0-beta.36(transitive)
+ Added@babel/types@7.0.0-beta.36(transitive)
+ Addedbabylon@7.0.0-beta.36(transitive)
+ Addedglobals@11.12.0(transitive)
- Removed@babel/code-frame@7.0.0-beta.35(transitive)
- Removed@babel/generator@7.0.0-beta.35(transitive)
- Removed@babel/helper-function-name@7.0.0-beta.35(transitive)
- Removed@babel/helper-get-function-arity@7.0.0-beta.35(transitive)
- Removed@babel/helpers@7.0.0-beta.35(transitive)
- Removed@babel/template@7.0.0-beta.35(transitive)
- Removed@babel/traverse@7.0.0-beta.35(transitive)
- Removed@babel/types@7.0.0-beta.35(transitive)
- Removedbabylon@7.0.0-beta.35(transitive)
- Removedglobals@10.4.0(transitive)
Updated@babel/helpers@7.0.0-beta.36
Updated@babel/types@7.0.0-beta.36
Updatedbabylon@7.0.0-beta.36