UNPKG

canonical

Version:

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

71 lines (48 loc) 5.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _assign = require("babel-runtime/core-js/object/assign"); var _assign2 = _interopRequireDefault(_assign); exports.default = function (p, context) { if (context == null) throw new Error("need context to parse properly"); var parserOptions = context.parserOptions; var parserPath = context.parserPath; if (!parserPath) throw new Error("parserPath is required!"); // hack: espree blows up with frozen options parserOptions = (0, _assign2.default)({}, parserOptions); parserOptions.ecmaFeatures = (0, _assign2.default)({}, parserOptions.ecmaFeatures); // require the parser relative to the main module (i.e., ESLint) var parser = requireParser(parserPath); return parser.parse(_fs2.default.readFileSync(p, { encoding: 'utf8' }), parserOptions); }; var _fs = require("fs"); var _fs2 = _interopRequireDefault(_fs); var _module = require("module"); var _module2 = _interopRequireDefault(_module); var _path = require("path"); var path = _interopRequireWildcard(_path); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // borrowed from babel-eslint function createModule(filename) { var mod = new _module2.default(filename); mod.filename = filename; mod.paths = _module2.default._nodeModulePaths(path.dirname(filename)); return mod; } function requireParser(p) { try { // attempt to get espree relative to eslint var eslintPath = require.resolve('eslint'); var eslintModule = createModule(eslintPath); return require(_module2.default._resolveFilename(p, eslintModule)); } catch (err) {/* ignore */} try { // try relative to entry point return require.main.require(p); } catch (err) {} /* ignore */ // finally, try from here return require(p); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvcGFyc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztrQkFFZSxVQUFVLENBQVYsRUFBYSxPQUFiLEVBQXNCOztBQUVuQyxNQUFJLFdBQVcsSUFBWCxFQUFpQixNQUFNLElBQUksS0FBSixDQUFVLGdDQUFWLENBQU4sQ0FBckI7O01BRU0sZ0JBQThCLFFBQTlCLGNBSjZCO01BSWQsYUFBZSxRQUFmLFdBSmM7OztBQU1uQyxNQUFJLENBQUMsVUFBRCxFQUFhLE1BQU0sSUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTixDQUFqQjs7O0FBTm1DLGVBU25DLEdBQWdCLHNCQUFjLEVBQWQsRUFBa0IsYUFBbEIsQ0FBaEIsQ0FUbUM7QUFVbkMsZ0JBQWMsWUFBZCxHQUE2QixzQkFBYyxFQUFkLEVBQWtCLGNBQWMsWUFBZCxDQUEvQzs7O0FBVm1DLE1BYTdCLFNBQVMsY0FBYyxVQUFkLENBQVQsQ0FiNkI7O0FBZW5DLFNBQU8sT0FBTyxLQUFQLENBQ0wsYUFBRyxZQUFILENBQWdCLENBQWhCLEVBQW1CLEVBQUMsVUFBVSxNQUFWLEVBQXBCLENBREssRUFFTCxhQUZLLENBQVAsQ0FmbUM7Q0FBdEI7Ozs7Ozs7Ozs7OztJQXFCSDs7Ozs7OztBQUdaLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQztBQUM5QixNQUFJLE1BQU0scUJBQVcsUUFBWCxDQUFOLENBRDBCO0FBRTlCLE1BQUksUUFBSixHQUFlLFFBQWYsQ0FGOEI7QUFHOUIsTUFBSSxLQUFKLEdBQVksaUJBQU8sZ0JBQVAsQ0FBd0IsS0FBSyxPQUFMLENBQWEsUUFBYixDQUF4QixDQUFaLENBSDhCO0FBSTlCLFNBQU8sR0FBUCxDQUo4QjtDQUFoQzs7QUFPQSxTQUFTLGFBQVQsQ0FBdUIsQ0FBdkIsRUFBMEI7QUFDeEIsTUFBSTs7QUFFRixRQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLFFBQWhCLENBQWIsQ0FGSjtBQUdGLFFBQU0sZUFBZSxhQUFhLFVBQWIsQ0FBZixDQUhKO0FBSUYsV0FBTyxRQUFRLGlCQUFPLGdCQUFQLENBQXdCLENBQXhCLEVBQTJCLFlBQTNCLENBQVIsQ0FBUCxDQUpFO0dBQUosQ0FLRSxPQUFNLEdBQU4sRUFBVyxjQUFYOztBQUVGLE1BQUk7O0FBRUYsV0FBTyxRQUFRLElBQVIsQ0FBYSxPQUFiLENBQXFCLENBQXJCLENBQVAsQ0FGRTtHQUFKLENBR0UsT0FBTSxHQUFOLEVBQVc7OztBQUFYLFNBR0ssUUFBUSxDQUFSLENBQVAsQ0Fkd0I7Q0FBMUIiLCJmaWxlIjoiY29yZS9wYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHAsIGNvbnRleHQpIHtcblxuICBpZiAoY29udGV4dCA9PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoXCJuZWVkIGNvbnRleHQgdG8gcGFyc2UgcHJvcGVybHlcIilcblxuICBsZXQgeyBwYXJzZXJPcHRpb25zLCBwYXJzZXJQYXRoIH0gPSBjb250ZXh0XG5cbiAgaWYgKCFwYXJzZXJQYXRoKSB0aHJvdyBuZXcgRXJyb3IoXCJwYXJzZXJQYXRoIGlzIHJlcXVpcmVkIVwiKVxuXG4gIC8vIGhhY2s6IGVzcHJlZSBibG93cyB1cCB3aXRoIGZyb3plbiBvcHRpb25zXG4gIHBhcnNlck9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBwYXJzZXJPcHRpb25zKVxuICBwYXJzZXJPcHRpb25zLmVjbWFGZWF0dXJlcyA9IE9iamVjdC5hc3NpZ24oe30sIHBhcnNlck9wdGlvbnMuZWNtYUZlYXR1cmVzKVxuXG4gIC8vIHJlcXVpcmUgdGhlIHBhcnNlciByZWxhdGl2ZSB0byB0aGUgbWFpbiBtb2R1bGUgKGkuZS4sIEVTTGludClcbiAgY29uc3QgcGFyc2VyID0gcmVxdWlyZVBhcnNlcihwYXJzZXJQYXRoKVxuXG4gIHJldHVybiBwYXJzZXIucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKHAsIHtlbmNvZGluZzogJ3V0ZjgnfSksXG4gICAgcGFyc2VyT3B0aW9ucylcbn1cblxuaW1wb3J0IE1vZHVsZSBmcm9tICdtb2R1bGUnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5cbi8vIGJvcnJvd2VkIGZyb20gYmFiZWwtZXNsaW50XG5mdW5jdGlvbiBjcmVhdGVNb2R1bGUoZmlsZW5hbWUpIHtcbiAgdmFyIG1vZCA9IG5ldyBNb2R1bGUoZmlsZW5hbWUpXG4gIG1vZC5maWxlbmFtZSA9IGZpbGVuYW1lXG4gIG1vZC5wYXRocyA9IE1vZHVsZS5fbm9kZU1vZHVsZVBhdGhzKHBhdGguZGlybmFtZShmaWxlbmFtZSkpXG4gIHJldHVybiBtb2Rcbn1cblxuZnVuY3Rpb24gcmVxdWlyZVBhcnNlcihwKSB7XG4gIHRyeSB7XG4gICAgLy8gYXR0ZW1wdCB0byBnZXQgZXNwcmVlIHJlbGF0aXZlIHRvIGVzbGludFxuICAgIGNvbnN0IGVzbGludFBhdGggPSByZXF1aXJlLnJlc29sdmUoJ2VzbGludCcpXG4gICAgY29uc3QgZXNsaW50TW9kdWxlID0gY3JlYXRlTW9kdWxlKGVzbGludFBhdGgpXG4gICAgcmV0dXJuIHJlcXVpcmUoTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWUocCwgZXNsaW50TW9kdWxlKSlcbiAgfSBjYXRjaChlcnIpIHsgLyogaWdub3JlICovIH1cblxuICB0cnkge1xuICAgIC8vIHRyeSByZWxhdGl2ZSB0byBlbnRyeSBwb2ludFxuICAgIHJldHVybiByZXF1aXJlLm1haW4ucmVxdWlyZShwKVxuICB9IGNhdGNoKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuXG4gIC8vIGZpbmFsbHksIHRyeSBmcm9tIGhlcmVcbiAgcmV0dXJuIHJlcXVpcmUocClcbn1cbiJdfQ==