This repository has been archived on 2020-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
Syllabus/themes/piratecare/node_modules/acorn-node/index.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

2020-03-05 04:10:52 +00:00
var acorn = require('acorn')
var xtend = require('xtend')
var CJSParser = acorn.Parser
.extend(require('./lib/bigint'))
.extend(require('./lib/class-fields'))
.extend(require('./lib/static-class-features'))
.extend(require('./lib/numeric-separator'))
.extend(require('./lib/dynamic-import').default)
var ESModulesParser = CJSParser
.extend(require('./lib/export-ns-from'))
.extend(require('./lib/import-meta'))
function mapOptions (opts) {
if (!opts) opts = {}
return xtend({
ecmaVersion: 2020,
allowHashBang: true,
allowReturnOutsideFunction: true
}, opts)
}
function getParser (opts) {
if (!opts) opts = {}
return opts.sourceType === 'module' ? ESModulesParser : CJSParser
}
module.exports = exports = xtend(acorn, {
parse: function parse (src, opts) {
return getParser(opts).parse(src, mapOptions(opts))
},
parseExpressionAt: function parseExpressionAt (src, offset, opts) {
return getParser(opts).parseExpressionAt(src, offset, mapOptions(opts))
},
tokenizer: function tokenizer (src, opts) {
return getParser(opts).tokenizer(src, mapOptions(opts))
}
})