UNPKG

canonical

Version:

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

38 lines (29 loc) 3.35 kB
'use strict'; var _getExports = require('../core/getExports'); var _getExports2 = _interopRequireDefault(_getExports); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = function (context) { function checkDefault(specifierType, node) { // poor man's Array.find var defaultSpecifier = undefined; node.specifiers.some(function (n) { if (n.type === specifierType) { defaultSpecifier = n; return true; } }); if (!defaultSpecifier) return; var imports = _getExports2.default.get(node.source.value, context); if (imports == null) return; if (imports.errors.length) { imports.reportErrors(context, node); } else if (!imports.hasDefault) { context.report(defaultSpecifier, 'No default export found in module.'); } } return { 'ImportDeclaration': checkDefault.bind(null, 'ImportDefaultSpecifier'), 'ExportNamedDeclaration': checkDefault.bind(null, 'ExportDefaultSpecifier') }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2RlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1COztBQUVsQyxXQUFTLFlBQVQsQ0FBc0IsYUFBdEIsRUFBcUMsSUFBckMsRUFBMkM7OztBQUd6QyxRQUFJLDRCQUFKLENBSHlDO0FBSXpDLFNBQUssVUFBTCxDQUFnQixJQUFoQixDQUFxQixVQUFDLENBQUQsRUFBTztBQUMxQixVQUFJLEVBQUUsSUFBRixLQUFXLGFBQVgsRUFBMEI7QUFDNUIsMkJBQW1CLENBQW5CLENBRDRCO0FBRTVCLGVBQU8sSUFBUCxDQUY0QjtPQUE5QjtLQURtQixDQUFyQixDQUp5Qzs7QUFXekMsUUFBSSxDQUFDLGdCQUFELEVBQW1CLE9BQXZCO0FBQ0EsUUFBSSxVQUFVLHFCQUFRLEdBQVIsQ0FBWSxLQUFLLE1BQUwsQ0FBWSxLQUFaLEVBQW1CLE9BQS9CLENBQVYsQ0FacUM7QUFhekMsUUFBSSxXQUFXLElBQVgsRUFBaUIsT0FBckI7O0FBRUEsUUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFmLEVBQXVCO0FBQ3pCLGNBQVEsWUFBUixDQUFxQixPQUFyQixFQUE4QixJQUE5QixFQUR5QjtLQUEzQixNQUVPLElBQUksQ0FBQyxRQUFRLFVBQVIsRUFBb0I7QUFDOUIsY0FBUSxNQUFSLENBQWUsZ0JBQWYsRUFBaUMsb0NBQWpDLEVBRDhCO0tBQXpCO0dBakJUOztBQXNCQSxTQUFPO0FBQ0wseUJBQXFCLGFBQWEsSUFBYixDQUFrQixJQUFsQixFQUF3Qix3QkFBeEIsQ0FBckI7QUFDQSw4QkFBMEIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QixDQUExQjtHQUZGLENBeEJrQztDQUFuQiIsImZpbGUiOiJydWxlcy9kZWZhdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgZnVuY3Rpb24gY2hlY2tEZWZhdWx0KHNwZWNpZmllclR5cGUsIG5vZGUpIHtcblxuICAgIC8vIHBvb3IgbWFuJ3MgQXJyYXkuZmluZFxuICAgIGxldCBkZWZhdWx0U3BlY2lmaWVyXG4gICAgbm9kZS5zcGVjaWZpZXJzLnNvbWUoKG4pID0+IHtcbiAgICAgIGlmIChuLnR5cGUgPT09IHNwZWNpZmllclR5cGUpIHtcbiAgICAgICAgZGVmYXVsdFNwZWNpZmllciA9IG5cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKCFkZWZhdWx0U3BlY2lmaWVyKSByZXR1cm5cbiAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICB9IGVsc2UgaWYgKCFpbXBvcnRzLmhhc0RlZmF1bHQpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KGRlZmF1bHRTcGVjaWZpZXIsICdObyBkZWZhdWx0IGV4cG9ydCBmb3VuZCBpbiBtb2R1bGUuJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJyksXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICB9XG59XG4iXX0=