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.
- package/README.md +204 -57
- package/dist/helpers/address-pointer.d.ts +2 -2
- package/dist/helpers/address-pointer.js +11 -13
- package/dist/helpers/cache.d.ts +9 -0
- package/dist/helpers/cache.js +22 -0
- package/dist/helpers/event-pointer.js +10 -10
- package/dist/helpers/index.d.ts +5 -0
- package/dist/helpers/index.js +5 -0
- package/dist/helpers/loaders.d.ts +3 -0
- package/dist/helpers/loaders.js +27 -0
- package/dist/helpers/pointer.d.ts +2 -1
- package/dist/helpers/pointer.js +4 -2
- package/dist/helpers/upstream.d.ts +7 -0
- package/dist/helpers/upstream.js +13 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/loaders/address-loader.d.ts +37 -0
- package/dist/loaders/address-loader.js +94 -0
- package/dist/loaders/event-loader.d.ts +33 -0
- package/dist/loaders/event-loader.js +92 -0
- package/dist/loaders/index.d.ts +8 -9
- package/dist/loaders/index.js +8 -9
- package/dist/loaders/reactions-loader.d.ts +12 -0
- package/dist/loaders/reactions-loader.js +18 -0
- package/dist/loaders/social-graph.d.ts +21 -0
- package/dist/loaders/social-graph.js +50 -0
- package/dist/loaders/tag-value-loader.d.ts +19 -15
- package/dist/loaders/tag-value-loader.js +73 -71
- package/dist/loaders/timeline-loader.d.ts +24 -22
- package/dist/loaders/timeline-loader.js +49 -55
- package/dist/loaders/user-lists-loader.d.ts +26 -0
- package/dist/loaders/user-lists-loader.js +33 -0
- package/dist/loaders/zaps-loader.d.ts +12 -0
- package/dist/loaders/zaps-loader.js +18 -0
- package/dist/operators/complete-on-eose.d.ts +6 -0
- package/dist/operators/complete-on-eose.js +8 -0
- package/dist/operators/generator.d.ts +13 -0
- package/dist/operators/generator.js +72 -0
- package/dist/operators/index.d.ts +1 -1
- package/dist/operators/index.js +1 -1
- package/dist/types.d.ts +14 -0
- package/package.json +8 -8
- package/dist/helpers/__tests__/address-pointer.test.js +0 -19
- package/dist/helpers/rx-nostr.d.ts +0 -2
- package/dist/helpers/rx-nostr.js +0 -5
- package/dist/loaders/__tests__/dns-identity-loader.test.d.ts +0 -1
- package/dist/loaders/__tests__/dns-identity-loader.test.js +0 -59
- package/dist/loaders/__tests__/relay-timeline-loader.test.d.ts +0 -1
- package/dist/loaders/__tests__/relay-timeline-loader.test.js +0 -26
- package/dist/loaders/__tests__/request-loader.test.d.ts +0 -1
- package/dist/loaders/__tests__/request-loader.test.js +0 -37
- package/dist/loaders/cache-timeline-loader.d.ts +0 -22
- package/dist/loaders/cache-timeline-loader.js +0 -61
- package/dist/loaders/loader.d.ts +0 -20
- package/dist/loaders/loader.js +0 -22
- package/dist/loaders/relay-timeline-loader.d.ts +0 -24
- package/dist/loaders/relay-timeline-loader.js +0 -70
- package/dist/loaders/replaceable-loader.d.ts +0 -23
- package/dist/loaders/replaceable-loader.js +0 -106
- package/dist/loaders/request-loader.d.ts +0 -30
- package/dist/loaders/request-loader.js +0 -57
- package/dist/loaders/single-event-loader.d.ts +0 -26
- package/dist/loaders/single-event-loader.js +0 -76
- package/dist/loaders/user-sets-loader.d.ts +0 -31
- package/dist/loaders/user-sets-loader.js +0 -66
- package/dist/operators/__tests__/distinct-relays.test.d.ts +0 -1
- package/dist/operators/__tests__/distinct-relays.test.js +0 -75
- package/dist/operators/__tests__/generator-sequence.test.d.ts +0 -1
- package/dist/operators/__tests__/generator-sequence.test.js +0 -38
- package/dist/operators/generator-sequence.d.ts +0 -3
- package/dist/operators/generator-sequence.js +0 -53
- /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
|
-
}
|
|
File without changes
|