@welshman/store 0.6.8 → 0.7.0

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.
Files changed (56) hide show
  1. package/dist/lib/src/Tools.d.ts +36 -9
  2. package/dist/lib/src/Tools.d.ts.map +1 -1
  3. package/dist/lib/src/Tools.js +86 -38
  4. package/dist/lib/src/Tools.js.map +1 -1
  5. package/dist/net/src/repository.js +1 -1
  6. package/dist/net/src/repository.js.map +1 -1
  7. package/dist/store/src/index.d.ts +1 -5
  8. package/dist/store/src/index.d.ts.map +1 -1
  9. package/dist/store/src/index.js +1 -5
  10. package/dist/store/src/index.js.map +1 -1
  11. package/dist/store/src/misc.d.ts +18 -0
  12. package/dist/store/src/misc.d.ts.map +1 -0
  13. package/dist/store/src/misc.js +66 -0
  14. package/dist/store/src/misc.js.map +1 -0
  15. package/dist/store/src/repository.d.ts +49 -11
  16. package/dist/store/src/repository.d.ts.map +1 -1
  17. package/dist/store/src/repository.js +293 -81
  18. package/dist/store/src/repository.js.map +1 -1
  19. package/dist/tsconfig.build.tsbuildinfo +1 -1
  20. package/dist/util/src/Keys.d.ts +37 -0
  21. package/dist/util/src/Keys.d.ts.map +1 -0
  22. package/dist/util/src/Keys.js +26 -0
  23. package/dist/util/src/Keys.js.map +1 -0
  24. package/dist/util/src/Kinds.d.ts +8 -1
  25. package/dist/util/src/Kinds.d.ts.map +1 -1
  26. package/dist/util/src/Kinds.js +8 -1
  27. package/dist/util/src/Kinds.js.map +1 -1
  28. package/dist/util/src/Pow.d.ts +11 -0
  29. package/dist/util/src/Pow.d.ts.map +1 -0
  30. package/dist/util/src/Pow.js +127 -0
  31. package/dist/util/src/Pow.js.map +1 -0
  32. package/dist/util/src/Relay.d.ts +1 -1
  33. package/dist/util/src/Relay.d.ts.map +1 -1
  34. package/dist/util/src/Relay.js +1 -1
  35. package/dist/util/src/Relay.js.map +1 -1
  36. package/dist/util/src/index.d.ts +2 -0
  37. package/dist/util/src/index.d.ts.map +1 -1
  38. package/dist/util/src/index.js +2 -0
  39. package/dist/util/src/index.js.map +1 -1
  40. package/package.json +4 -4
  41. package/dist/store/src/collection.d.ts +0 -34
  42. package/dist/store/src/collection.d.ts.map +0 -1
  43. package/dist/store/src/collection.js +0 -82
  44. package/dist/store/src/collection.js.map +0 -1
  45. package/dist/store/src/custom.d.ts +0 -10
  46. package/dist/store/src/custom.d.ts.map +0 -1
  47. package/dist/store/src/custom.js +0 -41
  48. package/dist/store/src/custom.js.map +0 -1
  49. package/dist/store/src/getter.d.ts +0 -11
  50. package/dist/store/src/getter.d.ts.map +0 -1
  51. package/dist/store/src/getter.js +0 -11
  52. package/dist/store/src/getter.js.map +0 -1
  53. package/dist/store/src/memoize.d.ts +0 -5
  54. package/dist/store/src/memoize.d.ts.map +0 -1
  55. package/dist/store/src/memoize.js +0 -6
  56. package/dist/store/src/memoize.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { Readable, Unsubscriber, Writable, Subscriber, Stores, StoresValues } from "svelte/store";
