diff --git a/packages/core/src/lib/utils/index.ts b/packages/core/src/lib/utils/index.ts index 97447c368..6dd983acc 100644 --- a/packages/core/src/lib/utils/index.ts +++ b/packages/core/src/lib/utils/index.ts @@ -2,3 +2,5 @@ export * from './get.util'; export * from './is-empty.util'; export * from './is-defined.util'; +export * from './is-primitive-constructor.util'; +export * from './is-date-constructor.util'; diff --git a/packages/core/src/lib/utils/is-date-constructor.util.ts b/packages/core/src/lib/utils/is-date-constructor.util.ts new file mode 100644 index 000000000..9d1e56f89 --- /dev/null +++ b/packages/core/src/lib/utils/is-date-constructor.util.ts @@ -0,0 +1,8 @@ +/** + * Check if value is a Date constructor + * + * @param {Function} value + */ +export function isDateConstructor(value: unknown): boolean { + return value === Date; +} diff --git a/packages/core/src/lib/utils/is-primitive-constructor.util.ts b/packages/core/src/lib/utils/is-primitive-constructor.util.ts new file mode 100644 index 000000000..431c5f8a4 --- /dev/null +++ b/packages/core/src/lib/utils/is-primitive-constructor.util.ts @@ -0,0 +1,10 @@ +/** + * Check if value is a String/Number/Boolean/Array constructor + * + * @param {Function} value + */ +export function isPrimitiveConstructor(value: unknown): boolean { + return ( + value === String || value === Number || value === Boolean || value === Array + ); +} diff --git a/packages/core/src/lib/utils/specs/is-date-constructor.spec.ts b/packages/core/src/lib/utils/specs/is-date-constructor.spec.ts new file mode 100644 index 000000000..fa7517c18 --- /dev/null +++ b/packages/core/src/lib/utils/specs/is-date-constructor.spec.ts @@ -0,0 +1,9 @@ +import { isDateConstructor } from '../is-date-constructor.util'; + +describe('isDateConstructor', () => { + it('should work', () => { + expect(isDateConstructor(Date)).toEqual(true); + expect(isDateConstructor(String)).toEqual(false); + expect(isDateConstructor(Number)).toEqual(false); + }); +}); diff --git a/packages/core/src/lib/utils/specs/is-primitive-constructor.util.spec.ts b/packages/core/src/lib/utils/specs/is-primitive-constructor.util.spec.ts new file mode 100644 index 000000000..9be0ef551 --- /dev/null +++ b/packages/core/src/lib/utils/specs/is-primitive-constructor.util.spec.ts @@ -0,0 +1,11 @@ +import { isPrimitiveConstructor } from '../is-primitive-constructor.util'; + +describe('isPrimitiveConstructor', () => { + it('should work', () => { + expect(isPrimitiveConstructor(String)).toEqual(true); + expect(isPrimitiveConstructor(Number)).toEqual(true); + expect(isPrimitiveConstructor(Boolean)).toEqual(true); + expect(isPrimitiveConstructor(Array)).toEqual(true); + expect(isPrimitiveConstructor(Date)).toEqual(false); + }); +});