UNPKG

canonical

Version:

Canonical code style linter and formatter for JavaScript, SCSS and CSS.

52 lines (36 loc) 4.42 kB
'use strict'; var _Object$assign = require('babel-runtime/core-js/object/assign')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = parse; var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var defaultParseOptions = { ecmaVersion: 6, // for espree, esprima. not needed for babylon sourceType: 'module' }; function parse(path) { var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; var _ref$settings = _ref.settings; var settings = _ref$settings === undefined ? {} : _ref$settings; var _ref$ecmaFeatures = _ref.ecmaFeatures; var ecmaFeatures = _ref$ecmaFeatures === undefined ? {} : _ref$ecmaFeatures; var parser = settings['import/parser'] || 'babylon'; var _require = require(parser); var parse = _require.parse; var options = _Object$assign({}, defaultParseOptions, settings['import/parse-options']); // detect and handle "jsx" ecmaFeature if (ecmaFeatures && parser === 'babylon') { var jsx = ecmaFeatures.jsx; if (jsx && (!options.plugins || options.plugins.indexOf('jsx') < 0)) { if (!options.plugins) options.plugins = ['jsx'];else options.plugins = options.plugins.concat('jsx'); } } var ast = parse(_fs2['default'].readFileSync(path, { encoding: 'utf8' }), options); // bablyon returns top-level "File" node. return ast.type === 'File' ? ast.program : ast; } module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3BhcnNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztxQkFPd0IsS0FBSzs7a0JBUGQsSUFBSTs7OztBQUVuQixJQUFNLG1CQUFtQixHQUFHO0FBQzFCLGFBQVcsRUFBRSxDQUFDO0FBQ2QsWUFBVSxFQUFFLFFBQVE7Q0FDckIsQ0FBQTs7QUFFYyxTQUFTLEtBQUssQ0FBQyxJQUFJLEVBQTZDO21FQUFKLEVBQUU7OzJCQUF2QyxRQUFRO01BQVIsUUFBUSxpQ0FBRyxFQUFFOytCQUFFLFlBQVk7TUFBWixZQUFZLHFDQUFHLEVBQUU7O0FBQ3BFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxTQUFTLENBQUE7O2lCQUVuQyxPQUFPLENBQUMsTUFBTSxDQUFDOztBQUEzQixNQUFFLEtBQUssWUFBTCxLQUFLLENBQW9CO0FBQzNCLE1BQUEsT0FBTyxHQUFHLGVBQWUsRUFBRSxFQUNGLG1CQUFtQixFQUNuQixRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFBOzs7QUFHaEUsTUFBSSxZQUFZLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtRQUNoQyxHQUFHLEdBQUssWUFBWSxDQUFwQixHQUFHOztBQUNYLFFBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUEsQUFBQyxFQUFFO0FBQ25FLFVBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQSxLQUMxQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBQ3JEO0dBQ0Y7O0FBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFFLGdCQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQUMsRUFDekMsT0FBTyxDQUNSLENBQUE7OztBQUdsQixTQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFBO0NBQy9DIiwiZmlsZSI6InBhcnNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuXG5jb25zdCBkZWZhdWx0UGFyc2VPcHRpb25zID0ge1xuICBlY21hVmVyc2lvbjogNiwgIC8vIGZvciBlc3ByZWUsIGVzcHJpbWEuIG5vdCBuZWVkZWQgZm9yIGJhYnlsb25cbiAgc291cmNlVHlwZTogJ21vZHVsZScsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcnNlKHBhdGgsIHsgc2V0dGluZ3MgPSB7fSwgZWNtYUZlYXR1cmVzID0ge30gfSA9IHt9KSB7XG4gIGNvbnN0IHBhcnNlciA9IHNldHRpbmdzWydpbXBvcnQvcGFyc2VyJ10gfHwgJ2JhYnlsb24nXG5cbiAgY29uc3QgeyBwYXJzZSB9ID0gcmVxdWlyZShwYXJzZXIpXG4gICAgICAsIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKCB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgZGVmYXVsdFBhcnNlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgc2V0dGluZ3NbJ2ltcG9ydC9wYXJzZS1vcHRpb25zJ10pXG5cbiAgLy8gZGV0ZWN0IGFuZCBoYW5kbGUgXCJqc3hcIiBlY21hRmVhdHVyZVxuICBpZiAoZWNtYUZlYXR1cmVzICYmIHBhcnNlciA9PT0gJ2JhYnlsb24nKSB7XG4gICAgY29uc3QgeyBqc3ggfSA9IGVjbWFGZWF0dXJlc1xuICAgIGlmIChqc3ggJiYgKCFvcHRpb25zLnBsdWdpbnMgfHwgb3B0aW9ucy5wbHVnaW5zLmluZGV4T2YoJ2pzeCcpIDwgMCkpIHtcbiAgICAgIGlmICghb3B0aW9ucy5wbHVnaW5zKSBvcHRpb25zLnBsdWdpbnMgPSBbJ2pzeCddXG4gICAgICBlbHNlIG9wdGlvbnMucGx1Z2lucyA9IG9wdGlvbnMucGx1Z2lucy5jb25jYXQoJ2pzeCcpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgYXN0ID0gcGFyc2UoIGZzLnJlYWRGaWxlU3luYyhwYXRoLCB7ZW5jb2Rpbmc6ICd1dGY4J30pXG4gICAgICAgICAgICAgICAgICAgLCBvcHRpb25zXG4gICAgICAgICAgICAgICAgICAgKVxuXG4gIC8vIGJhYmx5b24gcmV0dXJucyB0b3AtbGV2ZWwgXCJGaWxlXCIgbm9kZS5cbiAgcmV0dXJuIGFzdC50eXBlID09PSAnRmlsZScgPyBhc3QucHJvZ3JhbSA6IGFzdFxufVxuIl19