@babel/helper-module-imports
Advanced tools
Comparing version 7.0.0-beta.43 to 7.0.0-beta.44
@@ -9,5 +9,5 @@ "use strict"; | ||
function _assert() { | ||
const data = _interopRequireDefault(require("assert")); | ||
var data = _interopRequireDefault(require("assert")); | ||
_assert = function () { | ||
_assert = function _assert() { | ||
return data; | ||
@@ -20,5 +20,5 @@ }; | ||
function t() { | ||
const data = _interopRequireWildcard(require("@babel/types")); | ||
var data = _interopRequireWildcard(require("@babel/types")); | ||
t = function () { | ||
t = function t() { | ||
return data; | ||
@@ -34,4 +34,4 @@ }; | ||
class ImportBuilder { | ||
constructor(importedSource, scope, file) { | ||
var ImportBuilder = function () { | ||
function ImportBuilder(importedSource, scope, file) { | ||
this._statements = []; | ||
@@ -46,3 +46,5 @@ this._resultName = null; | ||
done() { | ||
var _proto = ImportBuilder.prototype; | ||
_proto.done = function done() { | ||
return { | ||
@@ -52,19 +54,23 @@ statements: this._statements, | ||
}; | ||
} | ||
}; | ||
import() { | ||
_proto.import = function _import() { | ||
this._statements.push(t().importDeclaration([], t().stringLiteral(this._importedSource))); | ||
return this; | ||
} | ||
}; | ||
require() { | ||
_proto.require = function require() { | ||
this._statements.push(t().expressionStatement(t().callExpression(t().identifier("require"), [t().stringLiteral(this._importedSource)]))); | ||
return this; | ||
} | ||
}; | ||
namespace(name = "namespace") { | ||
_proto.namespace = function namespace(name) { | ||
if (name === void 0) { | ||
name = "namespace"; | ||
} | ||
name = this._scope.generateUidIdentifier(name); | ||
const statement = this._statements[this._statements.length - 1]; | ||
var statement = this._statements[this._statements.length - 1]; | ||
(0, _assert().default)(statement.type === "ImportDeclaration"); | ||
@@ -75,7 +81,7 @@ (0, _assert().default)(statement.specifiers.length === 0); | ||
return this; | ||
} | ||
}; | ||
default(name) { | ||
_proto.default = function _default(name) { | ||
name = this._scope.generateUidIdentifier(name); | ||
const statement = this._statements[this._statements.length - 1]; | ||
var statement = this._statements[this._statements.length - 1]; | ||
(0, _assert().default)(statement.type === "ImportDeclaration"); | ||
@@ -86,8 +92,8 @@ (0, _assert().default)(statement.specifiers.length === 0); | ||
return this; | ||
} | ||
}; | ||
named(name, importName) { | ||
_proto.named = function named(name, importName) { | ||
if (importName === "default") return this.default(name); | ||
name = this._scope.generateUidIdentifier(name); | ||
const statement = this._statements[this._statements.length - 1]; | ||
var statement = this._statements[this._statements.length - 1]; | ||
(0, _assert().default)(statement.type === "ImportDeclaration"); | ||
@@ -98,7 +104,7 @@ (0, _assert().default)(statement.specifiers.length === 0); | ||
return this; | ||
} | ||
}; | ||
var(name) { | ||
_proto.var = function _var(name) { | ||
name = this._scope.generateUidIdentifier(name); | ||
let statement = this._statements[this._statements.length - 1]; | ||
var statement = this._statements[this._statements.length - 1]; | ||
@@ -115,14 +121,14 @@ if (statement.type !== "ExpressionStatement") { | ||
return this; | ||
} | ||
}; | ||
defaultInterop() { | ||
_proto.defaultInterop = function defaultInterop() { | ||
return this._interop(this._file.addHelper("interopRequireDefault")); | ||
} | ||
}; | ||
wildcardInterop() { | ||
_proto.wildcardInterop = function wildcardInterop() { | ||
return this._interop(this._file.addHelper("interopRequireWildcard")); | ||
} | ||
}; | ||
_interop(callee) { | ||
const statement = this._statements[this._statements.length - 1]; | ||
_proto._interop = function _interop(callee) { | ||
var statement = this._statements[this._statements.length - 1]; | ||
@@ -139,6 +145,6 @@ if (statement.type === "ExpressionStatement") { | ||
return this; | ||
} | ||
}; | ||
prop(name) { | ||
const statement = this._statements[this._statements.length - 1]; | ||
_proto.prop = function prop(name) { | ||
var statement = this._statements[this._statements.length - 1]; | ||
@@ -155,10 +161,11 @@ if (statement.type === "ExpressionStatement") { | ||
return this; | ||
} | ||
}; | ||
read(name) { | ||
_proto.read = function read(name) { | ||
this._resultName = t().memberExpression(this._resultName, t().identifier(name)); | ||
} | ||
}; | ||
} | ||
return ImportBuilder; | ||
}(); | ||
exports.default = ImportBuilder; |
@@ -9,5 +9,5 @@ "use strict"; | ||
function _assert() { | ||
const data = _interopRequireDefault(require("assert")); | ||
var data = _interopRequireDefault(require("assert")); | ||
_assert = function () { | ||
_assert = function _assert() { | ||
return data; | ||
@@ -20,5 +20,5 @@ }; | ||
function t() { | ||
const data = _interopRequireWildcard(require("@babel/types")); | ||
var data = _interopRequireWildcard(require("@babel/types")); | ||
t = function () { | ||
t = function t() { | ||
return data; | ||
@@ -38,4 +38,4 @@ }; | ||
class ImportInjector { | ||
constructor(path, importedSource, opts) { | ||
var ImportInjector = function () { | ||
function ImportInjector(path, importedSource, opts) { | ||
this._defaultOpts = { | ||
@@ -49,3 +49,5 @@ importedSource: null, | ||
}; | ||
const programPath = path.find(p => p.isProgram()); | ||
var programPath = path.find(function (p) { | ||
return p.isProgram(); | ||
}); | ||
this._programPath = programPath; | ||
@@ -57,25 +59,31 @@ this._programScope = programPath.scope; | ||
addDefault(importedSourceIn, opts) { | ||
var _proto = ImportInjector.prototype; | ||
_proto.addDefault = function addDefault(importedSourceIn, opts) { | ||
return this.addNamed("default", importedSourceIn, opts); | ||
} | ||
}; | ||
addNamed(importName, importedSourceIn, opts) { | ||
_proto.addNamed = function addNamed(importName, importedSourceIn, opts) { | ||
(0, _assert().default)(typeof importName === "string"); | ||
return this._generateImport(this._applyDefaults(importedSourceIn, opts), importName); | ||
} | ||
}; | ||
addNamespace(importedSourceIn, opts) { | ||
_proto.addNamespace = function addNamespace(importedSourceIn, opts) { | ||
return this._generateImport(this._applyDefaults(importedSourceIn, opts), null); | ||
} | ||
}; | ||
addSideEffect(importedSourceIn, opts) { | ||
_proto.addSideEffect = function addSideEffect(importedSourceIn, opts) { | ||
return this._generateImport(this._applyDefaults(importedSourceIn, opts), false); | ||
} | ||
}; | ||
_applyDefaults(importedSource, opts, isInit = false) { | ||
const optsList = []; | ||
_proto._applyDefaults = function _applyDefaults(importedSource, opts, isInit) { | ||
if (isInit === void 0) { | ||
isInit = false; | ||
} | ||
var optsList = []; | ||
if (typeof importedSource === "string") { | ||
optsList.push({ | ||
importedSource | ||
importedSource: importedSource | ||
}); | ||
@@ -88,7 +96,8 @@ optsList.push(opts); | ||
const newOpts = Object.assign({}, this._defaultOpts); | ||
var newOpts = Object.assign({}, this._defaultOpts); | ||
for (const opts of optsList) { | ||
if (!opts) continue; | ||
Object.keys(newOpts).forEach(key => { | ||
var _loop = function _loop() { | ||
var opts = optsList[_i]; | ||
if (!opts) return "continue"; | ||
Object.keys(newOpts).forEach(function (key) { | ||
if (opts[key] !== undefined) newOpts[key] = opts[key]; | ||
@@ -101,26 +110,30 @@ }); | ||
} | ||
}; | ||
for (var _i = 0; _i < optsList.length; _i++) { | ||
var _ret = _loop(); | ||
if (_ret === "continue") continue; | ||
} | ||
return newOpts; | ||
} | ||
}; | ||
_generateImport(opts, importName) { | ||
const isDefault = importName === "default"; | ||
const isNamed = !!importName && !isDefault; | ||
const isNamespace = importName === null; | ||
const { | ||
importedSource, | ||
importedType, | ||
importedInterop, | ||
importingInterop, | ||
ensureLiveReference, | ||
ensureNoContext, | ||
nameHint, | ||
blockHoist | ||
} = opts; | ||
let name = nameHint || importName; | ||
const isMod = (0, _isModule.default)(this._programPath); | ||
const isModuleForNode = isMod && importingInterop === "node"; | ||
const isModuleForBabel = isMod && importingInterop === "babel"; | ||
const builder = new _importBuilder.default(importedSource, this._programScope, this._file); | ||
_proto._generateImport = function _generateImport(opts, importName) { | ||
var isDefault = importName === "default"; | ||
var isNamed = !!importName && !isDefault; | ||
var isNamespace = importName === null; | ||
var importedSource = opts.importedSource, | ||
importedType = opts.importedType, | ||
importedInterop = opts.importedInterop, | ||
importingInterop = opts.importingInterop, | ||
ensureLiveReference = opts.ensureLiveReference, | ||
ensureNoContext = opts.ensureNoContext, | ||
nameHint = opts.nameHint, | ||
blockHoist = opts.blockHoist; | ||
var name = nameHint || importName; | ||
var isMod = (0, _isModule.default)(this._programPath); | ||
var isModuleForNode = isMod && importingInterop === "node"; | ||
var isModuleForBabel = isMod && importingInterop === "babel"; | ||
var builder = new _importBuilder.default(importedSource, this._programScope, this._file); | ||
@@ -140,7 +153,7 @@ if (importedType === "es6") { | ||
} else if (importedType !== "commonjs") { | ||
throw new Error(`Unexpected interopType "${importedType}"`); | ||
throw new Error("Unexpected interopType \"" + importedType + "\""); | ||
} else if (importedInterop === "babel") { | ||
if (isModuleForNode) { | ||
name = name !== "default" ? name : importedSource; | ||
const es6Default = `${importedSource}$es6Default`; | ||
var es6Default = importedSource + "$es6Default"; | ||
builder.import(); | ||
@@ -257,9 +270,8 @@ | ||
} else { | ||
throw new Error(`Unknown importedInterop "${importedInterop}".`); | ||
throw new Error("Unknown importedInterop \"" + importedInterop + "\"."); | ||
} | ||
const { | ||
statements, | ||
resultName | ||
} = builder.done(); | ||
var _builder$done = builder.done(), | ||
statements = _builder$done.statements, | ||
resultName = _builder$done.resultName; | ||
@@ -273,11 +285,15 @@ this._insertStatements(statements, blockHoist); | ||
return resultName; | ||
} | ||
}; | ||
_insertStatements(statements, blockHoist = 3) { | ||
statements.forEach(node => { | ||
_proto._insertStatements = function _insertStatements(statements, blockHoist) { | ||
if (blockHoist === void 0) { | ||
blockHoist = 3; | ||
} | ||
statements.forEach(function (node) { | ||
node._blockHoist = blockHoist; | ||
}); | ||
const targetPath = this._programPath.get("body").filter(p => { | ||
const val = p.node._blockHoist; | ||
var targetPath = this._programPath.get("body").filter(function (p) { | ||
var val = p.node._blockHoist; | ||
return Number.isFinite(val) && val < 4; | ||
@@ -291,6 +307,7 @@ })[0]; | ||
} | ||
} | ||
}; | ||
} | ||
return ImportInjector; | ||
}(); | ||
exports.default = ImportInjector; |
@@ -12,3 +12,3 @@ "use strict"; | ||
enumerable: true, | ||
get: function () { | ||
get: function get() { | ||
return _importInjector.default; | ||
@@ -19,3 +19,3 @@ } | ||
enumerable: true, | ||
get: function () { | ||
get: function get() { | ||
return _isModule.default; | ||
@@ -22,0 +22,0 @@ } |
@@ -9,8 +9,6 @@ "use strict"; | ||
function isModule(path) { | ||
const { | ||
sourceType | ||
} = path.node; | ||
var sourceType = path.node.sourceType; | ||
if (sourceType !== "module" && sourceType !== "script") { | ||
throw path.buildCodeFrameError(`Unknown sourceType "${sourceType}", cannot transform.`); | ||
throw path.buildCodeFrameError("Unknown sourceType \"" + sourceType + "\", cannot transform."); | ||
} | ||
@@ -17,0 +15,0 @@ |
{ | ||
"name": "@babel/helper-module-imports", | ||
"version": "7.0.0-beta.43", | ||
"version": "7.0.0-beta.44", | ||
"description": "Babel helper functions for inserting module loads", | ||
@@ -11,8 +11,8 @@ "author": "Logan Smyth <loganfsmyth@gmail.com>", | ||
"dependencies": { | ||
"@babel/types": "7.0.0-beta.43", | ||
"@babel/types": "7.0.0-beta.44", | ||
"lodash": "^4.2.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "7.0.0-beta.43" | ||
"@babel/core": "7.0.0-beta.44" | ||
} | ||
} |
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
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
18769
422
+ Added@babel/types@7.0.0-beta.44(transitive)
- Removed@babel/types@7.0.0-beta.43(transitive)
Updated@babel/types@7.0.0-beta.44