UNPKG

eslint-config-chain-able

Version:
109 lines (80 loc) 3.11 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _tagNames = require('./tagNames'); var _tagNames2 = _interopRequireDefault(_tagNames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var getFunctionParameterNames = function getFunctionParameterNames(functionNode) { return _lodash2.default.map(functionNode.params, function (param) { if (_lodash2.default.has(param, 'name')) { return param.name; } if (_lodash2.default.has(param, 'left.name')) { return param.left.name; } if (param.type === 'ObjectPattern') { return '<ObjectPattern>'; } if (param.type === 'RestElement') { return param.argument.name; } throw new Error('Unsupported function signature format.'); }); }; /** * Gets all parameter names, including those that refer to a path, e.g. "@param foo; @param foo.bar". */ var getJsdocParameterNamesDeep = function getJsdocParameterNamesDeep(jsdoc, targetTagName) { var jsdocParameterNames = void 0; jsdocParameterNames = _lodash2.default.filter(jsdoc.tags, { tag: targetTagName }); jsdocParameterNames = _lodash2.default.map(jsdocParameterNames, 'name'); return jsdocParameterNames; }; var getJsdocParameterNames = function getJsdocParameterNames(jsdoc, targetTagName) { var jsdocParameterNames = void 0; jsdocParameterNames = getJsdocParameterNamesDeep(jsdoc, targetTagName); jsdocParameterNames = _lodash2.default.filter(jsdocParameterNames, function (name) { return name.indexOf('.') === -1; }); return jsdocParameterNames; }; var getPreferredTagName = function getPreferredTagName(name) { var tagPreference = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (_lodash2.default.includes(_lodash2.default.values(tagPreference), name)) { return name; } var preferredTagName = _lodash2.default.findKey(_tagNames2.default, function (aliases) { return _lodash2.default.includes(aliases, name); }); if (preferredTagName) { return preferredTagName; } return _lodash2.default.has(tagPreference, name) ? tagPreference[name] : name; }; var isValidTag = function isValidTag(name, additionalTagNames) { var validTagNames = _lodash2.default.keys(_tagNames2.default).concat(_lodash2.default.flatten(_lodash2.default.values(_tagNames2.default))); var additionalTags = additionalTagNames.customTags || []; var allTags = validTagNames.concat(additionalTags); return _lodash2.default.includes(allTags, name); }; var hasTag = function hasTag(jsdoc, targetTagName) { var targetTagLower = targetTagName.toLowerCase(); return _lodash2.default.some(jsdoc.tags, function (doc) { return doc.tag.toLowerCase() === targetTagLower; }); }; exports.default = { getFunctionParameterNames, getJsdocParameterNames, getJsdocParameterNamesDeep, getPreferredTagName, hasTag, isValidTag }; module.exports = exports['default']; //# sourceMappingURL=jsdocUtils.js.map