Skip to content

Commit 69fa2c0

Browse files
committed
Clean up options store a bit
1 parent 7d0980c commit 69fa2c0

File tree

1 file changed

+23
-33
lines changed

1 file changed

+23
-33
lines changed

source/options/stores/options-store.ts

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import { writable } from 'svelte/store';
22
import { defaultOptions, getOptions, newProvider } from '../../storage';
3-
import type { Options, StorageProvider } from '../../types';
3+
import type { Options } from '../../types';
44
import { arraymove, getLowerIndex, getUpperIndex } from '../../utils.js';
55

6-
const cloneProviders = () =>
7-
defaultOptions.storageProviders.map((p) => ({ ...p }));
8-
96
const createStore = () => {
107
const { subscribe, set, update } = writable<Options>(
11-
JSON.parse(JSON.stringify(defaultOptions)),
8+
structuredClone(defaultOptions),
129
);
1310

1411
return {
@@ -22,43 +19,36 @@ const createStore = () => {
2219
removeProvider: (indexToRemove: number) =>
2320
update((previous) => ({
2421
...previous,
25-
storageProviders: [
26-
...previous.storageProviders.filter(
27-
(_provider: StorageProvider, providerIndex: number) =>
28-
providerIndex !== indexToRemove,
29-
),
30-
],
22+
storageProviders: previous.storageProviders.filter(
23+
(_, i) => i !== indexToRemove,
24+
),
3125
})),
3226
resetProviders: () =>
3327
update((previous) => ({
3428
...previous,
35-
storageProviders: cloneProviders(),
29+
storageProviders: defaultOptions.storageProviders.map((p) => ({
30+
...p,
31+
})),
3632
})),
37-
moveProviderUp: (providerIndex: number) => {
33+
moveProviderUp: (providerIndex: number) =>
3834
update((previous) => ({
3935
...previous,
40-
storageProviders: [
41-
...arraymove(
42-
previous.storageProviders,
43-
providerIndex,
44-
getUpperIndex(previous.storageProviders.length, providerIndex),
45-
),
46-
],
47-
}));
48-
},
49-
moveProviderDown: (providerIndex: number) => {
36+
storageProviders: arraymove(
37+
previous.storageProviders,
38+
providerIndex,
39+
getUpperIndex(previous.storageProviders.length, providerIndex),
40+
),
41+
})),
42+
moveProviderDown: (providerIndex: number) =>
5043
update((previous) => ({
5144
...previous,
52-
storageProviders: [
53-
...arraymove(
54-
previous.storageProviders,
55-
providerIndex,
56-
getLowerIndex(previous.storageProviders.length, providerIndex),
57-
),
58-
],
59-
}));
60-
},
61-
loadFromStorage: () => getOptions().then(set),
45+
storageProviders: arraymove(
46+
previous.storageProviders,
47+
providerIndex,
48+
getLowerIndex(previous.storageProviders.length, providerIndex),
49+
),
50+
})),
51+
loadFromStorage: async () => set(await getOptions()),
6252
};
6353
};
6454

0 commit comments

Comments
 (0)