Skip to content

Commit

Permalink
remove .parse() and .infer()
Browse files Browse the repository at this point in the history
pointless
  • Loading branch information
jonathanong committed Aug 21, 2014
1 parent 02263ab commit aeb0668
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 41 deletions.
1 change: 1 addition & 0 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

module.exports = require('./module')
require('./imports')
require('./exports')
Expand Down
32 changes: 2 additions & 30 deletions lib/module.js
Original file line number Diff line number Diff line change
@@ -1,45 +1,17 @@

var profile = require('debug')('es6-module-crosspiler:profile')
var esprima = require('esprima')
var memo = require('memorizer')
var recast = require('recast')

module.exports = Module

// convenience parser
Module.parse = function (string, options) {
options = options || {}
options.esprima = options.esprima || esprima
return recast.parse(string, options)
}

Module.infer = function (string, useRegExp) {
if (useRegExp) {
// faster if you don't have an AST,
// but much less robust
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)
var mod = new Module(ast)
mod.type
mod.default
// we don't need to keep the AST in memory
mod.ast = null
return mod
}

// for ast = x.transform(ast) recast usage
Module.transform = function (ast, options) {
return new Module(ast, options).transform()
}

// get the dependency names of a module
// to do: think of a good name for a property
// instead of a constructor method
Module.dependenciesOf = function (mod) {
// if it's an AST
if (!(mod instanceof Module)) mod = new Module(mod)
Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"debug": "*",
"memorizer": "1",
"ast-util": "0",
"esprima": "*",
"recast": "0"
},
"devDependencies": {
Expand Down
4 changes: 3 additions & 1 deletion test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ vmExports = 'var exports = {}'
vmRequire = 'function require() { return {} }'

read = function read(name) {
return Module.parse(fixture(name))
return recast.parse(fixture(name), {
esprima: esprima
})
}

fixture = function fixture(name) {
Expand Down
9 changes: 0 additions & 9 deletions test/unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,6 @@ describe('.default', function () {
})
})

describe('.infer()', function () {
it('export-default', function () {
var mod = Module.infer(fixture('export-default'))
assert(mod.default)
var mod = Module.infer(fixture('export-default'), true)
assert(mod.default)
})
})

describe('.renameImports()', function () {
it('import-bare', function () {
var ast = read('import-bare')
Expand Down

0 comments on commit aeb0668

Please sign in to comment.