aboutsummaryrefslogtreecommitdiff
path: root/src/settings/actions
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-02 11:12:28 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2019-05-02 22:07:54 +0900
commite69497fab457df486b2a7068bdd0283505461f8b (patch)
treef1cb4111bae89160d4238df9057493a50acacc39 /src/settings/actions
parentc059bf8be3b302173f2cab0d22a434aea4a6e0bd (diff)
Types src/settings
Diffstat (limited to 'src/settings/actions')
-rw-r--r--src/settings/actions/index.ts39
-rw-r--r--src/settings/actions/setting.ts18
2 files changed, 41 insertions, 16 deletions
diff --git a/src/settings/actions/index.ts b/src/settings/actions/index.ts
index 016f2a5..75c6bb5 100644
--- a/src/settings/actions/index.ts
+++ b/src/settings/actions/index.ts
@@ -1,7 +1,32 @@
-export default {
- // Settings
- SETTING_SET_SETTINGS: 'setting.set.settings',
- SETTING_SHOW_ERROR: 'setting.show.error',
- SETTING_SWITCH_TO_FORM: 'setting.switch.to.form',
- SETTING_SWITCH_TO_JSON: 'setting.switch.to.json',
-};
+// Settings
+export const SETTING_SET_SETTINGS = 'setting.set.settings';
+export const SETTING_SHOW_ERROR = 'setting.show.error';
+export const SETTING_SWITCH_TO_FORM = 'setting.switch.to.form';
+export const SETTING_SWITCH_TO_JSON = 'setting.switch.to.json';
+
+interface SettingSetSettingsAcion {
+ type: typeof SETTING_SET_SETTINGS;
+ source: string;
+ json: string;
+ form: any;
+}
+
+interface SettingShowErrorAction {
+ type: typeof SETTING_SHOW_ERROR;
+ error: string;
+ json: string;
+}
+
+interface SettingSwitchToFormAction {
+ type: typeof SETTING_SWITCH_TO_FORM;
+ form: any;
+}
+
+interface SettingSwitchToJsonAction {
+ type: typeof SETTING_SWITCH_TO_JSON;
+ json: string;
+}
+
+export type SettingAction =
+ SettingSetSettingsAcion | SettingShowErrorAction |
+ SettingSwitchToFormAction | SettingSwitchToJsonAction;
diff --git a/src/settings/actions/setting.ts b/src/settings/actions/setting.ts
index db63a45..b03cd80 100644
--- a/src/settings/actions/setting.ts
+++ b/src/settings/actions/setting.ts
@@ -1,15 +1,15 @@
-import actions from 'settings/actions';
-import * as validator from 'shared/settings/validator';
-import * as settingsValues from 'shared/settings/values';
-import * as settingsStorage from 'shared/settings/storage';
+import * as actions from './index';
+import * as validator from '../../shared/settings/validator';
+import * as settingsValues from '../../shared/settings/values';
+import * as settingsStorage from '../../shared/settings/storage';
import keymaps from '../keymaps';
-const load = async() => {
+const load = async(): Promise<actions.SettingAction> => {
let settings = await settingsStorage.loadRaw();
return set(settings);
};
-const save = async(settings) => {
+const save = async(settings: any): Promise<actions.SettingAction> => {
try {
if (settings.source === 'json') {
let value = JSON.parse(settings.json);
@@ -26,7 +26,7 @@ const save = async(settings) => {
return set(settings);
};
-const switchToForm = (json) => {
+const switchToForm = (json: string): actions.SettingAction => {
try {
validator.validate(JSON.parse(json));
let form = settingsValues.formFromJson(json, keymaps.allowedOps);
@@ -43,7 +43,7 @@ const switchToForm = (json) => {
}
};
-const switchToJson = (form) => {
+const switchToJson = (form: any): actions.SettingAction => {
let json = settingsValues.jsonFromForm(form);
return {
type: actions.SETTING_SWITCH_TO_JSON,
@@ -51,7 +51,7 @@ const switchToJson = (form) => {
};
};
-const set = (settings) => {
+const set = (settings: any): actions.SettingAction => {
return {
type: actions.SETTING_SET_SETTINGS,
source: settings.source,