From 035ecf37288067f3a243447c7bec8caa453dbc6c Mon Sep 17 00:00:00 2001 From: Felix Hallenberg Date: Thu, 10 Oct 2024 11:34:42 +0300 Subject: [PATCH] Destructure and improve regex --- src/api/minimumVersion.ts | 8 ++++---- src/lib/__tests__/validators.ts | 4 +--- src/lib/validators.ts | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/api/minimumVersion.ts b/src/api/minimumVersion.ts index 7130db48..9ff56aa5 100644 --- a/src/api/minimumVersion.ts +++ b/src/api/minimumVersion.ts @@ -28,13 +28,13 @@ export type AppClient = { }; export const toAppClient = (value: Client): AppClient => { - const splitted = value.version.split('.').map(Number); + const [major, minor, patch] = value.version.split('.').map(Number); return { client: value.client, - major: splitted[0], - minor: splitted[1], - patch: splitted[2], + major, + minor, + patch, }; }; diff --git a/src/lib/__tests__/validators.ts b/src/lib/__tests__/validators.ts index 93bd0be8..522a3819 100644 --- a/src/lib/__tests__/validators.ts +++ b/src/lib/__tests__/validators.ts @@ -122,7 +122,7 @@ describe('Validate The invalid password', () => { }); describe('Validate correct versions', () => { - ['1.23.3', '10.20.0', '3.99.99', '2.11.1'].forEach(version => { + ['1.23.3', '10.20.0', '3.99.99', '2.11.1', '3.110.5'].forEach(version => { it(`decodes valid version ${version}`, () => { expect(isRight(validators.ValidVersion.decode(version))).toEqual(true); }); @@ -133,8 +133,6 @@ describe('Validate invalid versions', () => { [ '1.2', '1.2.3.4', - '123.45.6', - '1.234.5', '01.2.3', '1.2.03', 'a.b.c', diff --git a/src/lib/validators.ts b/src/lib/validators.ts index 3f51bac9..e263d0fa 100644 --- a/src/lib/validators.ts +++ b/src/lib/validators.ts @@ -53,7 +53,7 @@ export const isValidDescription = (value: string): boolean => { }; const isValidVersion = (value: string): boolean => { - return /^\d{1,2}\.\d{1,2}\.\d{1,2}$/.test(value); + return /^\d+\.\d+\.\d+$/.test(value); }; export const ValidEmail = new t.Type(