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/lib/actions.js | 27 --------------------------- src/actions/lib/actions.ts | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 27 deletions(-) delete mode 100644 src/actions/lib/actions.js create mode 100644 src/actions/lib/actions.ts (limited to 'src/actions/lib') 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; +}; -- cgit v1.2.3-70-g09d2