aboutsummaryrefslogtreecommitdiffstats
path: root/src/actions
diff options
context:
space:
mode:
authorLibravatar Ricardo Cino <ricardo@cino.io>2022-06-22 00:32:18 +0200
committerLibravatar GitHub <noreply@github.com>2022-06-21 22:32:18 +0000
commit73ba955e344c8ccedd43235495ef8b72b5a2b6fd (patch)
tree03766ab32fefe7e83026a14393527f1dcbaed849 /src/actions
parentdocs: add cino as a contributor for infra [skip ci] (#330) (diff)
downloadferdium-app-73ba955e344c8ccedd43235495ef8b72b5a2b6fd.tar.gz
ferdium-app-73ba955e344c8ccedd43235495ef8b72b5a2b6fd.tar.zst
ferdium-app-73ba955e344c8ccedd43235495ef8b72b5a2b6fd.zip
chore: Transform AppStore.js into Typescript (#329)
* turn actions into typescript * correct tsconfig * added TypedStore
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/app.ts3
-rw-r--r--src/actions/lib/actions.ts25
-rw-r--r--src/actions/recipe.ts3
-rw-r--r--src/actions/recipePreview.ts3
-rw-r--r--src/actions/requests.ts4
-rw-r--r--src/actions/service.ts3
-rw-r--r--src/actions/settings.ts3
-rw-r--r--src/actions/ui.ts3
-rw-r--r--src/actions/user.ts3
9 files changed, 41 insertions, 9 deletions
diff --git a/src/actions/app.ts b/src/actions/app.ts
index e6f7f22ba..a798a8b0b 100644
--- a/src/actions/app.ts
+++ b/src/actions/app.ts
@@ -1,6 +1,7 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import { ActionDefinitions } from './lib/actions';
2 3
3export default { 4export default <ActionDefinitions>{
4 setBadge: { 5 setBadge: {
5 unreadDirectMessageCount: PropTypes.number.isRequired, 6 unreadDirectMessageCount: PropTypes.number.isRequired,
6 unreadIndirectMessageCount: PropTypes.number, 7 unreadIndirectMessageCount: PropTypes.number,
diff --git a/src/actions/lib/actions.ts b/src/actions/lib/actions.ts
index 412a0d895..378cef574 100644
--- a/src/actions/lib/actions.ts
+++ b/src/actions/lib/actions.ts
@@ -1,4 +1,27 @@
1export const createActionsFromDefinitions = (actionDefinitions, validate) => { 1import PropTypes from 'prop-types';
2
3export interface ActionDefinitions {
4 [key: string]: {
5 [key: string]: PropTypes.InferType<any>;
6 };
7}
8
9export interface Actions {
10 [key: string]: {
11 [key: string]: {
12 (...args: any[]): void;
13 listeners: Array<Function>;
14 notify: (params: any) => void;
15 listen: (listener: (params: any) => void) => void;
16 off: (listener: (params: any) => void) => void;
17 };
18 };
19}
20
21export const createActionsFromDefinitions = (
22 actionDefinitions: ActionDefinitions,
23 validate: any,
24) => {
2 const actions = {}; 25 const actions = {};
3 // eslint-disable-next-line unicorn/no-array-for-each 26 // eslint-disable-next-line unicorn/no-array-for-each
4 Object.keys(actionDefinitions).forEach(actionName => { 27 Object.keys(actionDefinitions).forEach(actionName => {
diff --git a/src/actions/recipe.ts b/src/actions/recipe.ts
index 29b0a151f..0dd92737f 100644
--- a/src/actions/recipe.ts
+++ b/src/actions/recipe.ts
@@ -1,6 +1,7 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import { ActionDefinitions } from './lib/actions';
2 3
3export default { 4export default <ActionDefinitions>{
4 install: { 5 install: {
5 recipeId: PropTypes.string.isRequired, 6 recipeId: PropTypes.string.isRequired,
6 update: PropTypes.bool, 7 update: PropTypes.bool,
diff --git a/src/actions/recipePreview.ts b/src/actions/recipePreview.ts
index 36de3d844..053b363e9 100644
--- a/src/actions/recipePreview.ts
+++ b/src/actions/recipePreview.ts
@@ -1,6 +1,7 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import { ActionDefinitions } from './lib/actions';
2 3
3export default { 4export default <ActionDefinitions>{
4 search: { 5 search: {
5 needle: PropTypes.string.isRequired, 6 needle: PropTypes.string.isRequired,
6 }, 7 },
diff --git a/src/actions/requests.ts b/src/actions/requests.ts
index 89296e7ec..0b4c905ee 100644
--- a/src/actions/requests.ts
+++ b/src/actions/requests.ts
@@ -1,3 +1,5 @@
1export default { 1import { ActionDefinitions } from './lib/actions';
2
3export default <ActionDefinitions>{
2 retryRequiredRequests: {}, 4 retryRequiredRequests: {},
3}; 5};
diff --git a/src/actions/service.ts b/src/actions/service.ts
index aa02c860a..4b43fc2ca 100644
--- a/src/actions/service.ts
+++ b/src/actions/service.ts
@@ -1,7 +1,8 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import ServiceModel from '../models/Service'; 2import ServiceModel from '../models/Service';
3import { ActionDefinitions } from './lib/actions';
3 4
4export default { 5export default <ActionDefinitions>{
5 setActive: { 6 setActive: {
6 serviceId: PropTypes.string.isRequired, 7 serviceId: PropTypes.string.isRequired,
7 keepActiveRoute: PropTypes.bool, 8 keepActiveRoute: PropTypes.bool,
diff --git a/src/actions/settings.ts b/src/actions/settings.ts
index fd29b798b..4796f6a02 100644
--- a/src/actions/settings.ts
+++ b/src/actions/settings.ts
@@ -1,6 +1,7 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import { ActionDefinitions } from './lib/actions';
2 3
3export default { 4export default <ActionDefinitions>{
4 update: { 5 update: {
5 type: PropTypes.string.isRequired, 6 type: PropTypes.string.isRequired,
6 data: PropTypes.object.isRequired, 7 data: PropTypes.object.isRequired,
diff --git a/src/actions/ui.ts b/src/actions/ui.ts
index b913b430b..7d2dbccfa 100644
--- a/src/actions/ui.ts
+++ b/src/actions/ui.ts
@@ -1,6 +1,7 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import { ActionDefinitions } from './lib/actions';
2 3
3export default { 4export default <ActionDefinitions>{
4 openSettings: { 5 openSettings: {
5 path: PropTypes.string, 6 path: PropTypes.string,
6 }, 7 },
diff --git a/src/actions/user.ts b/src/actions/user.ts
index 15a9216bd..c0ede619e 100644
--- a/src/actions/user.ts
+++ b/src/actions/user.ts
@@ -1,6 +1,7 @@
1import PropTypes from 'prop-types'; 1import PropTypes from 'prop-types';
2import { ActionDefinitions } from './lib/actions';
2 3
3export default { 4export default <ActionDefinitions>{
4 login: { 5 login: {
5 email: PropTypes.string.isRequired, 6 email: PropTypes.string.isRequired,
6 password: PropTypes.string.isRequired, 7 password: PropTypes.string.isRequired,