2
+ export declare const getter: <T>(store: Readable<T>, { threshold }?: {
3
+ threshold?: number;
4
+ }) => () => T;
5
+ export type WritableWithGetter<T> = Writable<T> & {
6
+ get: () => T;
7
+ };
8
+ export type ReadableWithGetter<T> = Readable<T> & {
9
+ get: () => T;
10
+ };
11
+ export declare function withGetter<T>(store: Writable<T>): WritableWithGetter<T>;
12
+ export declare function withGetter<T>(store: Readable<T>): ReadableWithGetter<T>;
13
+ export declare const memoized: <T>(store: Readable<T>) => {
14
+ subscribe: (f: Subscriber<T>) => Unsubscriber;
15
+ };
16
+ export declare const throttled: <T, S extends Readable<T>>(delay: number, store: S) => S;
17
+ export declare const deriveDeduplicated: <S extends Stores, T>(stores: S, get: (storeValues: StoresValues<S>) => T) => Readable<T>;
18
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,MAAM,EACN,YAAY,EACb,MAAM,cAAc,CAAA;AAMrB,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAkB;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAM,YA0CxF,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAC,CAAA;AAChE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAC,CAAA;AAEhE,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;AACxE,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAKxE,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC;mBAGX,UAAU,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,MAQ1E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EACpD,QAAQ,CAAC,EACT,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KACvC,QAAQ,CAAC,CAAC,CAWZ,CAAA"}
@@ -0,0 +1,66 @@
1
+ import { get, derived, } from "svelte/store";
2
+ import { memoize, throttle } from "@welshman/lib";
3
+ // Smart getter that adjusts between svelte's get and aggressive subscription depending on how hot
4
+ // the path is
5
+ export const getter = (store, { threshold = 10 } = {}) => {
6
+ const calls = [];
7
+ let unsubscribe;
8
+ let offset = 0;
9
+ let value;
10
+ return () => {
11
+ const now = Date.now();
12
+ const cutoff = now - 1000;
13
+ // Find the first timestamp within the window (avoid expensive shift)
14
+ while (offset < calls.length && calls[offset] < cutoff) {
15
+ offset++;
16
+ }
17
+ // Periodically clean up old timestamps to prevent unbounded growth
18
+ if (offset > 100) {
19
+ calls.splice(0, offset);
20
+ offset = 0;
21
+ }
22
+ // Add current timestamp
23
+ calls.push(now);
24
+ // Check if call rate exceeds threshold and switch to more aggressive mode
25
+ if (calls.length - offset > threshold) {
26
+ if (!unsubscribe) {
27
+ unsubscribe = store.subscribe((newValue) => {
28
+ value = newValue;
29
+ });
30
+ }
31
+ return value;
32
+ }
33
+ else {
34
+ if (unsubscribe) {
35
+ unsubscribe();
36
+ unsubscribe = undefined;
37
+ }
38
+ return get(store);
39
+ }
40
+ };
41
+ };
42
+ export function withGetter(store) {
43
+ return { ...store, get: getter(store) };
44
+ }
45
+ export const memoized = (store) => {
46
+ const { subscribe } = store;
47
+ return { ...store, subscribe: (f) => subscribe(memoize(f)) };
48
+ };
49
+ export const throttled = (delay, store) => {
50
+ if (delay) {
51
+ const { subscribe } = store;
52
+ store = { ...store, subscribe: (f) => subscribe(throttle(delay, f)) };
53
+ }
54
+ return store;
55
+ };
56
+ export const deriveDeduplicated = (stores, get) => {
57
+ let prev;
58
+ return derived(stores, (storeValues, set) => {
59
+ const result = get(storeValues);
60
+ if (prev !== result) {
61
+ prev = result;
62
+ set(result);
63
+ }
64
+ });
65
+ };
66
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,54 @@
1
+ import { Readable } from "svelte/store";
2
+ import { Maybe, MaybeAsync } from "@welshman/lib";
1
3
  import { Filter, TrustedEvent } from "@welshman/util";
