migrate from babylon to @babel/parser

This commit is contained in:
Jeff Williams 2019-01-13 15:22:47 -08:00
parent d3109080ea
commit 27f9a33116
4 changed files with 36 additions and 63 deletions

View File

@ -1,11 +1,12 @@
'use strict';
var babylon = require('babylon');
var babelParser = require('@babel/parser');
var env = require('jsdoc/env');
var logger = require('jsdoc/util/logger');
// exported so we can use them in tests
var parserOptions = exports.parserOptions = {
allowAwaitOutsideFunction: true,
allowImportExportEverywhere: true,
allowReturnOutsideFunction: true,
allowSuperOutsideMethod: true,
@ -15,21 +16,27 @@ var parserOptions = exports.parserOptions = {
'classPrivateMethods',
'classPrivateProperties',
'classProperties',
'decorators2',
['decorators', {
decoratorsBeforeExport: true
}],
'doExpressions',
'dynamicImport',
'estree',
'exportExtensions',
'exportDefaultFrom',
'exportNamespaceFrom',
'functionBind',
'functionSent',
'importMeta',
'jsx',
'logicalAssignment',
'nullishCoalescingOperator',
'numericSeparator',
'objectRestSpread',
'optionalCatchBinding',
'optionalChaining',
'pipelineOperator',
['pipelineOperator', {
proposal: 'minimal'
}],
'throwExpressions'
],
ranges: true,
@ -45,7 +52,7 @@ function parse(source, filename) {
var ast;
try {
ast = babylon.parse(source, parserOptions);
ast = babelParser.parse(source, parserOptions);
// console.log(JSON.stringify(ast, null, 2));
}
catch (e) {

47
package-lock.json generated
View File

@ -69,8 +69,7 @@
"@babel/parser": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
"integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
"dev": true
"integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA=="
},
"@babel/template": {
"version": "7.2.2",
@ -401,11 +400,6 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true
},
"babylon": {
"version": "7.0.0-beta.47",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz",
"integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ=="
},
"bach": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
@ -1767,14 +1761,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -1789,20 +1781,17 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"core-util-is": {
"version": "1.0.2",
@ -1919,8 +1908,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"ini": {
"version": "1.3.5",
@ -1932,7 +1920,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@ -1947,7 +1934,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@ -1955,14 +1941,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@ -1981,7 +1965,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@ -2062,8 +2045,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"object-assign": {
"version": "4.1.1",
@ -2075,7 +2057,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@ -2197,7 +2178,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@ -3454,7 +3434,6 @@
"version": "0.1.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"kind-of": "^3.0.2",
"longest": "^1.0.1",
@ -3779,8 +3758,7 @@
"is-buffer": {
"version": "1.1.6",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"is-builtin-module": {
"version": "1.0.0",
@ -3864,7 +3842,6 @@
"version": "3.2.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@ -3911,8 +3888,7 @@
"longest": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"lru-cache": {
"version": "4.1.3",
@ -4178,8 +4154,7 @@
"repeat-string": {
"version": "1.6.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"require-directory": {
"version": "2.1.1",

View File

@ -1,19 +1,16 @@
{
"name": "jsdoc",
"version": "3.6.0-dev",
"revision": "1547331889428",
"revision": "1547421638304",
"description": "An API documentation generator for JavaScript.",
"keywords": [
"documentation",
"javascript"
],
"keywords": ["documentation", "javascript"],
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/jsdoc3/jsdoc"
},
"dependencies": {
"babylon": "~7.0.0-beta.47",
"@babel/parser": "~7.2.3",
"bluebird": "~3.5.0",
"catharsis": "~0.8.9",
"escape-string-regexp": "~1.0.5",
@ -45,24 +42,18 @@
"jsdoc": "./jsdoc.js"
},
"greenkeeper": {
"ignore": [
"taffydb"
]
"ignore": ["taffydb"]
},
"bugs": "https://github.com/jsdoc3/jsdoc/issues",
"author": {
"name": "Michael Mathews",
"email": "micmath@gmail.com"
},
"contributors": [
{
"url": "https://github.com/jsdoc3/jsdoc/graphs/contributors"
}
],
"maintainers": [
{
"name": "Jeff Williams",
"email": "jeffrey.l.williams@gmail.com"
}
]
"contributors": [{
"url": "https://github.com/jsdoc3/jsdoc/graphs/contributors"
}],
"maintainers": [{
"name": "Jeff Williams",
"email": "jeffrey.l.williams@gmail.com"
}]
}

View File

@ -3,12 +3,12 @@
describe('jsdoc/src/astNode', function() {
var astBuilder = require('jsdoc/src/astbuilder');
var astNode = require('jsdoc/src/astnode');
var babylon = require('babylon');
var babelParser = require('@babel/parser');
var env = require('jsdoc/env');
var Syntax = require('jsdoc/src/syntax').Syntax;
function parse(str) {
return babylon.parse(str, astBuilder.parserOptions).program.body[0];
return babelParser.parse(str, astBuilder.parserOptions).program.body[0];
}
// create the AST nodes we'll be testing