@welshman/net 0.0.13 → 0.0.14
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/Subscribe.cjs
CHANGED
|
@@ -33,11 +33,10 @@ const makeSubscription = (request) => {
|
|
|
33
33
|
const id = (0, lib_1.randomId)();
|
|
34
34
|
const emitter = new lib_1.Emitter();
|
|
35
35
|
const controller = new AbortController();
|
|
36
|
-
const result = (0, lib_1.defer)();
|
|
37
36
|
const tracker = request.tracker || new Tracker_1.Tracker();
|
|
38
37
|
const close = () => controller.abort();
|
|
39
38
|
emitter.setMaxListeners(100);
|
|
40
|
-
return { id, request, emitter, tracker, controller,
|
|
39
|
+
return { id, request, emitter, tracker, controller, close };
|
|
41
40
|
};
|
|
42
41
|
exports.makeSubscription = makeSubscription;
|
|
43
42
|
const calculateSubscriptionGroup = (sub) => {
|
|
@@ -61,6 +60,7 @@ const mergeSubscriptions = (subs) => {
|
|
|
61
60
|
const mergedSub = (0, exports.makeSubscription)({
|
|
62
61
|
relays: [relay],
|
|
63
62
|
timeout: callerSubs[0].request.timeout,
|
|
63
|
+
closeOnEose: callerSubs[0].request.closeOnEose,
|
|
64
64
|
filters: (0, util_1.unionFilters)(callerSubs.flatMap((sub) => sub.request.filters)),
|
|
65
65
|
});
|
|
66
66
|
for (const { id, controller, request } of callerSubs) {
|
|
@@ -122,20 +122,12 @@ const mergeSubscriptions = (subs) => {
|
|
|
122
122
|
mergedSubscriptions.push(mergedSub);
|
|
123
123
|
groupSubscriptions.push(mergedSub);
|
|
124
124
|
}
|
|
125
|
-
// Propagate promise resolution
|
|
126
|
-
Promise.all(groupSubscriptions.map(sub => sub.result))
|
|
127
|
-
.then((chunks) => {
|
|
128
|
-
const events = (0, lib_1.uniqBy)((event) => event.id, (0, lib_1.flatten)(chunks));
|
|
129
|
-
for (const sub of group) {
|
|
130
|
-
sub.result.resolve(events.filter((e) => (0, util_1.matchFilters)(sub.request.filters, e)));
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
125
|
}
|
|
134
126
|
return mergedSubscriptions;
|
|
135
127
|
};
|
|
136
128
|
exports.mergeSubscriptions = mergeSubscriptions;
|
|
137
129
|
const executeSubscription = (sub) => {
|
|
138
|
-
const {
|
|
130
|
+
const { request, emitter, tracker, controller } = sub;
|
|
139
131
|
const { timeout, filters, closeOnEose, relays, signal } = request;
|
|
140
132
|
const executor = Context_1.NetworkContext.getExecutor(relays);
|
|
141
133
|
const subs = [];
|
|
@@ -158,7 +150,6 @@ const executeSubscription = (sub) => {
|
|
|
158
150
|
}
|
|
159
151
|
});
|
|
160
152
|
emitter.on(SubscriptionEvent.Complete, () => {
|
|
161
|
-
result.resolve(events);
|
|
162
153
|
emitter.removeAllListeners();
|
|
163
154
|
subs.forEach(sub => sub.unsubscribe());
|
|
164
155
|
executor.target.connections.forEach((c) => c.off("close", onClose));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscribe.cjs","sourceRoot":"","sources":["../../src/Subscribe.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"Subscribe.cjs","sourceRoot":"","sources":["../../src/Subscribe.ts"],"names":[],"mappings":"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"}
|
package/build/src/Subscribe.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type { Event } from 'nostr-tools';
|
|
2
1
|
import { Emitter } from '@welshman/lib';
|
|
3
|
-
import type { Deferred } from '@welshman/lib';
|
|
4
2
|
import type { Filter } from '@welshman/util';
|
|
5
3
|
import { Tracker } from "./Tracker";
|
|
6
4
|
export declare enum SubscriptionEvent {
|
|
@@ -27,7 +25,6 @@ export type Subscription = {
|
|
|
27
25
|
emitter: Emitter;
|
|
28
26
|
tracker: Tracker;
|
|
29
27
|
controller: AbortController;
|
|
30
|
-
result: Deferred<Event[]>;
|
|
31
28
|
request: SubscribeRequest;
|
|
32
29
|
close: () => void;
|
|
33
30
|
};
|
|
@@ -37,7 +34,6 @@ export declare const makeSubscription: (request: SubscribeRequest) => {
|
|
|
37
34
|
emitter: Emitter;
|
|
38
35
|
tracker: Tracker;
|
|
39
36
|
controller: AbortController;
|
|
40
|
-
result: Deferred<Event[]>;
|
|
41
37
|
close: () => void;
|
|
42
38
|
};
|
|
43
39
|
export declare const calculateSubscriptionGroup: (sub: Subscription) => string;
|
|
@@ -47,7 +43,6 @@ export declare const mergeSubscriptions: (subs: Subscription[]) => {
|
|
|
47
43
|
emitter: Emitter;
|
|
48
44
|
tracker: Tracker;
|
|
49
45
|
controller: AbortController;
|
|
50
|
-
result: Deferred<Event[]>;
|
|
51
46
|
close: () => void;
|
|
52
47
|
}[];
|
|
53
48
|
export declare const executeSubscription: (sub: Subscription) => void;
|
package/build/src/Subscribe.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Emitter, chunk,
|
|
1
|
+
import { Emitter, chunk, randomId, once, groupBy, batch, uniq } from '@welshman/lib';
|
|
2
2
|
import { matchFilters, unionFilters } from '@welshman/util';
|
|
3
3
|
import { Tracker } from "./Tracker.mjs";
|
|
4
4
|
import { NetworkContext } from "./Context.mjs";
|
|
@@ -30,11 +30,10 @@ export const makeSubscription = (request) => {
|
|
|
30
30
|
const id = randomId();
|
|
31
31
|
const emitter = new Emitter();
|
|
32
32
|
const controller = new AbortController();
|
|
33
|
-
const result = defer();
|
|
34
33
|
const tracker = request.tracker || new Tracker();
|
|
35
34
|
const close = () => controller.abort();
|
|
36
35
|
emitter.setMaxListeners(100);
|
|
37
|
-
return { id, request, emitter, tracker, controller,
|
|
36
|
+
return { id, request, emitter, tracker, controller, close };
|
|
38
37
|
};
|
|
39
38
|
export const calculateSubscriptionGroup = (sub) => {
|
|
40
39
|
const parts = [];
|
|
@@ -56,6 +55,7 @@ export const mergeSubscriptions = (subs) => {
|
|
|
56
55
|
const mergedSub = makeSubscription({
|
|
57
56
|
relays: [relay],
|
|
58
57
|
timeout: callerSubs[0].request.timeout,
|
|
58
|
+
closeOnEose: callerSubs[0].request.closeOnEose,
|
|
59
59
|
filters: unionFilters(callerSubs.flatMap((sub) => sub.request.filters)),
|
|
60
60
|
});
|
|
61
61
|
for (const { id, controller, request } of callerSubs) {
|
|
@@ -117,19 +117,11 @@ export const mergeSubscriptions = (subs) => {
|
|
|
117
117
|
mergedSubscriptions.push(mergedSub);
|
|
118
118
|
groupSubscriptions.push(mergedSub);
|
|
119
119
|
}
|
|
120
|
-
// Propagate promise resolution
|
|
121
|
-
Promise.all(groupSubscriptions.map(sub => sub.result))
|
|
122
|
-
.then((chunks) => {
|
|
123
|
-
const events = uniqBy((event) => event.id, flatten(chunks));
|
|
124
|
-
for (const sub of group) {
|
|
125
|
-
sub.result.resolve(events.filter((e) => matchFilters(sub.request.filters, e)));
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
120
|
}
|
|
129
121
|
return mergedSubscriptions;
|
|
130
122
|
};
|
|
131
123
|
export const executeSubscription = (sub) => {
|
|
132
|
-
const {
|
|
124
|
+
const { request, emitter, tracker, controller } = sub;
|
|
133
125
|
const { timeout, filters, closeOnEose, relays, signal } = request;
|
|
134
126
|
const executor = NetworkContext.getExecutor(relays);
|
|
135
127
|
const subs = [];
|
|
@@ -152,7 +144,6 @@ export const executeSubscription = (sub) => {
|
|
|
152
144
|
}
|
|
153
145
|
});
|
|
154
146
|
emitter.on(SubscriptionEvent.Complete, () => {
|
|
155
|
-
result.resolve(events);
|
|
156
147
|
emitter.removeAllListeners();
|
|
157
148
|
subs.forEach(sub => sub.unsubscribe());
|
|
158
149
|
executor.target.connections.forEach((c) => c.off("close", onClose));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscribe.mjs","sourceRoot":"","sources":["../../src/Subscribe.ts"],"names":[],"mappings":"OACO,EAAC,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Subscribe.mjs","sourceRoot":"","sources":["../../src/Subscribe.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@welshman/net",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"author": "hodlbod",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Utilities for connecting with nostr relays.",
|
|
@@ -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.10",
|
|
35
|
+
"@welshman/util": "0.0.15",
|
|
36
36
|
"isomorphic-ws": "^5.0.0",
|
|
37
37
|
"ws": "^8.16.0"
|
|
38
38
|
}
|