Skip to content

Commit 33f356b

Browse files
committed
expose extended parser classes
1 parent 11b3621 commit 33f356b

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

index.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
var acorn = require('acorn')
22
var xtend = require('xtend')
3+
var setPrototypeOf = require('setprototypeof')
34

45
var CJSParser = acorn.Parser
56
.extend(require('./lib/bigint'))
67
.extend(require('./lib/class-fields'))
78
.extend(require('./lib/static-class-features'))
89
.extend(require('./lib/numeric-separator'))
10+
.extend(defaultOptionsPlugin)
911
var ESModulesParser = CJSParser
1012
.extend(require('./lib/export-ns-from'))
1113
.extend(require('./lib/import-meta'))
@@ -19,19 +21,31 @@ function mapOptions (opts) {
1921
}, opts)
2022
}
2123

24+
function defaultOptionsPlugin (P) {
25+
function DefaultOptionsParser (opts, src) {
26+
P.call(this, mapOptions(opts), src)
27+
}
28+
setPrototypeOf(DefaultOptionsParser, P)
29+
DefaultOptionsParser.prototype = P.prototype
30+
return DefaultOptionsParser
31+
}
32+
2233
function getParser (opts) {
2334
if (!opts) opts = {}
2435
return opts.sourceType === 'module' ? ESModulesParser : CJSParser
2536
}
2637

2738
module.exports = exports = xtend(acorn, {
39+
Parser: CJSParser,
40+
ESModulesParser: ESModulesParser,
41+
2842
parse: function parse (src, opts) {
29-
return getParser(opts).parse(src, mapOptions(opts))
43+
return getParser(opts).parse(src, opts)
3044
},
3145
parseExpressionAt: function parseExpressionAt (src, offset, opts) {
32-
return getParser(opts).parseExpressionAt(src, offset, mapOptions(opts))
46+
return getParser(opts).parseExpressionAt(src, offset, opts)
3347
},
3448
tokenizer: function tokenizer (src, opts) {
35-
return getParser(opts).tokenizer(src, mapOptions(opts))
49+
return getParser(opts).tokenizer(src, opts)
3650
}
3751
})

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"dependencies": {
1010
"acorn": "^7.0.0",
1111
"acorn-walk": "^7.0.0",
12+
"setprototypeof": "^1.2.0",
1213
"xtend": "^4.0.2"
1314
},
1415
"devDependencies": {

0 commit comments

Comments
 (0)