From 27f9a331165fca94e0d3ce0865f89bf9517cf564 Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Sun, 13 Jan 2019 15:22:47 -0800 Subject: [PATCH] migrate from `babylon` to `@babel/parser` --- lib/jsdoc/src/astbuilder.js | 17 ++++++++---- package-lock.json | 47 ++++++++------------------------- package.json | 31 ++++++++-------------- test/specs/jsdoc/src/astnode.js | 4 +-- 4 files changed, 36 insertions(+), 63 deletions(-) diff --git a/lib/jsdoc/src/astbuilder.js b/lib/jsdoc/src/astbuilder.js index 3a83e3dd..a99110ec 100644 --- a/lib/jsdoc/src/astbuilder.js +++ b/lib/jsdoc/src/astbuilder.js @@ -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) { diff --git a/package-lock.json b/package-lock.json index 4d3fb1a4..a50031ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index cdc1e4e6..67785de6 100644 --- a/package.json +++ b/package.json @@ -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" + }] } diff --git a/test/specs/jsdoc/src/astnode.js b/test/specs/jsdoc/src/astnode.js index bf53ff9d..ba1e9605 100644 --- a/test/specs/jsdoc/src/astnode.js +++ b/test/specs/jsdoc/src/astnode.js @@ -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