2
- import { Repository } from "@welshman/net";
3
- export type DeriveEventsMappedOptions<T> = {
4
+ import { Repository, Tracker } from "@welshman/net";
5
+ export type EventsById = Map<string, TrustedEvent>;
6
+ export type DeriveEventsByIdOptions = {
4
7
  filters: Filter[];
5
- eventToItem: (event: TrustedEvent) => undefined | T | T[] | Promise<undefined | T | T[]>;
6
- itemToEvent: (item: T) => TrustedEvent;
7
- throttle?: number;
8
+ repository: Repository;
8
9
  includeDeleted?: boolean;
9
10
  };
10
- export declare const deriveEventsMapped: <T>(repository: Repository, { filters, eventToItem, itemToEvent, throttle, includeDeleted, }: DeriveEventsMappedOptions<T>) => import("./getter.js").WritableWithGetter<T[]>;
11
- export type DeriveEventsOptions<T> = Omit<DeriveEventsMappedOptions<T>, "itemToEvent" | "eventToItem">;
12
- export declare const deriveEvents: <T>(repository: Repository, opts: DeriveEventsOptions<T>) => import("./getter.js").WritableWithGetter<TrustedEvent[]>;
13
- export declare const deriveEvent: (repository: Repository, idOrAddress: string) => import("svelte/store").Readable<TrustedEvent | undefined>;
14
- export declare const deriveIsDeleted: (repository: Repository, event: TrustedEvent) => import("./getter.js").WritableWithGetter<boolean>;
15
- export declare const deriveIsDeletedByAddress: (repository: Repository, event: TrustedEvent) => import("./getter.js").WritableWithGetter<boolean>;
11
+ export declare const deriveEventsById: ({ filters, repository, includeDeleted, }: DeriveEventsByIdOptions) => Readable<Map<string, TrustedEvent>>;
12
+ export declare const deriveArray: <T>(itemsByIdStore: Readable<Map<string, T>>) => Readable<T[]>;
13
+ export declare const deriveEventsAsc: (eventsByIdStore: Readable<EventsById>) => Readable<TrustedEvent[]>;
14
+ export declare const deriveEventsDesc: (eventsByIdStore: Readable<EventsById>) => Readable<TrustedEvent[]>;
15
+ export type DeriveEventOptions = {
16
+ repository: Repository;
17
+ includeDeleted?: boolean;
18
+ onDerive?: (filters: Filter[], ...args: any[]) => void;
19
+ };
20
+ export declare const makeDeriveEvent: ({ repository, includeDeleted, onDerive, }: DeriveEventOptions) => (idOrAddress: string, ...args: any[]) => Readable<Maybe<TrustedEvent>>;
21
+ export type EventsByIdByUrl = Map<string, EventsById>;
22
+ export type DeriveEventsByIdByUrlOptions = DeriveEventsByIdOptions & {
23
+ tracker: Tracker;
24
+ };
25
+ export declare const deriveEventsByIdByUrl: ({ filters, tracker, repository, includeDeleted, }: DeriveEventsByIdByUrlOptions) => Readable<EventsByIdByUrl>;
26
+ export type DeriveEventsByIdForUrlOptions = DeriveEventsByIdOptions & {
27
+ url: string;
28
+ tracker: Tracker;
29
+ };
30
+ export declare const deriveEventsByIdForUrl: ({ url, filters, tracker, repository, includeDeleted, }: DeriveEventsByIdForUrlOptions) => Readable<EventsById>;
31
+ export type ItemsByKey<T> = Map<string, T>;
32
+ export type EventToItem<T> = (event: TrustedEvent) => MaybeAsync<Maybe<T>>;
33
+ export type GetItem<T> = (key: string, ...args: any[]) => Maybe<T>;
34
+ export type DeriveItemsByKeyOptions<T> = {
35
+ getKey: (item: T) => string;
36
+ filters: Filter[];
37
+ repository: Repository;
38
+ eventToItem: EventToItem<T>;
39
+ includeDeleted?: boolean;
40
+ };
41
+ export declare const deriveItemsByKey: <T>({ getKey, filters, repository, eventToItem, includeDeleted, }: DeriveItemsByKeyOptions<T>) => Readable<Map<string, T>>;
42
+ export declare const deriveItems: <T>(itemsByKeyStore: Readable<ItemsByKey<T>>) => Readable<T[]>;
43
+ export declare const deriveItemsSorted: <T>(sortFn: (item: T) => number, itemsStore: Readable<T[]>) => Readable<T[]>;
44
+ export declare const makeDeriveItem: <T>(itemsByKeyStore: Readable<ItemsByKey<T>>, onDerive?: (key: string, ...args: any[]) => void) => (key?: string, ...args: any[]) => Readable<T | undefined>;
45
+ export type LoadItem = (key: string, ...args: any[]) => Promise<unknown>;
46
+ export declare const makeForceLoadItem: <T>(loadItem: LoadItem, getItem: GetItem<T>) => (key: string, ...args: any[]) => Promise<T | undefined>;
47
+ export type MakeLoadItemOptions = {
48
+ getFetched?: (key: string) => number;
49
+ setFetched?: (key: string, ts: number) => void;
50
+ timeout?: number;
51
+ };
52
+ export declare const makeLoadItem: <T>(loadItem: LoadItem, getItem: GetItem<T>, options?: MakeLoadItemOptions) => (key: string, ...args: any[]) => Promise<Maybe<T>>;
53
+ export declare const deriveIsDeleted: (repository: Repository, event: TrustedEvent) => Readable<boolean>;
16
54
  //# sourceMappingURL=repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/repository.ts"],"names":[],"mappings":"AAUA,OAAO,EAA8C,MAAM,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChG,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAGxC,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IACzC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACxF,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,YAAY,UAAU,EACtB,kEAMG,yBAAyB,CAAC,CAAC,CAAC,kDAkG9B,CAAA;AAEH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,IAAI,CACvC,yBAAyB,CAAC,CAAC,CAAC,EAC5B,aAAa,GAAG,aAAa,CAC9B,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,YAAY,UAAU,EAAE,MAAM,mBAAmB,CAAC,CAAC,CAAC,6DAKhF,CAAA;AAEJ,eAAO,MAAM,WAAW,GAAI,YAAY,UAAU,EAAE,aAAa,MAAM,8DAOpE,CAAA;AAEH,eAAO,MAAM,eAAe,GAAI,YAAY,UAAU,EAAE,OAAO,YAAY,sDASvE,CAAA;AAEJ,eAAO,MAAM,wBAAwB,GAAI,YAAY,UAAU,EAAE,OAAO,YAAY,sDAShF,CAAA"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/repository.ts"],"names":[],"mappings":"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"}
@@ -1,100 +1,312 @@
1
- import { derived } from "svelte/store";
2
- import { sortBy, identity, ensurePlural, removeUndefined, batch, partition, first, } from "@welshman/lib";
3
- import { matchFilters, getIdAndAddress, getIdFilters } from "@welshman/util";
4
- import { custom } from "./custom.js";
5
- export const deriveEventsMapped = (repository, { filters, eventToItem, itemToEvent, throttle = 0, includeDeleted = false, }) => custom(setter => {
6
- let data = [];
7
- const deferred = new Set();
8
- const defer = (event, promise) => {
9
- deferred.add(event.id);
10
- void promise.then(items => {
11
- if (deferred.has(event.id)) {
12
- deferred.delete(event.id);
13
- for (const item of removeUndefined(ensurePlural(items))) {
14
- data.push(item);
1
+ import { readable } from "svelte/store";
2
+ import { on, assoc, now, mapPop, call, sortBy, first } from "@welshman/lib";
3
+ import { matchFilters, getIdFilters } from "@welshman/util";
4
+ import { deriveDeduplicated } from "./misc.js";
5
+ export const deriveEventsById = ({ filters, repository, includeDeleted, }) => {
6
+ const eventsById = new Map();
7
+ return readable(eventsById, set => {
8
+ for (const event of repository.query(filters, { includeDeleted })) {
9
+ eventsById.set(event.id, event);
10
+ }
11
+ set(eventsById);
12
+ return on(repository, "update", ({ added, removed }) => {
13
+ let dirty = false;
14
+ for (const event of added) {
15
+ if (matchFilters(filters, event)) {
16
+ dirty = true;
17
+ eventsById.set(event.id, event);
15
18
  }
16
- setter(sortBy(item => -itemToEvent(item).created_at, data));
19
+ }
20
+ for (const id of removed) {
21
+ if (mapPop(id, eventsById)) {
22
+ dirty = true;
23
+ }
24
+ }
25
+ if (dirty) {
26
+ set(eventsById);
17
27
  }
18
28
  });
29
+ });
30
+ };
31
+ export const deriveArray = (itemsByIdStore) => deriveDeduplicated(itemsByIdStore, itemsById => Array.from(itemsById.values()));
32
+ export const deriveEventsAsc = (eventsByIdStore) => deriveDeduplicated(eventsByIdStore, eventsById => sortBy(e => e.created_at, eventsById.values()));
33
+ export const deriveEventsDesc = (eventsByIdStore) => deriveDeduplicated(eventsByIdStore, eventsById => sortBy(e => -e.created_at, eventsById.values()));
34
+ export const makeDeriveEvent = ({ repository, includeDeleted = false, onDerive, }) => {
35
+ return (idOrAddress, ...args) => {
36
+ const filters = getIdFilters([idOrAddress]);
37
+ onDerive?.(filters, ...args);
38
+ return readable(undefined, set => {
39
+ let event = first(repository.query(filters, { includeDeleted }));
40
+ set(event);
41
+ return on(repository, "update", ({ added, removed }) => {
42
+ for (const newEvent of added) {
43
+ if (matchFilters(filters, newEvent)) {
44
+ event = newEvent;
45
+ set(event);
46
+ }
47
+ }
48
+ for (const id of removed) {
49
+ if (event?.id === id) {
50
+ set(undefined);
51
+ }
52
+ }
53
+ });
54
+ });
19
55
  };
20
- for (const event of repository.query(filters, { includeDeleted })) {
21
- const items = eventToItem(event);
22
- if (!items) {
23
- continue;
24
- }
25
- if (items instanceof Promise) {
26
- defer(event, items);
56
+ };
57
+ export const deriveEventsByIdByUrl = ({ filters, tracker, repository, includeDeleted, }) => {
58
+ const eventsByIdByUrl = new Map();
59
+ const addEvent = (url, event) => {
60
+ if (!matchFilters(filters, event))
61
+ return false;
62
+ const eventsById = eventsByIdByUrl.get(url);
63
+ if (eventsById?.has(event.id))
64
+ return false;
65
+ // Create a new map so we can detect which key changed
66
+ const newEventsById = new Map(eventsById);
67
+ newEventsById.set(event.id, event);
68
+ eventsByIdByUrl.set(url, newEventsById);
69
+ return true;
70
+ };
71
+ const removeEvent = (url, id) => {
72
+ const eventsById = eventsByIdByUrl.get(url);
73
+ if (eventsById?.has(id)) {
74
+ eventsById.delete(id);
75
+ if (eventsById.size === 0) {
76
+ eventsByIdByUrl.delete(url);
77
+ }
78
+ else {
79
+ // Create a new map so we can detect which key changed
80
+ eventsByIdByUrl.set(url, new Map(eventsById));
81
+ }
82
+ return true;
27
83
  }
28
- else {
29
- for (const item of removeUndefined(ensurePlural(items))) {
30
- data.push(item);
84
+ return false;
85
+ };
86
+ return readable(eventsByIdByUrl, set => {
87
+ for (const event of repository.query(filters, { includeDeleted })) {
88
+ for (const url of tracker.getRelays(event.id)) {
89
+ addEvent(url, event);
31
90
  }
32
91
  }
33
- }
34
- setter(sortBy(item => -itemToEvent(item).created_at, data));
35
- const onUpdate = batch(300, (updates) => {
36
- const removed = new Set();
37
- const added = new Map();
38
- // Apply updates in order
39
- for (const update of updates) {
40
- for (const event of update.added.values()) {
41
- added.set(event.id, event);
42
- removed.delete(event.id);
92
+ set(eventsByIdByUrl);
93
+ const unsubscribers = [
94
+ on(repository, "update", ({ added, removed }) => {
95
+ let dirty = false;
96
+ for (const event of added) {
97
+ for (const url of tracker.getRelays(event.id)) {
98
+ dirty = dirty || addEvent(url, event);
99
+ }
100
+ }
101
+ for (const id of removed) {
102
+ for (const url of tracker.getRelays(id)) {
103
+ dirty = dirty || removeEvent(url, id);
104
+ }
105
+ }
106
+ if (dirty) {
107
+ set(eventsByIdByUrl);
108
+ }
109
+ }),
110
+ on(tracker, "add", (id, url) => {
111
+ const event = repository.getEvent(id);
112
+ if (event && addEvent(url, event)) {
113
+ set(eventsByIdByUrl);
114
+ }
115
+ }),
116
+ on(tracker, "remove", (id, url) => {
117
+ if (removeEvent(url, id)) {
118
+ set(eventsByIdByUrl);
119
+ }
120
+ }),
121
+ on(tracker, "load", () => {
122
+ eventsByIdByUrl.clear();
123
+ for (const event of repository.query(filters, { includeDeleted })) {
124
+ for (const url of tracker.getRelays(event.id)) {
125
+ addEvent(url, event);
126
+ }
127
+ }
128
+ set(eventsByIdByUrl);
129
+ }),
130
+ on(tracker, "clear", () => {
131
+ eventsByIdByUrl.clear();
132
+ set(eventsByIdByUrl);
133
+ }),
134
+ ];
135
+ return () => unsubscribers.forEach(call);
136
+ });
137
+ };
138
+ export const deriveEventsByIdForUrl = ({ url, filters, tracker, repository, includeDeleted, }) => {
139
+ const eventsById = new Map();
140
+ return readable(eventsById, set => {
141
+ const reset = () => {
142
+ const initialIds = Array.from(tracker.getIds(url));
143
+ const initialFilters = filters.map(assoc("ids", initialIds));
144
+ eventsById.clear();
145
+ for (const event of repository.query(initialFilters, { includeDeleted })) {
146
+ eventsById.set(event.id, event);
43
147
  }
44
- for (const id of update.removed) {
45
- removed.add(id);
46
- added.delete(id);
47
- deferred.delete(id);
148
+ set(eventsById);
149
+ };
150
+ reset();
151
+ const unsubscribers = [
152
+ on(repository, "update", ({ added, removed }) => {
153
+ let dirty = false;
154
+ for (const event of added) {
155
+ if (tracker.hasRelay(event.id, url) && matchFilters(filters, event)) {
156
+ eventsById.set(event.id, event);
157
+ dirty = true;
158
+ }
159
+ }
160
+ for (const id of removed) {
161
+ if (eventsById.has(id)) {
162
+ eventsById.delete(id);
163
+ dirty = true;
164
+ }
165
+ }
166
+ if (dirty) {
167
+ set(eventsById);
168
+ }
169
+ }),
170
+ on(tracker, "add", (id, url) => {
171
+ const event = repository.getEvent(id);
172
+ if (event && tracker.hasRelay(id, url) && matchFilters(filters, event)) {
173
+ eventsById.set(id, event);
174
+ set(eventsById);
175
+ }
176
+ }),
177
+ on(tracker, "remove", (id, url) => {
178
+ if (eventsById.has(id)) {
179
+ eventsById.delete(id);
180
+ set(eventsById);
181
+ }
182
+ }),
183
+ on(tracker, "load", reset),
184
+ on(tracker, "clear", reset),
185
+ ];
186
+ return () => unsubscribers.forEach(call);
187
+ });
188
+ };
189
+ export const deriveItemsByKey = ({ getKey, filters, repository, eventToItem, includeDeleted, }) => {
190
+ const deferred = new Map();
191
+ const itemsByKey = new Map();
192
+ const idsByKey = new Map();
193
+ const keysById = new Map();
194
+ return readable(itemsByKey, set => {
195
+ const addEvent = async (event) => {
196
+ if (deferred.has(event.id))
197
+ return;
198
+ if (keysById.has(event.id))
199
+ return;
200
+ const itemOrPromise = eventToItem(event);
201
+ if (itemOrPromise instanceof Promise) {
202
+ deferred.set(event.id, itemOrPromise);
203
+ }
204
+ try {
205
+ const item = await itemOrPromise;
206
+ if (item) {
207
+ const key = getKey(item);
208
+ itemsByKey.set(key, item);
209
+ idsByKey.set(key, event.id);
210
+ keysById.set(event.id, key);
211
+ set(itemsByKey);
212
+ }
48
213
  }
214
+ finally {
215
+ deferred.delete(event.id);
216
+ }
217
+ };
218
+ for (const event of repository.query(filters, { includeDeleted })) {
219
+ addEvent(event);
49
220
  }
50
- let dirty = false;
51
- for (const event of added.values()) {
52
- if (matchFilters(filters, event)) {
53
- const items = eventToItem(event);
54
- if (items instanceof Promise) {
55
- defer(event, items);
56
- }
57
- else if (items) {
58
- dirty = true;
59
- for (const item of removeUndefined(ensurePlural(items))) {
60
- data.push(item);
221
+ return on(repository, "update", ({ added, removed }) => {
222
+ for (const event of added) {
223
+ if (matchFilters(filters, event)) {
224
+ addEvent(event);
225
+ }
226
+ }
227
+ if (!includeDeleted) {
228
+ let dirty = false;
229
+ for (const id of removed) {
230
+ const key = mapPop(id, keysById);
231
+ if (key) {
232
+ idsByKey.delete(key);
233
+ itemsByKey.delete(key);
234
+ dirty = true;
61
235
  }
62
236
  }
237
+ if (dirty) {
238
+ set(itemsByKey);
239
+ }
63
240
  }
241
+ });
242
+ });
243
+ };
244
+ export const deriveItems = (itemsByKeyStore) => deriveDeduplicated(itemsByKeyStore, itemsByKey => Array.from(itemsByKey.values()));
245
+ export const deriveItemsSorted = (sortFn, itemsStore) => deriveDeduplicated(itemsStore, items => sortBy(sortFn, items));
246
+ export const makeDeriveItem = (itemsByKeyStore, onDerive) => {
247
+ return (key, ...args) => {
248
+ if (!key)
249
+ return readable(undefined);
250
+ onDerive?.(key, ...args);
251
+ return deriveDeduplicated(itemsByKeyStore, itemsByKey => itemsByKey.get(key));
252
+ };
253
+ };
254
+ export const makeForceLoadItem = (loadItem, getItem) => {
255
+ return (key, ...args) => loadItem(key, ...args).then(() => getItem(key));
256
+ };
257
+ export const makeLoadItem = (loadItem, getItem, options = {}) => {
258
+ const timeout = options.timeout || 3600;
259
+ const fetched = new Map();
260
+ const getFetched = options.getFetched || ((key) => fetched.get(key) || 0);
261
+ const setFetched = options.setFetched || ((key, ts) => fetched.set(key, ts));
262
+ const pending = new Map();
263
+ const attempts = new Map();
264
+ return async (key, ...args) => {
265
+ const stale = getItem(key);
266
+ const fetched = getFetched(key);
267
+ // If we have an item, reload if it's relatively recent
268
+ if (stale && fetched > now() - timeout) {
269
+ return stale;
64
270
  }
65
- if (!includeDeleted && removed.size > 0) {
66
- const [deleted, ok] = partition((item) => getIdAndAddress(itemToEvent(item)).some((id) => removed.has(id)), data);
67
- if (deleted.length > 0) {
68
- dirty = true;
69
- data = ok;
70
- }
271
+ const pendingItem = pending.get(key);
272
+ // If we already are loading, await and return
273
+ if (pendingItem) {
274
+ return pendingItem;
275
+ }
276
+ const attempt = attempts.get(key) || 0;
277
+ // Use exponential backoff to throttle attempts
278
+ if (fetched > now() - Math.pow(2, attempt)) {
279
+ return stale;
71
280
  }
72
- if (dirty) {
73
- setter(sortBy(item => -itemToEvent(item).created_at, data));
281
+ attempts.set(key, attempt + 1);
282
+ setFetched(key, now());
283
+ const promise = loadItem(key, ...args).then(() => getItem(key));
284
+ pending.set(key, promise);
285
+ let item;
286
+ try {
287
+ item = await promise;
288
+ }
289
+ catch (e) {
290
+ console.warn(`Failed to load item ${key}`, e);
291
+ }
292
+ finally {
293
+ pending.delete(key);
294
+ }
295
+ if (item) {
296
+ attempts.delete(key);
297
+ }
298
+ return item;
299
+ };
300
+ };
301
+ // Miscellaneous other stuff
302
+ export const deriveIsDeleted = (repository, event) => readable(false, set => {
303
+ set(repository.isDeleted(event));
304
+ const unsubscribe = on(repository, "update", ({ removed }) => {
305
+ if (removed.has(event.id)) {
306
+ set(true);
307
+ unsubscribe();
74
308
  }
75
309
  });
76
- repository.on("update", onUpdate);
77
- return () => repository.off("update", onUpdate);
78
- }, { throttle });
79
- export const deriveEvents = (repository, opts) => deriveEventsMapped(repository, {
80
- ...opts,
81
- eventToItem: identity,
82
- itemToEvent: identity,
83
- });
84
- export const deriveEvent = (repository, idOrAddress) => derived(deriveEvents(repository, {
85
- filters: getIdFilters([idOrAddress]),
86
- includeDeleted: true,
87
- }), first);
88
- export const deriveIsDeleted = (repository, event) => custom(setter => {
89
- setter(repository.isDeleted(event));
90
- const onUpdate = batch(300, () => setter(repository.isDeleted(event)));
91
- repository.on("update", onUpdate);
92
- return () => repository.off("update", onUpdate);
93
- });
94
- export const deriveIsDeletedByAddress = (repository, event) => custom(setter => {
95
- setter(repository.isDeletedByAddress(event));
96
- const onUpdate = batch(300, () => setter(repository.isDeletedByAddress(event)));
97
- repository.on("update", onUpdate);
98
- return () => repository.off("update", onUpdate);
310
+ return unsubscribe;
99
311
  });
100
312
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/repository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/collection.ts","../src/custom.ts","../src/getter.ts","../src/index.ts","../src/memoize.ts","../src/repository.ts","../src/synced.ts","../src/throttle.ts"],"version":"5.8.2"}
1
+ {"root":["../src/index.ts","../src/misc.ts","../src/repository.ts","../src/synced.ts","../src/throttle.ts"],"version":"5.8.2"}