applesauce-loaders 0.12.0 → 2.0.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 (72) hide show
  1. package/README.md +204 -57
  2. package/dist/helpers/address-pointer.d.ts +2 -2
  3. package/dist/helpers/address-pointer.js +11 -13
  4. package/dist/helpers/cache.d.ts +9 -0
  5. package/dist/helpers/cache.js +22 -0
  6. package/dist/helpers/event-pointer.js +10 -10
  7. package/dist/helpers/index.d.ts +5 -0
  8. package/dist/helpers/index.js +5 -0
  9. package/dist/helpers/loaders.d.ts +3 -0
  10. package/dist/helpers/loaders.js +27 -0
  11. package/dist/helpers/pointer.d.ts +2 -1
  12. package/dist/helpers/pointer.js +4 -2
  13. package/dist/helpers/upstream.d.ts +7 -0
  14. package/dist/helpers/upstream.js +13 -0
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.js +2 -1
  17. package/dist/loaders/address-loader.d.ts +37 -0
  18. package/dist/loaders/address-loader.js +94 -0
  19. package/dist/loaders/event-loader.d.ts +33 -0
  20. package/dist/loaders/event-loader.js +92 -0
  21. package/dist/loaders/index.d.ts +8 -9
  22. package/dist/loaders/index.js +8 -9
  23. package/dist/loaders/reactions-loader.d.ts +12 -0
  24. package/dist/loaders/reactions-loader.js +18 -0
  25. package/dist/loaders/social-graph.d.ts +21 -0
  26. package/dist/loaders/social-graph.js +50 -0
  27. package/dist/loaders/tag-value-loader.d.ts +19 -15
  28. package/dist/loaders/tag-value-loader.js +73 -71
  29. package/dist/loaders/timeline-loader.d.ts +24 -22
  30. package/dist/loaders/timeline-loader.js +49 -55
  31. package/dist/loaders/user-lists-loader.d.ts +26 -0
  32. package/dist/loaders/user-lists-loader.js +33 -0
  33. package/dist/loaders/zaps-loader.d.ts +12 -0
  34. package/dist/loaders/zaps-loader.js +18 -0
  35. package/dist/operators/complete-on-eose.d.ts +6 -0
  36. package/dist/operators/complete-on-eose.js +8 -0
  37. package/dist/operators/generator.d.ts +13 -0
  38. package/dist/operators/generator.js +72 -0
  39. package/dist/operators/index.d.ts +1 -1
  40. package/dist/operators/index.js +1 -1
  41. package/dist/types.d.ts +14 -0
  42. package/package.json +8 -8
  43. package/dist/helpers/__tests__/address-pointer.test.js +0 -19
  44. package/dist/helpers/rx-nostr.d.ts +0 -2
  45. package/dist/helpers/rx-nostr.js +0 -5
  46. package/dist/loaders/__tests__/dns-identity-loader.test.d.ts +0 -1
  47. package/dist/loaders/__tests__/dns-identity-loader.test.js +0 -59
  48. package/dist/loaders/__tests__/relay-timeline-loader.test.d.ts +0 -1
  49. package/dist/loaders/__tests__/relay-timeline-loader.test.js +0 -26
  50. package/dist/loaders/__tests__/request-loader.test.d.ts +0 -1
  51. package/dist/loaders/__tests__/request-loader.test.js +0 -37
  52. package/dist/loaders/cache-timeline-loader.d.ts +0 -22
  53. package/dist/loaders/cache-timeline-loader.js +0 -61
  54. package/dist/loaders/loader.d.ts +0 -20
  55. package/dist/loaders/loader.js +0 -22
  56. package/dist/loaders/relay-timeline-loader.d.ts +0 -24
  57. package/dist/loaders/relay-timeline-loader.js +0 -70
  58. package/dist/loaders/replaceable-loader.d.ts +0 -23
  59. package/dist/loaders/replaceable-loader.js +0 -106
  60. package/dist/loaders/request-loader.d.ts +0 -30
  61. package/dist/loaders/request-loader.js +0 -57
  62. package/dist/loaders/single-event-loader.d.ts +0 -26
  63. package/dist/loaders/single-event-loader.js +0 -76
  64. package/dist/loaders/user-sets-loader.d.ts +0 -31
  65. package/dist/loaders/user-sets-loader.js +0 -66
  66. package/dist/operators/__tests__/distinct-relays.test.d.ts +0 -1
  67. package/dist/operators/__tests__/distinct-relays.test.js +0 -75
  68. package/dist/operators/__tests__/generator-sequence.test.d.ts +0 -1
  69. package/dist/operators/__tests__/generator-sequence.test.js +0 -38
  70. package/dist/operators/generator-sequence.d.ts +0 -3
  71. package/dist/operators/generator-sequence.js +0 -53
  72. /package/dist/{helpers/__tests__/address-pointer.test.d.ts → types.js} +0 -0
