From 979ec02c9a1019152be08705986337e470eabb57 Mon Sep 17 00:00:00 2001 From: Markus Hatvan Date: Tue, 14 Sep 2021 10:34:04 +0200 Subject: chore: codebase improvements (#1930) --- src/helpers/serverless-helpers.js | 18 -------- src/helpers/serverless-helpers.ts | 18 ++++++++ src/helpers/service-helpers.js | 16 ------- src/helpers/service-helpers.ts | 21 +++++++++ src/helpers/validation-helpers.js | 91 ------------------------------------ src/helpers/validation-helpers.ts | 97 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 136 insertions(+), 125 deletions(-) delete mode 100644 src/helpers/serverless-helpers.js create mode 100644 src/helpers/serverless-helpers.ts delete mode 100644 src/helpers/service-helpers.js create mode 100644 src/helpers/service-helpers.ts delete mode 100644 src/helpers/validation-helpers.js create mode 100644 src/helpers/validation-helpers.ts (limited to 'src/helpers') diff --git a/src/helpers/serverless-helpers.js b/src/helpers/serverless-helpers.js deleted file mode 100644 index 01549e038..000000000 --- a/src/helpers/serverless-helpers.js +++ /dev/null @@ -1,18 +0,0 @@ -import { LOCAL_SERVER } from '../config'; - -export default function useLocalServer(actions) { - // Use local server for user - actions.settings.update({ - type: 'app', - data: { - server: LOCAL_SERVER, - }, - }); - - // Log into local server - // Credentials are ignored by the server but the client requires them - actions.user.login({ - email: 'ferdi@localhost', - password: 'FERDI_', - }); -} diff --git a/src/helpers/serverless-helpers.ts b/src/helpers/serverless-helpers.ts new file mode 100644 index 000000000..01549e038 --- /dev/null +++ b/src/helpers/serverless-helpers.ts @@ -0,0 +1,18 @@ +import { LOCAL_SERVER } from '../config'; + +export default function useLocalServer(actions) { + // Use local server for user + actions.settings.update({ + type: 'app', + data: { + server: LOCAL_SERVER, + }, + }); + + // Log into local server + // Credentials are ignored by the server but the client requires them + actions.user.login({ + email: 'ferdi@localhost', + password: 'FERDI_', + }); +} diff --git a/src/helpers/service-helpers.js b/src/helpers/service-helpers.js deleted file mode 100644 index 745f40dd9..000000000 --- a/src/helpers/service-helpers.js +++ /dev/null @@ -1,16 +0,0 @@ -import { readdirSync, removeSync } from 'fs-extra'; -import { userDataPath } from '../environment'; - -export function getServicePartitionsDirectory(...segments) { - return userDataPath('Partitions', ...([segments].flat())); -} - -export function removeServicePartitionDirectory(id = '', addServicePrefix = false) { - const servicePartition = getServicePartitionsDirectory(`${addServicePrefix ? 'service-' : ''}${id}`); - return removeSync(servicePartition); -} - -export async function getServiceIdsFromPartitions() { - const files = readdirSync(getServicePartitionsDirectory()); - return files.filter((n) => n !== '__chrome_extension'); -} diff --git a/src/helpers/service-helpers.ts b/src/helpers/service-helpers.ts new file mode 100644 index 000000000..13c921f88 --- /dev/null +++ b/src/helpers/service-helpers.ts @@ -0,0 +1,21 @@ +import { readdirSync, removeSync } from 'fs-extra'; +import { userDataPath } from '../environment'; + +export function getServicePartitionsDirectory(...segments) { + return userDataPath('Partitions', ...[segments].flat()); +} + +export function removeServicePartitionDirectory( + id = '', + addServicePrefix = false, +) { + const servicePartition = getServicePartitionsDirectory( + `${addServicePrefix ? 'service-' : ''}${id}`, + ); + return removeSync(servicePartition); +} + +export async function getServiceIdsFromPartitions() { + const files = readdirSync(getServicePartitionsDirectory()); + return files.filter(n => n !== '__chrome_extension'); +} diff --git a/src/helpers/validation-helpers.js b/src/helpers/validation-helpers.js deleted file mode 100644 index 569b13bb0..000000000 --- a/src/helpers/validation-helpers.js +++ /dev/null @@ -1,91 +0,0 @@ -import { defineMessages } from 'react-intl'; -import isEmail from 'validator/lib/isEmail'; - -const messages = defineMessages({ - required: { - id: 'validation.required', - defaultMessage: 'Field is required', - }, - email: { - id: 'validation.email', - defaultMessage: 'Email not valid', - }, - url: { - id: 'validation.url', - defaultMessage: 'Not a valid URL', - }, - minLength: { - id: 'validation.minLength', - defaultMessage: 'Too few characters', - }, - oneRequired: { - id: 'validation.oneRequired', - defaultMessage: 'At least one is required', - }, -}); - -export function required({ field }) { - const isValid = field.value.trim() !== ''; - return [ - isValid, - window.ferdi.intl.formatMessage(messages.required, { field: field.label }), - ]; -} - -export function email({ field }) { - const value = field.value.trim(); - const isValid = isEmail(value); - return [ - isValid, - window.ferdi.intl.formatMessage(messages.email, { field: field.label }), - ]; -} - -export function url({ field }) { - const value = field.value.trim(); - let isValid = false; - - if (value !== '') { - // eslint-disable-next-line - isValid = Boolean( - value.match( - /(^|[\s.:;?\-\]<(])(https?:\/\/[-\w;/?:@&=+$|_.!~*|'()[\]%#,☺]+[\w/#](\(\))?)(?=$|[\s',|().:;?\-[\]>)])/i, - ), - ); - } else { - isValid = true; - } - - return [ - isValid, - window.ferdi.intl.formatMessage(messages.url, { field: field.label }), - ]; -} - -export function minLength(length) { - return ({ field }) => { - let isValid = true; - if (field.touched) { - isValid = field.value.length >= length; - } - return [ - isValid, - window.ferdi.intl.formatMessage(messages.minLength, { - field: field.label, - length, - }), - ]; - }; -} - -export function oneRequired(targets) { - return ({ field, form }) => { - const invalidFields = targets.filter(target => form.$(target).value === ''); - return [ - targets.length !== invalidFields.length, - window.ferdi.intl.formatMessage(messages.required, { - field: field.label, - }), - ]; - }; -} diff --git a/src/helpers/validation-helpers.ts b/src/helpers/validation-helpers.ts new file mode 100644 index 000000000..80d368b2e --- /dev/null +++ b/src/helpers/validation-helpers.ts @@ -0,0 +1,97 @@ +import { defineMessages } from 'react-intl'; +import isEmail from 'validator/lib/isEmail'; + +const messages = defineMessages({ + required: { + id: 'validation.required', + defaultMessage: 'Field is required', + }, + email: { + id: 'validation.email', + defaultMessage: 'Email not valid', + }, + url: { + id: 'validation.url', + defaultMessage: 'Not a valid URL', + }, + minLength: { + id: 'validation.minLength', + defaultMessage: 'Too few characters', + }, + oneRequired: { + id: 'validation.oneRequired', + defaultMessage: 'At least one is required', + }, +}); + +export function required({ field }) { + const isValid = field.value.trim() !== ''; + return [ + isValid, + (window as any).ferdi.intl.formatMessage(messages.required, { + field: field.label, + }), + ]; +} + +export function email({ field }) { + const value = field.value.trim(); + const isValid = isEmail(value); + return [ + isValid, + (window as any).ferdi.intl.formatMessage(messages.email, { + field: field.label, + }), + ]; +} + +export function url({ field }) { + const value = field.value.trim(); + let isValid = false; + + if (value !== '') { + // eslint-disable-next-line + isValid = Boolean( + value.match( + /(^|[\s.:;?\-\]<(])(https?:\/\/[-\w;/?:@&=+$|_.!~*|'()[\]%#,☺]+[\w/#](\(\))?)(?=$|[\s',|().:;?\-[\]>)])/i, + ), + ); + } else { + isValid = true; + } + + return [ + isValid, + (window as any).ferdi.intl.formatMessage(messages.url, { + field: field.label, + }), + ]; +} + +export function minLength(length: number) { + return ({ field }) => { + let isValid = true; + if (field.touched) { + isValid = field.value.length >= length; + } + return [ + isValid, + (window as any).ferdi.intl.formatMessage(messages.minLength, { + field: field.label, + length, + }), + ]; + }; +} + +export function oneRequired(targets: string[]) { + return ({ field, form }) => { + const invalidFields = targets.filter(target => form.$(target).value === ''); + return [ + targets.length !== invalidFields.length, + (window as any).ferdi.intl.formatMessage(messages.required, { + field: field.label, + }), + ]; + }; +} -- cgit v1.2.3-70-g09d2