UNPKG

canonical

Version:

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

35 lines (25 loc) 3.4 kB
'use strict'; var _getExports = require('../core/getExports'); var _getExports2 = _interopRequireDefault(_getExports); var _importDeclaration = require('../importDeclaration'); var _importDeclaration2 = _interopRequireDefault(_importDeclaration); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = function (context) { function checkDefault(nameKey, defaultSpecifier) { var declaration = (0, _importDeclaration2.default)(context); var imports = _getExports2.default.get(declaration.source.value, context); if (imports == null) return; if (imports.errors.length) { imports.reportErrors(context, declaration); return; } if (imports.hasDefault && imports.named.has(defaultSpecifier[nameKey].name)) { context.report(defaultSpecifier, 'Using exported name \'' + defaultSpecifier[nameKey].name + '\' as identifier for default export.'); } } return { 'ImportDefaultSpecifier': checkDefault.bind(null, 'local'), 'ExportDefaultSpecifier': checkDefault.bind(null, 'exported') }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxXQUFTLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsZ0JBQS9CLEVBQWlEO0FBQy9DLFFBQUksY0FBYyxpQ0FBa0IsT0FBbEIsQ0FBZCxDQUQyQzs7QUFHL0MsUUFBSSxVQUFVLHFCQUFRLEdBQVIsQ0FBWSxZQUFZLE1BQVosQ0FBbUIsS0FBbkIsRUFBMEIsT0FBdEMsQ0FBVixDQUgyQztBQUkvQyxRQUFJLFdBQVcsSUFBWCxFQUFpQixPQUFyQjs7QUFFQSxRQUFJLFFBQVEsTUFBUixDQUFlLE1BQWYsRUFBdUI7QUFDekIsY0FBUSxZQUFSLENBQXFCLE9BQXJCLEVBQThCLFdBQTlCLEVBRHlCO0FBRXpCLGFBRnlCO0tBQTNCOztBQUtBLFFBQUksUUFBUSxVQUFSLElBQ0EsUUFBUSxLQUFSLENBQWMsR0FBZCxDQUFrQixpQkFBaUIsT0FBakIsRUFBMEIsSUFBMUIsQ0FEbEIsRUFDbUQ7O0FBRXJELGNBQVEsTUFBUixDQUFlLGdCQUFmLEVBQ0UsMkJBQTJCLGlCQUFpQixPQUFqQixFQUEwQixJQUExQixHQUMzQixzQ0FEQSxDQURGLENBRnFEO0tBRHZEO0dBWEY7QUFvQkEsU0FBTztBQUNMLDhCQUEwQixhQUFhLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0IsT0FBeEIsQ0FBMUI7QUFDQSw4QkFBMEIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLFVBQXhCLENBQTFCO0dBRkYsQ0FyQmtDO0NBQW5CIiwiZmlsZSI6InJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgZnVuY3Rpb24gY2hlY2tEZWZhdWx0KG5hbWVLZXksIGRlZmF1bHRTcGVjaWZpZXIpIHtcbiAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpbXBvcnRzLmhhc0RlZmF1bHQgJiZcbiAgICAgICAgaW1wb3J0cy5uYW1lZC5oYXMoZGVmYXVsdFNwZWNpZmllcltuYW1lS2V5XS5uYW1lKSkge1xuXG4gICAgICBjb250ZXh0LnJlcG9ydChkZWZhdWx0U3BlY2lmaWVyLFxuICAgICAgICAnVXNpbmcgZXhwb3J0ZWQgbmFtZSBcXCcnICsgZGVmYXVsdFNwZWNpZmllcltuYW1lS2V5XS5uYW1lICtcbiAgICAgICAgJ1xcJyBhcyBpZGVudGlmaWVyIGZvciBkZWZhdWx0IGV4cG9ydC4nKVxuXG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnbG9jYWwnKSxcbiAgICAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdleHBvcnRlZCcpLFxuICB9XG59XG4iXX0=