UNPKG

attributes-kit

Version:
143 lines (110 loc) 2.31 kB
import isString from 'lodash/isString'; import TYPES from '../types'; function isMember(element) { if (!element) { return false; } if (element.element) { return element.element === TYPES.MEMBER; } return element === TYPES.MEMBER; } function getValueType({ element, content }) { if (isMember(element)) { return content.value.element; } return element; } function getType(element) { if (isMember(element.element)) { return getValueType(element); } return element.element; } function isObject(element) { if (!element) { return false; } if (isString(element)) { return element === TYPES.OBJECT; } if (element.element) { return getType(element) === TYPES.OBJECT; } return false; } function isArray(element) { if (!element) { return false; } if (isString(element)) { return element === TYPES.ARRAY; } if (element.element) { return getType(element) === TYPES.ARRAY; } return false; } function isEnum(element) { if (!element) { return false; } if (isString(element)) { return element === TYPES.ENUM; } if (element.element) { return getType(element) === TYPES.ENUM; } return false; } function isSelect(element) { if (!element) { return false; } if (isString(element)) { return element === TYPES.SELECT; } if (element.element) { return getType(element) === TYPES.SELECT; } return false; } function isObjectOrArray(element) { return isObject(element) || isArray(element); } function isObjectOrArrayOrEnum(element) { return isObject(element) || isArray(element) || isEnum(element); } function hasSamples(element) { const attributes = element.attributes; if (attributes) { return !!attributes.samples; } return false; } function hasDescription(element) { if (element.meta) { if (element.meta.description) { return true; } } return false; } function isLastArrayItem(arrayElement, currentArrayItemIndex) { const numberOfArrayItems = arrayElement.content.length; return (numberOfArrayItems - 1) === currentArrayItemIndex; } export { getType, getValueType, hasDescription, hasSamples, isArray, isEnum, isLastArrayItem, isMember, isObject, isObjectOrArray, isObjectOrArrayOrEnum, isSelect, };