diff --git a/giraffe/package.json b/giraffe/package.json index e482a6a1..bdebd40c 100644 --- a/giraffe/package.json +++ b/giraffe/package.json @@ -1,6 +1,6 @@ { "name": "@influxdata/giraffe", - "version": "2.36.0", + "version": "2.36.1", "main": "dist/index.js", "module": "dist/index.js", "license": "MIT", diff --git a/giraffe/src/utils/isDefined.test.ts b/giraffe/src/utils/isDefined.test.ts new file mode 100644 index 00000000..ac1d15d4 --- /dev/null +++ b/giraffe/src/utils/isDefined.test.ts @@ -0,0 +1,49 @@ +import {isDefined, isDefinedOrNaN} from './isDefined' + +describe('utils/isDefined', () => { + describe('isDefined', () => { + it('handles falsy input', () => { + expect(isDefined()).toEqual(false) + expect(isDefined(null)).toEqual(false) + expect(isDefined(undefined)).toEqual(false) + expect(isDefined(NaN)).toEqual(false) + + expect(isDefined(false)).toEqual(true) + expect(isDefined('')).toEqual(true) + expect(isDefined(0)).toEqual(true) + }) + + it('handles other input', () => { + expect(isDefined(true)).toEqual(true) + expect(isDefined('string')).toEqual(true) + expect(isDefined(1)).toEqual(true) + expect(isDefined({})).toEqual(true) + expect(isDefined([])).toEqual(true) + expect(isDefined(() => {})).toEqual(true) + expect(isDefined(Symbol())).toEqual(true) + }) + }) + + describe('isDefinedOrNaN', () => { + it('handles falsy input', () => { + expect(isDefinedOrNaN()).toEqual(false) + expect(isDefinedOrNaN(null)).toEqual(false) + expect(isDefinedOrNaN(undefined)).toEqual(false) + + expect(isDefinedOrNaN(NaN)).toEqual(true) + expect(isDefinedOrNaN(false)).toEqual(true) + expect(isDefinedOrNaN('')).toEqual(true) + expect(isDefinedOrNaN(0)).toEqual(true) + }) + + it('handles other input', () => { + expect(isDefinedOrNaN(true)).toEqual(true) + expect(isDefinedOrNaN('string')).toEqual(true) + expect(isDefinedOrNaN(1)).toEqual(true) + expect(isDefinedOrNaN({})).toEqual(true) + expect(isDefinedOrNaN([])).toEqual(true) + expect(isDefinedOrNaN(() => {})).toEqual(true) + expect(isDefinedOrNaN(Symbol())).toEqual(true) + }) + }) +}) diff --git a/giraffe/src/utils/isDefined.ts b/giraffe/src/utils/isDefined.ts index e8516855..4095422b 100644 --- a/giraffe/src/utils/isDefined.ts +++ b/giraffe/src/utils/isDefined.ts @@ -1 +1,4 @@ -export const isDefined = (x: any) => x !== null && x !== undefined && !isNaN(x) +export const isDefined = (x?: any) => + x !== null && x !== undefined && !Number.isNaN(x) + +export const isDefinedOrNaN = (x?: any) => x !== null && x !== undefined diff --git a/stories/package.json b/stories/package.json index f1dcab5a..d311cd9c 100644 --- a/stories/package.json +++ b/stories/package.json @@ -1,6 +1,6 @@ { "name": "@influxdata/giraffe-stories", - "version": "2.36.0", + "version": "2.36.1", "license": "MIT", "repository": { "type": "git",