UNPKG

@wordpress/components

Version:
8 lines (7 loc) 2.11 kB
{ "version": 3, "sources": ["../../src/utils/values.js"], "sourcesContent": ["/**\n * Determines if a value is null or undefined.\n *\n * @template T\n *\n * @param {T} value The value to check.\n * @return {value is Exclude<T, null | undefined>} Whether value is not null or undefined.\n */\nexport function isValueDefined(value) {\n return value !== undefined && value !== null;\n}\n\n/**\n * Determines if a value is empty, null, or undefined.\n *\n * @param {string | number | null | undefined} value The value to check.\n * @return {value is (\"\" | null | undefined)} Whether value is empty.\n */\nexport function isValueEmpty(value) {\n const isEmptyString = value === '';\n return !isValueDefined(value) || isEmptyString;\n}\n\n/**\n * Get the first defined/non-null value from an array.\n *\n * @template T\n *\n * @param {Array<T | null | undefined>} values Values to derive from.\n * @param {T} fallbackValue Fallback value if there are no defined values.\n * @return {T} A defined value or the fallback value.\n */\nexport function getDefinedValue(values = [], fallbackValue) {\n return values.find(isValueDefined) ?? fallbackValue;\n}\n\n/**\n * Converts a string to a number.\n *\n * @param {string} value\n * @return {number} String as a number.\n */\nexport const stringToNumber = value => {\n return parseFloat(value);\n};\n\n/**\n * Regardless of the input being a string or a number, returns a number.\n *\n * Returns `undefined` in case the string is `undefined` or not a valid numeric value.\n *\n * @param {string | number} value\n * @return {number} The parsed number.\n */\nexport const ensureNumber = value => {\n return typeof value === 'string' ? stringToNumber(value) : value;\n};"], "mappings": ";AAQO,SAAS,eAAe,OAAO;AACpC,SAAO,UAAU,UAAa,UAAU;AAC1C;AAQO,SAAS,aAAa,OAAO;AAClC,QAAM,gBAAgB,UAAU;AAChC,SAAO,CAAC,eAAe,KAAK,KAAK;AACnC;AAWO,SAAS,gBAAgB,SAAS,CAAC,GAAG,eAAe;AAC1D,SAAO,OAAO,KAAK,cAAc,KAAK;AACxC;AAQO,IAAM,iBAAiB,WAAS;AACrC,SAAO,WAAW,KAAK;AACzB;AAUO,IAAM,eAAe,WAAS;AACnC,SAAO,OAAO,UAAU,WAAW,eAAe,KAAK,IAAI;AAC7D;", "names": [] }