Skip to content

Commit b00ff7f

Browse files
committed
Merge branch 'simplify-promises'
2 parents 12ba83d + 2914f28 commit b00ff7f

File tree

14 files changed

+99
-130
lines changed

14 files changed

+99
-130
lines changed

.pnp.cjs

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/cosmwasm/src/cosmwasmclient.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -286,18 +286,9 @@ export class CosmWasmClient {
286286

287287
const transactionId = await this.broadcastTxSync(tx);
288288

289-
return new Promise((resolve, reject) =>
290-
pollForTx(transactionId).then(
291-
(value) => {
292-
clearTimeout(txPollTimeout);
293-
resolve(value);
294-
},
295-
(error) => {
296-
clearTimeout(txPollTimeout);
297-
reject(error);
298-
},
299-
),
300-
);
289+
return pollForTx(transactionId).finally(() => {
290+
clearTimeout(txPollTimeout);
291+
});
301292
}
302293

303294
/**

packages/socket/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"xstream": "^11.14.0"
4848
},
4949
"devDependencies": {
50+
"@cosmjs/utils": "workspace:^",
5051
"@istanbuljs/nyc-config-typescript": "^1.0.1",
5152
"@types/jasmine": "^4",
5253
"@types/karma-firefox-launcher": "^2",

packages/socket/src/queueingstreamingsocket.spec.ts

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { sleep } from "@cosmjs/utils";
2+
13
import { ConnectionStatus, QueueingStreamingSocket } from "./queueingstreamingsocket";
24

35
const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED;
@@ -62,10 +64,11 @@ describe("QueueingStreamingSocket", () => {
6264
requests.forEach((request) => {
6365
socket.queueRequest(request);
6466
});
65-
setTimeout(() => {
66-
expect(socket.getQueueLength()).toEqual(3);
67-
socket.connect();
68-
}, 5_000);
67+
68+
await sleep(5_000);
69+
70+
expect(socket.getQueueLength()).toEqual(3);
71+
socket.connect();
6972

7073
return ret;
7174
});
@@ -183,13 +186,15 @@ describe("QueueingStreamingSocket", () => {
183186
});
184187

185188
socket.connect();
186-
setTimeout(() => {
187-
socket.disconnect();
188-
socket.reconnect();
189-
setTimeout(() => {
190-
socket.disconnect();
191-
}, 1000);
192-
}, 1000);
189+
190+
await sleep(1000);
191+
192+
socket.disconnect();
193+
socket.reconnect();
194+
195+
await sleep(1000);
196+
197+
socket.disconnect();
193198

194199
return ret;
195200
});

packages/socket/src/reconnectingsocket.spec.ts

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { sleep } from "@cosmjs/utils";
2+
13
import { ReconnectingSocket } from "./reconnectingsocket";
24

35
/** @see https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback */
@@ -17,34 +19,25 @@ describe("ReconnectingSocket", () => {
1719

1820
(enabled ? describe : xdescribe)("connect", () => {
1921
it("cannot connect after being connected", async () => {
20-
let done!: (() => void) & { fail: (e?: any) => void };
21-
const ret = new Promise<void>((resolve, reject) => {
22-
done = resolve as typeof done;
23-
done.fail = reject;
24-
});
2522
const socket = new ReconnectingSocket(socketServerUrl);
2623
// Necessary otherwise the producer doesn’t start
2724
socket.events.subscribe({});
2825

2926
socket.connect();
3027

31-
setTimeout(() => {
32-
expect(() => {
33-
socket.connect();
34-
}).toThrowError(/cannot connect/i);
35-
done();
36-
}, 1000);
28+
await sleep(1000);
3729

38-
return ret;
30+
expect(() => {
31+
socket.connect();
32+
}).toThrowError(/cannot connect/i);
3933
});
4034
});
4135

4236
(enabled ? describe : xdescribe)("disconnect", () => {
4337
it("ends the events stream", async () => {
44-
let done!: (() => void) & { fail: (e?: any) => void };
45-
const ret = new Promise<void>((resolve, reject) => {
46-
done = resolve as typeof done;
47-
done.fail = reject;
38+
let done!: () => void;
39+
const ret = new Promise<void>((resolve) => {
40+
done = resolve;
4841
});
4942
const socket = new ReconnectingSocket(socketServerUrl);
5043
socket.events.subscribe({
@@ -53,34 +46,25 @@ describe("ReconnectingSocket", () => {
5346

5447
socket.connect();
5548

56-
setTimeout(() => {
57-
socket.disconnect();
58-
}, 1000);
49+
await sleep(1000);
5950

51+
socket.disconnect();
6052
return ret;
6153
});
6254

6355
it("cannot connect after being disconnected", async () => {
64-
let done!: (() => void) & { fail: (e?: any) => void };
65-
const ret = new Promise<void>((resolve, reject) => {
66-
done = resolve as typeof done;
67-
done.fail = reject;
68-
});
6956
const socket = new ReconnectingSocket(socketServerUrl);
7057
// Necessary otherwise the producer doesn’t start
7158
socket.events.subscribe({});
7259

7360
socket.connect();
7461

75-
setTimeout(() => {
76-
socket.disconnect();
77-
expect(() => {
78-
socket.connect();
79-
}).toThrowError(/cannot connect/i);
80-
done();
81-
}, 1000);
62+
await sleep(1000);
8263

83-
return ret;
64+
socket.disconnect();
65+
expect(() => {
66+
socket.connect();
67+
}).toThrowError(/cannot connect/i);
8468
});
8569

8670
it("can disconnect without waiting for open", () => {

packages/socket/src/socketwrapper.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { sleep } from "@cosmjs/utils";
2+
13
import { SocketWrapper } from "./socketwrapper";
24

35
const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED;
@@ -314,7 +316,8 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED;
314316
);
315317
socket.connect();
316318

317-
setTimeout(() => socket.send("Hello world"), 2 * timeoutPeriodLength);
319+
await sleep(2 * timeoutPeriodLength);
320+
await socket.send("Hello world");
318321

319322
return ret;
320323
});

packages/stargate/src/stargateclient.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -466,18 +466,9 @@ export class StargateClient {
466466

467467
const transactionId = await this.broadcastTxSync(tx);
468468

469-
return new Promise((resolve, reject) =>
470-
pollForTx(transactionId).then(
471-
(value) => {
472-
clearTimeout(txPollTimeout);
473-
resolve(value);
474-
},
475-
(error) => {
476-
clearTimeout(txPollTimeout);
477-
reject(error);
478-
},
479-
),
480-
);
469+
return pollForTx(transactionId).finally(() => {
470+
clearTimeout(txPollTimeout);
471+
});
481472
}
482473

483474
/**

packages/stream/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"xstream": "^11.14.0"
4545
},
4646
"devDependencies": {
47+
"@cosmjs/utils": "workspace:^",
4748
"@istanbuljs/nyc-config-typescript": "^1.0.1",
4849
"@types/jasmine": "^4",
4950
"@types/karma-firefox-launcher": "^2",

packages/stream/src/concat.spec.ts

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import { sleep } from "@cosmjs/utils";
12
import { Producer, Stream } from "xstream";
23

34
import { concat } from "./concat";
45

56
async function producerIsStopped(): Promise<void> {
6-
return new Promise((resolve) => setTimeout(resolve, 50));
7+
return sleep(50);
78
}
89

910
describe("concat", () => {
@@ -250,41 +251,41 @@ describe("concat", () => {
250251

251252
expect(producerActiveLog).toEqual([true]);
252253

254+
await sleep(3.75 * intervalDuration);
255+
253256
// unsubscribe
254-
setTimeout(async () => {
255-
expect(producerActiveLog).toEqual([true]);
256-
subscription.unsubscribe();
257-
await producerIsStopped();
258-
expect(producerActiveLog).toEqual([true, false]);
259-
}, 3.75 * intervalDuration);
257+
expect(producerActiveLog).toEqual([true]);
258+
subscription.unsubscribe();
259+
await producerIsStopped();
260+
expect(producerActiveLog).toEqual([true, false]);
261+
262+
await sleep(2.2 * intervalDuration);
260263

261264
// re-subscribe
262-
setTimeout(() => {
263-
expect(producerActiveLog).toEqual([true, false]);
264-
265-
const subscription2 = concatenatedStream.subscribe({
266-
next: (value) => {
267-
expect(value).toEqual(expected.shift()!);
268-
},
269-
complete: () => {
270-
done.fail();
271-
},
272-
error: done.fail,
273-
});
274-
275-
expect(producerActiveLog).toEqual([true, false, true]);
276-
277-
// unsubscribe again
278-
setTimeout(async () => {
279-
expect(producerActiveLog).toEqual([true, false, true]);
280-
subscription2.unsubscribe();
281-
await producerIsStopped();
282-
expect(producerActiveLog).toEqual([true, false, true, false]);
265+
expect(producerActiveLog).toEqual([true, false]);
283266

284-
expect(expected.length).toEqual(0);
285-
done();
286-
}, 3.75 * intervalDuration);
287-
}, 6 * intervalDuration);
267+
const subscription2 = concatenatedStream.subscribe({
268+
next: (value) => {
269+
expect(value).toEqual(expected.shift()!);
270+
},
271+
complete: () => {
272+
done.fail();
273+
},
274+
error: done.fail,
275+
});
276+
277+
expect(producerActiveLog).toEqual([true, false, true]);
278+
279+
await sleep(3.75 * intervalDuration);
280+
281+
// unsubscribe again
282+
expect(producerActiveLog).toEqual([true, false, true]);
283+
subscription2.unsubscribe();
284+
await producerIsStopped();
285+
expect(producerActiveLog).toEqual([true, false, true, false]);
286+
287+
expect(expected.length).toEqual(0);
288+
done();
288289

289290
return ret;
290291
});

packages/stream/src/defaultvalueproducer.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import { sleep } from "@cosmjs/utils";
12
import { Stream } from "xstream";
23

34
import { DefaultValueProducer } from "./defaultvalueproducer";
45

56
async function oneTickLater(): Promise<void> {
6-
return new Promise((resolve) => setTimeout(resolve, 0));
7+
return sleep(0);
78
}
89

910
describe("DefaultValueProducer", () => {

0 commit comments

Comments
 (0)