UNPKG

canonical

Version:

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

129 lines (86 loc) 3.6 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _flatten = require('lodash/array/flatten'); var _flatten2 = _interopRequireDefault(_flatten); var _keys = require('lodash/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _findKey = require('lodash/object/findKey'); var _findKey2 = _interopRequireDefault(_findKey); var _values = require('lodash/object/values'); var _values2 = _interopRequireDefault(_values); var _includes = require('lodash/collection/includes'); var _includes2 = _interopRequireDefault(_includes); var _filter = require('lodash/collection/filter'); var _filter2 = _interopRequireDefault(_filter); var _has = require('lodash/object/has'); var _has2 = _interopRequireDefault(_has); var _map = require('lodash/collection/map'); var _map2 = _interopRequireDefault(_map); var _tagNames = require('./tagNames'); var _tagNames2 = _interopRequireDefault(_tagNames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var getFunctionParameterNames = undefined, getJsdocParameterNames = undefined, getJsdocParameterNamesDeep = undefined, getPreferredTagName = undefined, isValidTag = undefined; getFunctionParameterNames = function (functionNode) { return (0, _map2.default)(functionNode.params, function (param) { if ((0, _has2.default)(param, 'name')) { return param.name; } if ((0, _has2.default)(param, 'left.name')) { return param.left.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". */ getJsdocParameterNamesDeep = function (jsdoc, targetTagName) { var jsdocParameterNames = undefined; jsdocParameterNames = (0, _filter2.default)(jsdoc.tags, { tag: targetTagName }); jsdocParameterNames = (0, _map2.default)(jsdocParameterNames, 'name'); return jsdocParameterNames; }; getJsdocParameterNames = function (jsdoc, targetTagName) { var jsdocParameterNames = undefined; jsdocParameterNames = getJsdocParameterNamesDeep(jsdoc, targetTagName); jsdocParameterNames = (0, _filter2.default)(jsdocParameterNames, function (name) { return name.indexOf('.') === -1; }); return jsdocParameterNames; }; getPreferredTagName = function (name) { var tagPreference = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; var preferredTagName = undefined; if ((0, _includes2.default)((0, _values2.default)(tagPreference), name)) { return name; } preferredTagName = (0, _findKey2.default)(_tagNames2.default, function (aliases) { return (0, _includes2.default)(aliases, name); }); if (preferredTagName) { return preferredTagName; } return (0, _has2.default)(tagPreference, name) ? tagPreference[name] : name; }; isValidTag = function (name) { var validTagNames = undefined; validTagNames = (0, _keys2.default)(_tagNames2.default).concat((0, _flatten2.default)((0, _values2.default)(_tagNames2.default))); return (0, _includes2.default)(validTagNames, name); }; exports.default = { getFunctionParameterNames: getFunctionParameterNames, getJsdocParameterNames: getJsdocParameterNames, getJsdocParameterNamesDeep: getJsdocParameterNamesDeep, getPreferredTagName: getPreferredTagName, isValidTag: isValidTag }; module.exports = exports['default']; //# sourceMappingURL=jsdocUtils.js.map