es6-module-crosspiler
Advanced tools
Comparing version 0.1.0 to 0.2.0
var astUtils = require('ast-util') | ||
var memo = require('memorizer') | ||
@@ -7,3 +6,2 @@ var recast = require('recast') | ||
var types = recast.types | ||
var n = types.namedTypes | ||
var b = types.builders | ||
@@ -67,3 +65,3 @@ | ||
node.arguments[0].value = rename | ||
renamed[value] = dependencies[value] | ||
renamed[rename] = dependencies[value] | ||
}) | ||
@@ -78,3 +76,3 @@ return this | ||
Module.prototype.defaultifyRequires = function () { | ||
var dependencies = this.dependencies | ||
var self = this | ||
types.visit(this.ast.program, { | ||
@@ -88,3 +86,3 @@ visitFunction: function (path) { | ||
var id = path.node.arguments[0].value | ||
var dep = dependencies[id] | ||
var dep = self.lookup(id) | ||
if (dep && dep.type === 'module' && dep.default) { | ||
@@ -91,0 +89,0 @@ path.replace(b.memberExpression( |
@@ -33,3 +33,3 @@ | ||
node.source.value = rename | ||
renamed[value] = dependencies[value] | ||
renamed[rename] = dependencies[value] | ||
}) | ||
@@ -45,3 +45,2 @@ return this | ||
Module.prototype.buildRequires = function () { | ||
var dependencies = this.dependencies | ||
// we unshift all the declarations at once | ||
@@ -63,5 +62,4 @@ // to keep ordering the same | ||
// to do: also check if it's renamed | ||
if (node.kind === 'default' | ||
&& dependencies[value] | ||
&& dependencies[value].type === 'commonjs') { | ||
var dep = this.lookup(value) || {} | ||
if (node.kind === 'default' && dep.type === 'commonjs') { | ||
var name = node.specifiers[0].id.name | ||
@@ -100,6 +98,5 @@ return declarations.push(buildRequireDeclaration(name, value)) | ||
Module.prototype.buildReferences = function () { | ||
var dependencies = this.dependencies | ||
var lookup = Object.create(null) | ||
// lookup[var] = { varname, id} | ||
// lookup[var] = { varname, id } | ||
this.imports.forEach(function (node) { | ||
@@ -110,3 +107,5 @@ var varname = node._varname | ||
node.specifiers.forEach(function (specifier) { | ||
var id = specifier.id.name | ||
var id = node.kind === 'default' | ||
? 'default' | ||
: specifier.id.name | ||
var name = specifier.name | ||
@@ -113,0 +112,0 @@ ? specifier.name.name |
@@ -5,4 +5,2 @@ | ||
var recast = require('recast') | ||
var types = recast.types | ||
var n = types.namedTypes | ||
@@ -17,5 +15,14 @@ module.exports = Module | ||
Module.infer = function (string) { | ||
Module.infer = function (string, useRegExp) { | ||
if (useRegExp) { | ||
var isModule = /\bexport | import |/.test(string) | ||
return { | ||
type: isModule ? 'module' : 'commonjs', | ||
default: isModule && /\bexport *default */.test(string), | ||
renames: Object.create(null), | ||
dependencies: Object.create(null), | ||
} | ||
} | ||
var ast = Module.parse(string) | ||
mod = new Module(ast) | ||
var mod = new Module(ast) | ||
mod.type | ||
@@ -64,2 +71,6 @@ mod.default | ||
Module.prototype.lookup = function (name) { | ||
return this.dependencies[name] || this.renamed[name] | ||
} | ||
/** | ||
@@ -66,0 +77,0 @@ * Check whether a module is an ES6 module |
{ | ||
"name": "es6-module-crosspiler", | ||
"description": "An ES6 and CommonJS cross-compatible transpiler", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "Jonathan Ong", |
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
20261
464