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/actions/app.js | 29 ----------- src/actions/app.ts | 29 +++++++++++ src/actions/index.js | 32 ------------- src/actions/index.ts | 32 +++++++++++++ src/actions/lib/actions.js | 27 ----------- src/actions/lib/actions.ts | 31 ++++++++++++ src/actions/news.js | 7 --- src/actions/news.ts | 7 +++ src/actions/recipe.js | 9 ---- src/actions/recipe.ts | 9 ++++ src/actions/recipePreview.js | 7 --- src/actions/recipePreview.ts | 7 +++ src/actions/requests.js | 3 -- src/actions/requests.ts | 3 ++ src/actions/service.js | 111 ------------------------------------------- src/actions/service.ts | 111 +++++++++++++++++++++++++++++++++++++++++++ src/actions/settings.js | 12 ----- src/actions/settings.ts | 12 +++++ src/actions/ui.js | 11 ----- src/actions/ui.ts | 11 +++++ src/actions/user.js | 32 ------------- src/actions/user.ts | 32 +++++++++++++ 22 files changed, 284 insertions(+), 280 deletions(-) delete mode 100644 src/actions/app.js create mode 100644 src/actions/app.ts delete mode 100644 src/actions/index.js create mode 100644 src/actions/index.ts delete mode 100644 src/actions/lib/actions.js create mode 100644 src/actions/lib/actions.ts delete mode 100644 src/actions/news.js create mode 100644 src/actions/news.ts delete mode 100644 src/actions/recipe.js create mode 100644 src/actions/recipe.ts delete mode 100644 src/actions/recipePreview.js create mode 100644 src/actions/recipePreview.ts delete mode 100644 src/actions/requests.js create mode 100644 src/actions/requests.ts delete mode 100644 src/actions/service.js create mode 100644 src/actions/service.ts delete mode 100644 src/actions/settings.js create mode 100644 src/actions/settings.ts delete mode 100644 src/actions/ui.js create mode 100644 src/actions/ui.ts delete mode 100644 src/actions/user.js create mode 100644 src/actions/user.ts (limited to 'src/actions') diff --git a/src/actions/app.js b/src/actions/app.js deleted file mode 100644 index e6f7f22ba..000000000 --- a/src/actions/app.js +++ /dev/null @@ -1,29 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - setBadge: { - unreadDirectMessageCount: PropTypes.number.isRequired, - unreadIndirectMessageCount: PropTypes.number, - }, - notify: { - title: PropTypes.string.isRequired, - options: PropTypes.object.isRequired, - serviceId: PropTypes.string, - }, - launchOnStartup: { - enable: PropTypes.bool.isRequired, - }, - openExternalUrl: { - url: PropTypes.string.isRequired, - }, - checkForUpdates: {}, - resetUpdateStatus: {}, - installUpdate: {}, - healthCheck: {}, - muteApp: { - isMuted: PropTypes.bool.isRequired, - overrideSystemMute: PropTypes.bool, - }, - toggleMuteApp: {}, - clearAllCache: {}, -}; diff --git a/src/actions/app.ts b/src/actions/app.ts new file mode 100644 index 000000000..e6f7f22ba --- /dev/null +++ b/src/actions/app.ts @@ -0,0 +1,29 @@ +import PropTypes from 'prop-types'; + +export default { + setBadge: { + unreadDirectMessageCount: PropTypes.number.isRequired, + unreadIndirectMessageCount: PropTypes.number, + }, + notify: { + title: PropTypes.string.isRequired, + options: PropTypes.object.isRequired, + serviceId: PropTypes.string, + }, + launchOnStartup: { + enable: PropTypes.bool.isRequired, + }, + openExternalUrl: { + url: PropTypes.string.isRequired, + }, + checkForUpdates: {}, + resetUpdateStatus: {}, + installUpdate: {}, + healthCheck: {}, + muteApp: { + isMuted: PropTypes.bool.isRequired, + overrideSystemMute: PropTypes.bool, + }, + toggleMuteApp: {}, + clearAllCache: {}, +}; diff --git a/src/actions/index.js b/src/actions/index.js deleted file mode 100644 index aecdac675..000000000 --- a/src/actions/index.js +++ /dev/null @@ -1,32 +0,0 @@ -import PropTypes from 'prop-types'; - -import defineActions from './lib/actions'; -import service from './service'; -import recipe from './recipe'; -import recipePreview from './recipePreview'; -import ui from './ui'; -import app from './app'; -import user from './user'; -import news from './news'; -import settings from './settings'; -import requests from './requests'; -import workspaces from '../features/workspaces/actions'; -import todos from '../features/todos/actions'; - -const actions = { - service, - recipe, - recipePreview, - ui, - app, - user, - news, - settings, - requests, -}; - -export default Object.assign( - defineActions(actions, PropTypes.checkPropTypes), - { workspaces }, - { todos }, -); diff --git a/src/actions/index.ts b/src/actions/index.ts new file mode 100644 index 000000000..aecdac675 --- /dev/null +++ b/src/actions/index.ts @@ -0,0 +1,32 @@ +import PropTypes from 'prop-types'; + +import defineActions from './lib/actions'; +import service from './service'; +import recipe from './recipe'; +import recipePreview from './recipePreview'; +import ui from './ui'; +import app from './app'; +import user from './user'; +import news from './news'; +import settings from './settings'; +import requests from './requests'; +import workspaces from '../features/workspaces/actions'; +import todos from '../features/todos/actions'; + +const actions = { + service, + recipe, + recipePreview, + ui, + app, + user, + news, + settings, + requests, +}; + +export default Object.assign( + defineActions(actions, PropTypes.checkPropTypes), + { workspaces }, + { todos }, +); diff --git a/src/actions/lib/actions.js b/src/actions/lib/actions.js deleted file mode 100644 index 7be40f1cf..000000000 --- a/src/actions/lib/actions.js +++ /dev/null @@ -1,27 +0,0 @@ -export const createActionsFromDefinitions = (actionDefinitions, validate) => { - const actions = {}; - Object.keys(actionDefinitions).forEach((actionName) => { - const action = (params = {}) => { - const schema = actionDefinitions[actionName]; - validate(schema, params, actionName); - action.notify(params); - }; - actions[actionName] = action; - action.listeners = []; - action.listen = (listener) => action.listeners.push(listener); - action.off = (listener) => { - const { listeners } = action; - listeners.splice(listeners.indexOf(listener), 1); - }; - action.notify = (params) => action.listeners.forEach((listener) => listener(params)); - }); - return actions; -}; - -export default (definitions, validate) => { - const newActions = {}; - Object.keys(definitions).forEach((scopeName) => { - newActions[scopeName] = createActionsFromDefinitions(definitions[scopeName], validate); - }); - return newActions; -}; diff --git a/src/actions/lib/actions.ts b/src/actions/lib/actions.ts new file mode 100644 index 000000000..ed42eabc0 --- /dev/null +++ b/src/actions/lib/actions.ts @@ -0,0 +1,31 @@ +export const createActionsFromDefinitions = (actionDefinitions, validate) => { + const actions = {}; + Object.keys(actionDefinitions).forEach(actionName => { + const action = (params = {}) => { + const schema = actionDefinitions[actionName]; + validate(schema, params, actionName); + action.notify(params); + }; + actions[actionName] = action; + action.listeners = []; + action.listen = listener => action.listeners.push(listener); + action.off = listener => { + const { listeners } = action; + listeners.splice(listeners.indexOf(listener), 1); + }; + action.notify = params => + action.listeners.forEach(listener => listener(params)); + }); + return actions; +}; + +export default (definitions, validate) => { + const newActions = {}; + Object.keys(definitions).forEach(scopeName => { + newActions[scopeName] = createActionsFromDefinitions( + definitions[scopeName], + validate, + ); + }); + return newActions; +}; diff --git a/src/actions/news.js b/src/actions/news.js deleted file mode 100644 index db106e84f..000000000 --- a/src/actions/news.js +++ /dev/null @@ -1,7 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - hide: { - newsId: PropTypes.string.isRequired, - }, -}; diff --git a/src/actions/news.ts b/src/actions/news.ts new file mode 100644 index 000000000..db106e84f --- /dev/null +++ b/src/actions/news.ts @@ -0,0 +1,7 @@ +import PropTypes from 'prop-types'; + +export default { + hide: { + newsId: PropTypes.string.isRequired, + }, +}; diff --git a/src/actions/recipe.js b/src/actions/recipe.js deleted file mode 100644 index 29b0a151f..000000000 --- a/src/actions/recipe.js +++ /dev/null @@ -1,9 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - install: { - recipeId: PropTypes.string.isRequired, - update: PropTypes.bool, - }, - update: {}, -}; diff --git a/src/actions/recipe.ts b/src/actions/recipe.ts new file mode 100644 index 000000000..29b0a151f --- /dev/null +++ b/src/actions/recipe.ts @@ -0,0 +1,9 @@ +import PropTypes from 'prop-types'; + +export default { + install: { + recipeId: PropTypes.string.isRequired, + update: PropTypes.bool, + }, + update: {}, +}; diff --git a/src/actions/recipePreview.js b/src/actions/recipePreview.js deleted file mode 100644 index 36de3d844..000000000 --- a/src/actions/recipePreview.js +++ /dev/null @@ -1,7 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - search: { - needle: PropTypes.string.isRequired, - }, -}; diff --git a/src/actions/recipePreview.ts b/src/actions/recipePreview.ts new file mode 100644 index 000000000..36de3d844 --- /dev/null +++ b/src/actions/recipePreview.ts @@ -0,0 +1,7 @@ +import PropTypes from 'prop-types'; + +export default { + search: { + needle: PropTypes.string.isRequired, + }, +}; diff --git a/src/actions/requests.js b/src/actions/requests.js deleted file mode 100644 index 89296e7ec..000000000 --- a/src/actions/requests.js +++ /dev/null @@ -1,3 +0,0 @@ -export default { - retryRequiredRequests: {}, -}; diff --git a/src/actions/requests.ts b/src/actions/requests.ts new file mode 100644 index 000000000..89296e7ec --- /dev/null +++ b/src/actions/requests.ts @@ -0,0 +1,3 @@ +export default { + retryRequiredRequests: {}, +}; diff --git a/src/actions/service.js b/src/actions/service.js deleted file mode 100644 index e56513f8f..000000000 --- a/src/actions/service.js +++ /dev/null @@ -1,111 +0,0 @@ -import PropTypes from 'prop-types'; -import ServiceModel from '../models/Service'; - -export default { - setActive: { - serviceId: PropTypes.string.isRequired, - keepActiveRoute: PropTypes.bool, - }, - blurActive: {}, - setActiveNext: {}, - setActivePrev: {}, - showAddServiceInterface: { - recipeId: PropTypes.string.isRequired, - }, - createService: { - recipeId: PropTypes.string.isRequired, - serviceData: PropTypes.object.isRequired, - }, - createFromLegacyService: { - data: PropTypes.object.isRequired, - }, - updateService: { - serviceId: PropTypes.string.isRequired, - serviceData: PropTypes.object.isRequired, - redirect: PropTypes.bool, - }, - deleteService: { - serviceId: PropTypes.string.isRequired, - redirect: PropTypes.string, - }, - openRecipeFile: { - recipe: PropTypes.string.isRequired, - file: PropTypes.string.isRequired, - }, - clearCache: { - serviceId: PropTypes.string.isRequired, - }, - setUnreadMessageCount: { - serviceId: PropTypes.string.isRequired, - count: PropTypes.object.isRequired, - }, - setWebviewReference: { - serviceId: PropTypes.string.isRequired, - webview: PropTypes.object.isRequired, - }, - detachService: { - service: PropTypes.instanceOf(ServiceModel).isRequired, - }, - focusService: { - serviceId: PropTypes.string.isRequired, - }, - focusActiveService: {}, - toggleService: { - serviceId: PropTypes.string.isRequired, - }, - handleIPCMessage: { - serviceId: PropTypes.string.isRequired, - channel: PropTypes.string.isRequired, - args: PropTypes.array.isRequired, - }, - sendIPCMessage: { - serviceId: PropTypes.string.isRequired, - channel: PropTypes.string.isRequired, - args: PropTypes.object.isRequired, - }, - sendIPCMessageToAllServices: { - channel: PropTypes.string.isRequired, - args: PropTypes.object.isRequired, - }, - openWindow: { - event: PropTypes.object.isRequired, - }, - reload: { - serviceId: PropTypes.string.isRequired, - }, - reloadActive: {}, - reloadAll: {}, - reloadUpdatedServices: {}, - filter: { - needle: PropTypes.string.isRequired, - }, - resetFilter: {}, - resetStatus: {}, - reorder: { - oldIndex: PropTypes.number.isRequired, - newIndex: PropTypes.number.isRequired, - }, - toggleNotifications: { - serviceId: PropTypes.string.isRequired, - }, - toggleAudio: { - serviceId: PropTypes.string.isRequired, - }, - toggleDarkMode: { - serviceId: PropTypes.string.isRequired, - }, - openDevTools: { - serviceId: PropTypes.string.isRequired, - }, - openDevToolsForActiveService: {}, - hibernate: { - serviceId: PropTypes.string.isRequired, - }, - awake: { - serviceId: PropTypes.string.isRequired, - }, - resetLastPollTimer: { - serviceId: PropTypes.string, - }, - shareSettingsWithServiceProcess: {}, -}; diff --git a/src/actions/service.ts b/src/actions/service.ts new file mode 100644 index 000000000..e56513f8f --- /dev/null +++ b/src/actions/service.ts @@ -0,0 +1,111 @@ +import PropTypes from 'prop-types'; +import ServiceModel from '../models/Service'; + +export default { + setActive: { + serviceId: PropTypes.string.isRequired, + keepActiveRoute: PropTypes.bool, + }, + blurActive: {}, + setActiveNext: {}, + setActivePrev: {}, + showAddServiceInterface: { + recipeId: PropTypes.string.isRequired, + }, + createService: { + recipeId: PropTypes.string.isRequired, + serviceData: PropTypes.object.isRequired, + }, + createFromLegacyService: { + data: PropTypes.object.isRequired, + }, + updateService: { + serviceId: PropTypes.string.isRequired, + serviceData: PropTypes.object.isRequired, + redirect: PropTypes.bool, + }, + deleteService: { + serviceId: PropTypes.string.isRequired, + redirect: PropTypes.string, + }, + openRecipeFile: { + recipe: PropTypes.string.isRequired, + file: PropTypes.string.isRequired, + }, + clearCache: { + serviceId: PropTypes.string.isRequired, + }, + setUnreadMessageCount: { + serviceId: PropTypes.string.isRequired, + count: PropTypes.object.isRequired, + }, + setWebviewReference: { + serviceId: PropTypes.string.isRequired, + webview: PropTypes.object.isRequired, + }, + detachService: { + service: PropTypes.instanceOf(ServiceModel).isRequired, + }, + focusService: { + serviceId: PropTypes.string.isRequired, + }, + focusActiveService: {}, + toggleService: { + serviceId: PropTypes.string.isRequired, + }, + handleIPCMessage: { + serviceId: PropTypes.string.isRequired, + channel: PropTypes.string.isRequired, + args: PropTypes.array.isRequired, + }, + sendIPCMessage: { + serviceId: PropTypes.string.isRequired, + channel: PropTypes.string.isRequired, + args: PropTypes.object.isRequired, + }, + sendIPCMessageToAllServices: { + channel: PropTypes.string.isRequired, + args: PropTypes.object.isRequired, + }, + openWindow: { + event: PropTypes.object.isRequired, + }, + reload: { + serviceId: PropTypes.string.isRequired, + }, + reloadActive: {}, + reloadAll: {}, + reloadUpdatedServices: {}, + filter: { + needle: PropTypes.string.isRequired, + }, + resetFilter: {}, + resetStatus: {}, + reorder: { + oldIndex: PropTypes.number.isRequired, + newIndex: PropTypes.number.isRequired, + }, + toggleNotifications: { + serviceId: PropTypes.string.isRequired, + }, + toggleAudio: { + serviceId: PropTypes.string.isRequired, + }, + toggleDarkMode: { + serviceId: PropTypes.string.isRequired, + }, + openDevTools: { + serviceId: PropTypes.string.isRequired, + }, + openDevToolsForActiveService: {}, + hibernate: { + serviceId: PropTypes.string.isRequired, + }, + awake: { + serviceId: PropTypes.string.isRequired, + }, + resetLastPollTimer: { + serviceId: PropTypes.string, + }, + shareSettingsWithServiceProcess: {}, +}; diff --git a/src/actions/settings.js b/src/actions/settings.js deleted file mode 100644 index fd29b798b..000000000 --- a/src/actions/settings.js +++ /dev/null @@ -1,12 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - update: { - type: PropTypes.string.isRequired, - data: PropTypes.object.isRequired, - }, - remove: { - type: PropTypes.string.isRequired, - key: PropTypes.string.isRequired, - }, -}; diff --git a/src/actions/settings.ts b/src/actions/settings.ts new file mode 100644 index 000000000..fd29b798b --- /dev/null +++ b/src/actions/settings.ts @@ -0,0 +1,12 @@ +import PropTypes from 'prop-types'; + +export default { + update: { + type: PropTypes.string.isRequired, + data: PropTypes.object.isRequired, + }, + remove: { + type: PropTypes.string.isRequired, + key: PropTypes.string.isRequired, + }, +}; diff --git a/src/actions/ui.js b/src/actions/ui.js deleted file mode 100644 index b913b430b..000000000 --- a/src/actions/ui.js +++ /dev/null @@ -1,11 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - openSettings: { - path: PropTypes.string, - }, - closeSettings: {}, - toggleServiceUpdatedInfoBar: { - visible: PropTypes.bool, - }, -}; diff --git a/src/actions/ui.ts b/src/actions/ui.ts new file mode 100644 index 000000000..b913b430b --- /dev/null +++ b/src/actions/ui.ts @@ -0,0 +1,11 @@ +import PropTypes from 'prop-types'; + +export default { + openSettings: { + path: PropTypes.string, + }, + closeSettings: {}, + toggleServiceUpdatedInfoBar: { + visible: PropTypes.bool, + }, +}; diff --git a/src/actions/user.js b/src/actions/user.js deleted file mode 100644 index 20d27ee53..000000000 --- a/src/actions/user.js +++ /dev/null @@ -1,32 +0,0 @@ -import PropTypes from 'prop-types'; - -export default { - login: { - email: PropTypes.string.isRequired, - password: PropTypes.string.isRequired, - }, - logout: {}, - signup: { - firstname: PropTypes.string.isRequired, - lastname: PropTypes.string.isRequired, - email: PropTypes.string.isRequired, - password: PropTypes.string.isRequired, - accountType: PropTypes.string, - company: PropTypes.string, - currency: PropTypes.string, - }, - retrievePassword: { - email: PropTypes.string.isRequired, - }, - invite: { - invites: PropTypes.array.isRequired, - }, - update: { - userData: PropTypes.object.isRequired, - }, - resetStatus: {}, - importLegacyServices: PropTypes.arrayOf(PropTypes.shape({ - recipe: PropTypes.string.isRequired, - })).isRequired, - delete: {}, -}; diff --git a/src/actions/user.ts b/src/actions/user.ts new file mode 100644 index 000000000..20d27ee53 --- /dev/null +++ b/src/actions/user.ts @@ -0,0 +1,32 @@ +import PropTypes from 'prop-types'; + +export default { + login: { + email: PropTypes.string.isRequired, + password: PropTypes.string.isRequired, + }, + logout: {}, + signup: { + firstname: PropTypes.string.isRequired, + lastname: PropTypes.string.isRequired, + email: PropTypes.string.isRequired, + password: PropTypes.string.isRequired, + accountType: PropTypes.string, + company: PropTypes.string, + currency: PropTypes.string, + }, + retrievePassword: { + email: PropTypes.string.isRequired, + }, + invite: { + invites: PropTypes.array.isRequired, + }, + update: { + userData: PropTypes.object.isRequired, + }, + resetStatus: {}, + importLegacyServices: PropTypes.arrayOf(PropTypes.shape({ + recipe: PropTypes.string.isRequired, + })).isRequired, + delete: {}, +}; -- cgit v1.2.3-54-g00ecf