@welshman/store 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/index.cjs +26 -11
- package/build/src/index.cjs.map +1 -1
- package/build/src/index.d.ts +10 -9
- package/build/src/index.mjs +25 -11
- package/build/src/index.mjs.map +1 -1
- package/package.json +3 -3
package/build/src/index.cjs
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deriveIsDeletedByAddress = exports.deriveEvent = exports.deriveEvents = exports.deriveEventsMapped = exports.createEventStore = exports.throttled = exports.
|
|
3
|
+
exports.deriveIsDeletedByAddress = exports.deriveEvent = exports.deriveEvents = exports.deriveEventsMapped = exports.createEventStore = exports.throttled = exports.adapter = exports.custom = exports.withGetter = exports.getter = exports.synced = void 0;
|
|
4
4
|
const throttle_debounce_1 = require("throttle-debounce");
|
|
5
5
|
const store_1 = require("svelte/store");
|
|
6
6
|
const lib_1 = require("@welshman/lib");
|
|
7
7
|
const util_1 = require("@welshman/util");
|
|
8
|
+
// Generic store utils
|
|
9
|
+
const synced = (key, defaultValue) => {
|
|
10
|
+
const init = (0, lib_1.getJson)(key);
|
|
11
|
+
const store = (0, store_1.writable)(init === null ? defaultValue : init);
|
|
12
|
+
store.subscribe((value) => (0, lib_1.setJson)(key, value));
|
|
13
|
+
return store;
|
|
14
|
+
};
|
|
15
|
+
exports.synced = synced;
|
|
8
16
|
const getter = (store) => {
|
|
9
17
|
let value;
|
|
10
18
|
store.subscribe((newValue) => {
|
|
@@ -13,6 +21,10 @@ const getter = (store) => {
|
|
|
13
21
|
return () => value;
|
|
14
22
|
};
|
|
15
23
|
exports.getter = getter;
|
|
24
|
+
function withGetter(store) {
|
|
25
|
+
return { ...store, get: (0, exports.getter)(store) };
|
|
26
|
+
}
|
|
27
|
+
exports.withGetter = withGetter;
|
|
16
28
|
const custom = (start, opts = {}) => {
|
|
17
29
|
const subs = [];
|
|
18
30
|
let value;
|
|
@@ -50,23 +62,26 @@ const adapter = ({ store, forward, backward, }) => ({
|
|
|
50
62
|
update: (f) => store.update((x) => backward(f(forward(x)))),
|
|
51
63
|
});
|
|
52
64
|
exports.adapter = adapter;
|
|
53
|
-
function withGetter(store) {
|
|
54
|
-
return { ...store, get: (0, exports.getter)(store) };
|
|
55
|
-
}
|
|
56
|
-
exports.withGetter = withGetter;
|
|
57
65
|
const throttled = (delay, store) => (0, exports.custom)(set => store.subscribe((0, throttle_debounce_1.throttle)(delay, set)));
|
|
58
66
|
exports.throttled = throttled;
|
|
59
|
-
|
|
67
|
+
// Event related stores
|
|
68
|
+
const createEventStore = (repository, migrate) => {
|
|
60
69
|
let subs = [];
|
|
61
|
-
const onUpdate = (
|
|
70
|
+
const onUpdate = () => {
|
|
62
71
|
const $events = repository.dump();
|
|
63
72
|
for (const sub of subs) {
|
|
64
73
|
sub($events);
|
|
65
74
|
}
|
|
66
|
-
}
|
|
75
|
+
};
|
|
76
|
+
const setEvents = (events) => {
|
|
77
|
+
if (migrate) {
|
|
78
|
+
events = migrate(events);
|
|
79
|
+
}
|
|
80
|
+
repository.load(events);
|
|
81
|
+
};
|
|
67
82
|
return {
|
|
68
|
-
set: (events) =>
|
|
69
|
-
update: (f) =>
|
|
83
|
+
set: (events) => setEvents(events),
|
|
84
|
+
update: (f) => setEvents(f(repository.dump())),
|
|
70
85
|
subscribe: (f) => {
|
|
71
86
|
f(repository.dump());
|
|
72
87
|
subs.push(f);
|
|
@@ -83,7 +98,7 @@ const createEventStore = (repository) => {
|
|
|
83
98
|
};
|
|
84
99
|
};
|
|
85
100
|
exports.createEventStore = createEventStore;
|
|
86
|
-
const deriveEventsMapped = (repository, { filters, eventToItem, itemToEvent, throttle =
|
|
101
|
+
const deriveEventsMapped = (repository, { filters, eventToItem, itemToEvent, throttle = 0, includeDeleted = false, }) => (0, exports.custom)(setter => {
|
|
87
102
|
let data = [];
|
|
88
103
|
const deferred = new Set();
|
|
89
104
|
const defer = (event, item) => {
|
package/build/src/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/src/index.d.ts
CHANGED
|
@@ -4,7 +4,14 @@ import type { Readable, Writable, Subscriber, Unsubscriber } from "svelte/store"
|
|
|
4
4
|
import type { Maybe } from "@welshman/lib";
|
|
5
5
|
import type { Repository } from "@welshman/util";
|
|
6
6
|
import type { Filter, TrustedEvent } from "@welshman/util";
|
|
7
|
+
export declare const synced: <T>(key: string, defaultValue: T) => Writable<T>;
|
|
7
8
|
export declare const getter: <T>(store: Readable<T>) => () => T;
|
|
9
|
+
export declare function withGetter<T>(store: Writable<T>): Writable<T> & {
|
|
10
|
+
get: () => T;
|
|
11
|
+
};
|
|
12
|
+
export declare function withGetter<T>(store: Readable<T>): Readable<T> & {
|
|
13
|
+
get: () => T;
|
|
14
|
+
};
|
|
8
15
|
type Start<T> = (set: Subscriber<T>) => Unsubscriber;
|
|
9
16
|
export declare const custom: <T>(start: Start<T>, opts?: {
|
|
10
17
|
throttle?: number;
|
|
@@ -21,17 +28,11 @@ export declare const adapter: <Source, Target>({ store, forward, backward, }: {
|
|
|
21
28
|
update: (f: (x: Target) => Target) => void;
|
|
22
29
|
subscribe(this: void, run: Subscriber<Target>, invalidate?: import("svelte/store").Invalidator<Target> | undefined): Unsubscriber;
|
|
23
30
|
};
|
|
24
|
-
export declare function withGetter<T>(store: Writable<T>): Writable<T> & {
|
|
25
|
-
get: () => T;
|
|
26
|
-
};
|
|
27
|
-
export declare function withGetter<T>(store: Readable<T>): Readable<T> & {
|
|
28
|
-
get: () => T;
|
|
29
|
-
};
|
|
30
31
|
export declare const throttled: <T>(delay: number, store: Readable<T>) => {
|
|
31
|
-
set: (newValue:
|
|
32
|
-
subscribe: (sub: Subscriber<
|
|
32
|
+
set: (newValue: T) => void;
|
|
33
|
+
subscribe: (sub: Subscriber<T>) => () => void;
|
|
33
34
|
};
|
|
34
|
-
export declare const createEventStore: (repository: Repository) => Writable<TrustedEvent[]>;
|
|
35
|
+
export declare const createEventStore: (repository: Repository, migrate?: ((events: TrustedEvent[]) => TrustedEvent[]) | undefined) => Writable<TrustedEvent[]>;
|
|
35
36
|
export declare const deriveEventsMapped: <T>(repository: Repository, { filters, eventToItem, itemToEvent, throttle, includeDeleted, }: {
|
|
36
37
|
filters: Filter[];
|
|
37
38
|
eventToItem: (event: TrustedEvent) => Maybe<T | Promise<T>>;
|
package/build/src/index.mjs
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { throttle } from "throttle-debounce";
|
|
2
|
-
import { derived } from "svelte/store";
|
|
3
|
-
import { identity, batch, partition, first } from "@welshman/lib";
|
|
2
|
+
import { derived, writable } from "svelte/store";
|
|
3
|
+
import { identity, getJson, setJson, batch, partition, first } from "@welshman/lib";
|
|
4
4
|
import { matchFilters, getIdAndAddress, getIdFilters } from "@welshman/util";
|
|
5
|
+
// Generic store utils
|
|
6
|
+
export const synced = (key, defaultValue) => {
|
|
7
|
+
const init = getJson(key);
|
|
8
|
+
const store = writable(init === null ? defaultValue : init);
|
|
9
|
+
store.subscribe((value) => setJson(key, value));
|
|
10
|
+
return store;
|
|
11
|
+
};
|
|
5
12
|
export const getter = (store) => {
|
|
6
13
|
let value;
|
|
7
14
|
store.subscribe((newValue) => {
|
|
@@ -9,6 +16,9 @@ export const getter = (store) => {
|
|
|
9
16
|
});
|
|
10
17
|
return () => value;
|
|
11
18
|
};
|
|
19
|
+
export function withGetter(store) {
|
|
20
|
+
return { ...store, get: getter(store) };
|
|
21
|
+
}
|
|
12
22
|
export const custom = (start, opts = {}) => {
|
|
13
23
|
const subs = [];
|
|
14
24
|
let value;
|
|
@@ -44,21 +54,25 @@ export const adapter = ({ store, forward, backward, }) => ({
|
|
|
44
54
|
set: (x) => store.set(backward(x)),
|
|
45
55
|
update: (f) => store.update((x) => backward(f(forward(x)))),
|
|
46
56
|
});
|
|
47
|
-
export function withGetter(store) {
|
|
48
|
-
return { ...store, get: getter(store) };
|
|
49
|
-
}
|
|
50
57
|
export const throttled = (delay, store) => custom(set => store.subscribe(throttle(delay, set)));
|
|
51
|
-
|
|
58
|
+
// Event related stores
|
|
59
|
+
export const createEventStore = (repository, migrate) => {
|
|
52
60
|
let subs = [];
|
|
53
|
-
const onUpdate =
|
|
61
|
+
const onUpdate = () => {
|
|
54
62
|
const $events = repository.dump();
|
|
55
63
|
for (const sub of subs) {
|
|
56
64
|
sub($events);
|
|
57
65
|
}
|
|
58
|
-
}
|
|
66
|
+
};
|
|
67
|
+
const setEvents = (events) => {
|
|
68
|
+
if (migrate) {
|
|
69
|
+
events = migrate(events);
|
|
70
|
+
}
|
|
71
|
+
repository.load(events);
|
|
72
|
+
};
|
|
59
73
|
return {
|
|
60
|
-
set: (events) =>
|
|
61
|
-
update: (f) =>
|
|
74
|
+
set: (events) => setEvents(events),
|
|
75
|
+
update: (f) => setEvents(f(repository.dump())),
|
|
62
76
|
subscribe: (f) => {
|
|
63
77
|
f(repository.dump());
|
|
64
78
|
subs.push(f);
|
|
@@ -74,7 +88,7 @@ export const createEventStore = (repository) => {
|
|
|
74
88
|
},
|
|
75
89
|
};
|
|
76
90
|
};
|
|
77
|
-
export const deriveEventsMapped = (repository, { filters, eventToItem, itemToEvent, throttle =
|
|
91
|
+
export const deriveEventsMapped = (repository, { filters, eventToItem, itemToEvent, throttle = 0, includeDeleted = false, }) => custom(setter => {
|
|
78
92
|
let data = [];
|
|
79
93
|
const deferred = new Set();
|
|
80
94
|
const defer = (event, item) => {
|
package/build/src/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB;OACnC,EAAC,OAAO,EAAC,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@welshman/store",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"author": "hodlbod",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A collection of utilities based on svelte/store for use with welshman",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"typescript": "~5.1.6"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@welshman/lib": "0.0.
|
|
35
|
-
"@welshman/util": "0.0.
|
|
34
|
+
"@welshman/lib": "0.0.17",
|
|
35
|
+
"@welshman/util": "0.0.30",
|
|
36
36
|
"svelte": "^4.2.18"
|
|
37
37
|
}
|
|
38
38
|
}
|