diff --git a/lib/parser.js b/lib/parser.js index 77042d4..70db326 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -1,5 +1,5 @@ -var babylon = require('babylon'); -var debug = require('./debug'); +var babylon = require("@babel/parser"); +var debug = require("./debug"); /** * Parses the specified src string with babylon, returning the resulting AST @@ -13,8 +13,8 @@ exports.parse = function(src, filePath) { debug(`parsing ${filePath}`); try { return attempt( - () => _parse(src, filePath, 'script'), - () => _parse(src, filePath, 'module') + () => _parse(src, filePath, "script"), + () => _parse(src, filePath, "module") ); } catch (err) { let ctx = getErrorContext(err, src); @@ -38,17 +38,30 @@ function _parse(src, filePath, sourceType) { allowImportExportEverywhere: true, sourceType: sourceType, sourceFilename: filePath, - plugins: ['jsx', 'flow', 'doExpressions', 'objectRestSpread', 'decorators', - 'classProperties', 'exportExtensions', 'asyncGenerators', 'functionBind', - 'functionSent', 'dynamicImport'] + plugins: [ + "jsx", + "flow", + "doExpressions", + "objectRestSpread", + "decorators-legacy", + "classProperties", + "exportExtensions", + "asyncGenerators", + "functionBind", + "exportNamespaceFrom", + "functionSent", + "dynamicImport", + "nullishCoalescingOperator", + "optionalChaining" + ] }).program; } function getErrorContext(err, src) { - if (!err.loc || !err.loc.line || err.loc.column >= 100) return ''; + if (!err.loc || !err.loc.line || err.loc.column >= 100) return ""; - var line = src.split('\n')[err.loc.line - 1]; - var caret = ' '.repeat(err.loc.column) + '^'; + var line = src.split("\n")[err.loc.line - 1]; + var caret = " ".repeat(err.loc.column) + "^"; return `\n${line}\n${caret}`; } diff --git a/package.json b/package.json index 319b456..0e708bb 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "url": "https://github.com/danielstjules/jsinspect.git" }, "dependencies": { - "babylon": "6.16.1", + "@babel/parser": "^7.0.0-beta.49", "chalk": "^2.1.0", "commander": "^2.11.0", "filepaths": "0.3.0", @@ -31,7 +31,7 @@ "concat-stream": "^1.5.0", "dirmap": "^0.0.2", "expect.js": "^0.3.1", - "mocha": "^3.5.0" + "mocha": "^5.2.0" }, "bin": { "jsinspect": "./bin/jsinspect"