canonical
Version:
Canonical code style linter and formatter for JavaScript, SCSS and CSS.
113 lines (81 loc) • 3.43 kB
JavaScript
;
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