From 94f3b5452add2382c242786d498333392b0f0ab2 Mon Sep 17 00:00:00 2001 From: Nikolay <46225163+vigdorov@users.noreply.github.com> Date: Mon, 28 Dec 2020 00:26:59 +0300 Subject: [PATCH] =?UTF-8?q?Closes=20#20.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20toArray=20(#28)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/utils/__test__/toArray.test.ts | 16 ++++++++++++++++ src/core/utils/toArray.ts | 9 +++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/core/utils/__test__/toArray.test.ts create mode 100644 src/core/utils/toArray.ts diff --git a/src/core/utils/__test__/toArray.test.ts b/src/core/utils/__test__/toArray.test.ts new file mode 100644 index 0000000..7e3f2f9 --- /dev/null +++ b/src/core/utils/__test__/toArray.test.ts @@ -0,0 +1,16 @@ +import {toArray} from '../toArray'; + +describe('toArray', () => { + it('Должен вернуть пустой массив', () => { + expect(toArray(undefined)).toEqual([]); + expect(toArray([])).toEqual([]); + }); + + it('Должен вернуть массив', () => { + expect(toArray('hji')).toEqual(['hji']); + expect(toArray(null)).toEqual([null]); + expect(toArray(0)).toEqual([0]); + expect(toArray([0, null, 'gh'])).toEqual([0, null, 'gh']); + expect(toArray([0, [null], 'gh'])).toEqual([0, [null], 'gh']); + }); +}); diff --git a/src/core/utils/toArray.ts b/src/core/utils/toArray.ts new file mode 100644 index 0000000..bf3f8fc --- /dev/null +++ b/src/core/utils/toArray.ts @@ -0,0 +1,9 @@ +export const toArray = (value?: T | T[]): T[] => { + if (Array.isArray(value)) { + return value; + } + + return [ + ...(value !== undefined ? [value] : []) + ]; +};