UNPKG

canonical

Version:

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

113 lines (81 loc) 3.43 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _includes = require('lodash/collection/includes'); var _includes2 = _interopRequireDefault(_includes); var _get = require('lodash/object/get'); var _get2 = _interopRequireDefault(_get); var _commentParser = require('comment-parser'); var _commentParser2 = _interopRequireDefault(_commentParser); var _jsdocUtils = require('./jsdocUtils'); var _jsdocUtils2 = _interopRequireDefault(_jsdocUtils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var curryUtils = undefined; curryUtils = function (functionNode, jsdoc, tagNamePreference) { var utils = undefined; utils = {}; utils.getFunctionParameterNames = function () { return _jsdocUtils2.default.getFunctionParameterNames(functionNode); }; utils.getJsdocParameterNamesDeep = function () { return _jsdocUtils2.default.getJsdocParameterNamesDeep(jsdoc, utils.getPreferredTagName('param')); }; utils.getJsdocParameterNames = function () { return _jsdocUtils2.default.getJsdocParameterNames(jsdoc, utils.getPreferredTagName('param')); }; utils.getPreferredTagName = function (name) { return _jsdocUtils2.default.getPreferredTagName(name, tagNamePreference); }; utils.isValidTag = function (name) { return _jsdocUtils2.default.isValidTag(name); }; return utils; }; exports.default = function (iterator) { return function (context) { var checkJsdoc = undefined, sourceCode = undefined, tagNamePreference = undefined; sourceCode = context.getSourceCode(); tagNamePreference = (0, _get2.default)(context, 'settings.jsdoc.tagNamePreference') || {}; checkJsdoc = function (functionNode) { var jsdoc = undefined, jsdocNode = undefined, report = undefined, utils = undefined; jsdocNode = sourceCode.getJSDocComment(functionNode); if (!jsdocNode) { return; } jsdoc = (0, _commentParser2.default)('/*' + jsdocNode.value + '*/', { // @see https://github.com/yavorskiy/comment-parser/issues/21 parsers: [_commentParser2.default.PARSERS.parse_tag, _commentParser2.default.PARSERS.parse_type, function (str, data) { if ((0, _includes2.default)(['return', 'returns'], data.tag)) { return null; } return _commentParser2.default.PARSERS.parse_name(str, data); }, _commentParser2.default.PARSERS.parse_description] })[0] || {}; report = function (message) { context.report(jsdocNode, message); }; utils = curryUtils(functionNode, jsdoc, tagNamePreference); iterator({ context: context, functionNode: functionNode, jsdoc: jsdoc, jsdocNode: jsdocNode, report: report, utils: utils }); }; return { ArrowFunctionExpression: checkJsdoc, FunctionDeclaration: checkJsdoc, FunctionExpression: checkJsdoc }; }; }; module.exports = exports['default']; //# sourceMappingURL=iterateJsdoc.js.map