@@ -1,38 +0,0 @@
1
- import { expect, it } from "vitest";
2
- import { lastValueFrom, of, toArray } from "rxjs";
3
- import { TestScheduler } from "rxjs/testing";
4
- import { generatorSequence } from "../generator-sequence.js";
5
- let testScheduler = new TestScheduler((actual, expected) => {
6
- expect(actual).toEqual(expected);
7
- });
8
- it("should work with normal generator functions", () => {
9
- testScheduler.run(({ expectObservable }) => {
10
- function* normalGenerator(value) {
11
- yield of(value + 1);
12
- yield of(value + 2);
13
- yield of(value + 3);
14
- yield value + 4;
15
- }
16
- const source$ = of(1).pipe(generatorSequence(normalGenerator));
17
- // Define expected marble diagram
18
- const expectedMarble = "(abcd|)";
19
- const expectedValues = {
20
- a: 2,
21
- b: 3,
22
- c: 4,
23
- d: 5,
24
- };
25
- expectObservable(source$).toBe(expectedMarble, expectedValues);
26
- });
27
- });
28
- it("should work with async generator functions", async () => {
29
- async function* asyncGenerator(value) {
30
- yield of(`${value}-1`);
31
- yield of(`${value}-2`);
32
- yield of(`${value}-3`);
33
- yield `${value}-4`;
34
- }
35
- const source$ = of("test").pipe(generatorSequence(asyncGenerator));
36
- const expectedValues = ["test-1", "test-2", "test-3", "test-4"];
37
- expect(await lastValueFrom(source$.pipe(toArray()))).toEqual(expectedValues);
38
- });
@@ -1,3 +0,0 @@
1
- import { Observable, OperatorFunction } from "rxjs";
2
- /** Keeps retrying a value until the generator returns */
3
- export declare function generatorSequence<Input, Result>(createGenerator: (value: Input) => Generator<Observable<Result> | Result, void, Result[] | undefined> | AsyncGenerator<Observable<Result> | Result, void, Result[] | undefined>, shouldComplete?: boolean): OperatorFunction<Input, Result>;
@@ -1,53 +0,0 @@
1
- import { isObservable, Observable } from "rxjs";
2
- /** Keeps retrying a value until the generator returns */
3
- export function generatorSequence(createGenerator, shouldComplete = true) {
4
- return (source) => {
5
- return new Observable((observer) => {
6
- return source.subscribe((value) => {
7
- const generator = createGenerator(value);
8
- const nextSequence = (prevResults) => {
9
- const p = generator.next(prevResults);
10
- const handleResult = (result) => {
11
- // generator complete, exit
12
- if (result.done) {
13
- if (shouldComplete)
14
- observer.complete();
15
- return;
16
- }
17
- const results = [];
18
- if (isObservable(result.value)) {
19
- result.value.subscribe({
20
- next: (v) => {
21
- // track results and pass along values
22
- results.push(v);
23
- observer.next(v);
24
- },
25
- error: (err) => {
26
- observer.error(err);
27
- },
28
- complete: () => {
29
- // run next step
30
- nextSequence(results);
31
- },
32
- });
33
- }
34
- else {
35
- results.push(result.value);
36
- observer.next(result.value);
37
- nextSequence(results);
38
- }
39
- };
40
- // if its an async generator, wait for the promise
41
- if (p instanceof Promise)
42
- p.then(handleResult, (err) => {
43
- observer.error(err);
44
- });
45
- else
46
- handleResult(p);
47
- };
48
- // start running steps
49
- nextSequence();
50
- });
51
- });
52
- };
53
- }