Rename valueOf to fromJSON
This commit is contained in:
parent
16352502cf
commit
532eeb5a1d
9 changed files with 30 additions and 30 deletions
|
@ -8,7 +8,7 @@ export default class SettingRepository {
|
|||
if (!settings) {
|
||||
return null;
|
||||
}
|
||||
return SettingData.valueOf(settings as any);
|
||||
return SettingData.fromJSON(settings as any);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ interface Props {
|
|||
|
||||
class KeymapsForm extends React.Component<Props> {
|
||||
public static defaultProps: Props = {
|
||||
value: FormKeymaps.valueOf({}),
|
||||
value: FormKeymaps.fromJSON({}),
|
||||
onChange: () => {},
|
||||
onBlur: () => {},
|
||||
};
|
||||
|
|
|
@ -12,7 +12,7 @@ interface Props {
|
|||
|
||||
class SearchForm extends React.Component<Props> {
|
||||
public static defaultProps: Props = {
|
||||
value: FormSearch.valueOf({ default: '', engines: []}),
|
||||
value: FormSearch.fromJSON({ default: '', engines: []}),
|
||||
onChange: () => {},
|
||||
onBlur: () => {},
|
||||
};
|
||||
|
@ -81,7 +81,7 @@ class SearchForm extends React.Component<Props> {
|
|||
}
|
||||
}
|
||||
|
||||
this.props.onChange(FormSearch.valueOf(next));
|
||||
this.props.onChange(FormSearch.fromJSON(next));
|
||||
if (name === 'delete' || name === 'default') {
|
||||
this.props.onBlur();
|
||||
}
|
||||
|
|
|
@ -133,7 +133,7 @@ class SettingsComponent extends React.Component<Props> {
|
|||
let data = new SettingData({
|
||||
source: this.props.source,
|
||||
form: (this.props.form as FormSettings).buildWithSearch(
|
||||
FormSearch.valueOf(value)),
|
||||
FormSearch.fromJSON(value)),
|
||||
});
|
||||
this.props.dispatch(settingActions.set(data));
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ export const load = async(): Promise<SettingData> => {
|
|||
return DefaultSettingData;
|
||||
}
|
||||
try {
|
||||
return SettingData.valueOf(settings as any);
|
||||
return SettingData.fromJSON(settings as any);
|
||||
} catch (e) {
|
||||
console.error('unable to load settings', e);
|
||||
return DefaultSettingData;
|
||||
|
|
|
@ -6,9 +6,9 @@ import Properties from './settings/Properties';
|
|||
import Blacklist from './settings/Blacklist';
|
||||
|
||||
export class FormKeymaps {
|
||||
private data: {[op: string]: string};
|
||||
private readonly data: {[op: string]: string};
|
||||
|
||||
constructor(data: {[op: string]: string}) {
|
||||
private constructor(data: {[op: string]: string}) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ export class FormKeymaps {
|
|||
return new FormKeymaps(newData);
|
||||
}
|
||||
|
||||
static valueOf(o: ReturnType<FormKeymaps['toJSON']>): FormKeymaps {
|
||||
static fromJSON(o: ReturnType<FormKeymaps['toJSON']>): FormKeymaps {
|
||||
let data: {[op: string]: string} = {};
|
||||
for (let op of Object.keys(o)) {
|
||||
data[op] = o[op] as string;
|
||||
|
@ -65,9 +65,9 @@ export class FormKeymaps {
|
|||
}
|
||||
|
||||
export class FormSearch {
|
||||
private default: string;
|
||||
private readonly default: string;
|
||||
|
||||
private engines: string[][];
|
||||
private readonly engines: string[][];
|
||||
|
||||
constructor(defaultEngine: string, engines: string[][]) {
|
||||
this.default = defaultEngine;
|
||||
|
@ -92,7 +92,7 @@ export class FormSearch {
|
|||
};
|
||||
}
|
||||
|
||||
static valueOf(o: ReturnType<FormSearch['toJSON']>): FormSearch {
|
||||
static fromJSON(o: ReturnType<FormSearch['toJSON']>): FormSearch {
|
||||
if (!Object.prototype.hasOwnProperty.call(o, 'default')) {
|
||||
throw new TypeError(`"default" field not set`);
|
||||
}
|
||||
|
@ -220,15 +220,15 @@ export class FormSettings {
|
|||
};
|
||||
}
|
||||
|
||||
static valueOf(o: ReturnType<FormSettings['toJSON']>): FormSettings {
|
||||
static fromJSON(o: ReturnType<FormSettings['toJSON']>): FormSettings {
|
||||
for (let name of ['keymaps', 'search', 'properties', 'blacklist']) {
|
||||
if (!Object.prototype.hasOwnProperty.call(o, name)) {
|
||||
throw new Error(`"${name}" field not set`);
|
||||
}
|
||||
}
|
||||
return new FormSettings(
|
||||
FormKeymaps.valueOf(o.keymaps),
|
||||
FormSearch.valueOf(o.search),
|
||||
FormKeymaps.fromJSON(o.keymaps),
|
||||
FormSearch.fromJSON(o.search),
|
||||
Properties.fromJSON(o.properties),
|
||||
Blacklist.fromJSON(o.blacklist),
|
||||
);
|
||||
|
@ -311,7 +311,7 @@ export default class SettingData {
|
|||
throw new Error(`unknown settings source: ${this.source}`);
|
||||
}
|
||||
|
||||
static valueOf(o: {
|
||||
static fromJSON(o: {
|
||||
source: string;
|
||||
json?: string;
|
||||
form?: ReturnType<FormSettings['toJSON']>;
|
||||
|
@ -326,7 +326,7 @@ export default class SettingData {
|
|||
case SettingSource.Form:
|
||||
return new SettingData({
|
||||
source: o.source,
|
||||
form: FormSettings.valueOf(
|
||||
form: FormSettings.fromJSON(
|
||||
o.form as ReturnType<FormSettings['toJSON']>),
|
||||
});
|
||||
}
|
||||
|
@ -334,7 +334,7 @@ export default class SettingData {
|
|||
}
|
||||
}
|
||||
|
||||
export const DefaultSettingData: SettingData = SettingData.valueOf({
|
||||
export const DefaultSettingData: SettingData = SettingData.fromJSON({
|
||||
source: 'json',
|
||||
json: DefaultSettingJSONText,
|
||||
});
|
||||
|
|
|
@ -9,7 +9,7 @@ import { expect } from 'chai';
|
|||
describe("settings/form/KeymapsForm", () => {
|
||||
describe('render', () => {
|
||||
it('renders keymap fields', () => {
|
||||
let root = ReactTestRenderer.create(<KeymapsForm value={FormKeymaps.valueOf({
|
||||
let root = ReactTestRenderer.create(<KeymapsForm value={FormKeymaps.fromJSON({
|
||||
'scroll.vertically?{"count":1}': 'j',
|
||||
'scroll.vertically?{"count":-1}': 'k',
|
||||
})} />).root
|
||||
|
@ -48,7 +48,7 @@ describe("settings/form/KeymapsForm", () => {
|
|||
it('invokes onChange event on edit', (done) => {
|
||||
ReactTestUtils.act(() => {
|
||||
ReactDOM.render(<KeymapsForm
|
||||
value={FormKeymaps.valueOf({
|
||||
value={FormKeymaps.fromJSON({
|
||||
'scroll.vertically?{"count":1}': 'j',
|
||||
'scroll.vertically?{"count":-1}': 'k',
|
||||
})}
|
||||
|
|
|
@ -8,7 +8,7 @@ import { FormSearch } from 'shared/SettingData';
|
|||
describe("settings/form/SearchForm", () => {
|
||||
describe('render', () => {
|
||||
it('renders SearchForm', () => {
|
||||
let root = ReactTestRenderer.create(<SearchForm value={FormSearch.valueOf({
|
||||
let root = ReactTestRenderer.create(<SearchForm value={FormSearch.fromJSON({
|
||||
default: 'google',
|
||||
engines: [['google', 'google.com'], ['yahoo', 'yahoo.com']],
|
||||
})} />).root;
|
||||
|
@ -41,7 +41,7 @@ describe("settings/form/SearchForm", () => {
|
|||
it('invokes onChange event on edit', (done) => {
|
||||
ReactTestUtils.act(() => {
|
||||
ReactDOM.render(<SearchForm
|
||||
value={FormSearch.valueOf({
|
||||
value={FormSearch.fromJSON({
|
||||
default: 'google',
|
||||
engines: [['google', 'google.com'], ['yahoo', 'yahoo.com']]
|
||||
})}
|
||||
|
@ -67,7 +67,7 @@ describe("settings/form/SearchForm", () => {
|
|||
|
||||
it('invokes onChange event on delete', (done) => {
|
||||
ReactTestUtils.act(() => {
|
||||
ReactDOM.render(<SearchForm value={FormSearch.valueOf({
|
||||
ReactDOM.render(<SearchForm value={FormSearch.fromJSON({
|
||||
default: 'yahoo',
|
||||
engines: [['louvre', 'google.com'], ['yahoo', 'yahoo.com']]
|
||||
})}
|
||||
|
@ -88,7 +88,7 @@ describe("settings/form/SearchForm", () => {
|
|||
|
||||
it('invokes onChange event on add', (done) => {
|
||||
ReactTestUtils.act(() => {
|
||||
ReactDOM.render(<SearchForm value={FormSearch.valueOf({
|
||||
ReactDOM.render(<SearchForm value={FormSearch.fromJSON({
|
||||
default: 'yahoo',
|
||||
engines: [['google', 'google.com']]
|
||||
})}
|
||||
|
|
|
@ -14,7 +14,7 @@ describe('shared/SettingData', () => {
|
|||
'scroll.home': '0',
|
||||
};
|
||||
|
||||
let keymaps = FormKeymaps.valueOf(data).toKeymaps().toJSON();
|
||||
let keymaps = FormKeymaps.fromJSON(data).toKeymaps().toJSON();
|
||||
expect(keymaps).to.deep.equal({
|
||||
'j': { type: 'scroll.vertically', count: 1 },
|
||||
'0': { type: 'scroll.home' },
|
||||
|
@ -118,7 +118,7 @@ describe('shared/SettingData', () => {
|
|||
blacklist: []
|
||||
};
|
||||
|
||||
let settings = FormSettings.valueOf(data).toSettings();
|
||||
let settings = FormSettings.fromJSON(data).toSettings();
|
||||
expect({
|
||||
keymaps: settings.keymaps.toJSON(),
|
||||
search: settings.search.toJSON(),
|
||||
|
@ -211,7 +211,7 @@ describe('shared/SettingData', () => {
|
|||
}`,
|
||||
};
|
||||
|
||||
let j = SettingData.valueOf(data).toJSON();
|
||||
let j = SettingData.fromJSON(data).toJSON();
|
||||
expect(j.source).to.equal('json');
|
||||
expect(j.json).to.be.a('string');
|
||||
});
|
||||
|
@ -236,7 +236,7 @@ describe('shared/SettingData', () => {
|
|||
},
|
||||
};
|
||||
|
||||
let j = SettingData.valueOf(data).toJSON();
|
||||
let j = SettingData.fromJSON(data).toJSON();
|
||||
expect(j.source).to.equal('form');
|
||||
expect(j.form).to.deep.equal({
|
||||
keymaps: {},
|
||||
|
@ -277,7 +277,7 @@ describe('shared/SettingData', () => {
|
|||
}`,
|
||||
};
|
||||
|
||||
let settings = SettingData.valueOf(data).toSettings();
|
||||
let settings = SettingData.fromJSON(data).toSettings();
|
||||
expect(settings.search.defaultEngine).to.equal('google');
|
||||
});
|
||||
|
||||
|
@ -301,7 +301,7 @@ describe('shared/SettingData', () => {
|
|||
},
|
||||
};
|
||||
|
||||
let settings = SettingData.valueOf(data).toSettings();
|
||||
let settings = SettingData.fromJSON(data).toSettings();
|
||||
expect(settings.search.defaultEngine).to.equal('yahoo');
|
||||
});
|
||||
});
|
||||
|
|
Reference in a new issue