Skip to content

Commit 29fbed5

Browse files
Update dependency p-retry to v7 (#5008)
* Update dependency p-retry to v7 * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Make jest happier Signed-off-by: Michael Telatynski <[email protected]> --------- Signed-off-by: Michael Telatynski <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <[email protected]>
1 parent 5ee6fc1 commit 29fbed5

File tree

5 files changed

+30
-30
lines changed

5 files changed

+30
-30
lines changed

jest.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const config: Config = {
2323
collectCoverageFrom: ["<rootDir>/src/**/*.{js,ts}"],
2424
coverageReporters: ["text-summary", "lcov"],
2525
testResultsProcessor: "@casualbot/jest-sonar-reporter",
26+
transformIgnorePatterns: ["/node_modules/(?!(p-retry|is-network-error)).+$"],
2627

2728
// Always print out a summary if there are any failing tests. Normally
2829
// a summary is only printed if there are more than 20 test *suites*.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"matrix-events-sdk": "0.0.1",
5959
"matrix-widget-api": "^1.10.0",
6060
"oidc-client-ts": "^3.0.1",
61-
"p-retry": "4",
61+
"p-retry": "7",
6262
"sdp-transform": "^2.14.1",
6363
"unhomoglyph": "^1.0.6",
6464
"uuid": "11"

src/models/MSC3089TreeSpace.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
import promiseRetry from "p-retry";
18-
1917
import { type MatrixClient } from "../client.ts";
2018
import { EventType, MsgType, UNSTABLE_MSC3089_BRANCH, UNSTABLE_MSC3089_LEAF } from "../@types/event.ts";
2119
import { type Room } from "./room.ts";
@@ -31,7 +29,7 @@ import {
3129
} from "../utils.ts";
3230
import { MSC3089Branch } from "./MSC3089Branch.ts";
3331
import { type ISendEventResponse } from "../@types/requests.ts";
34-
import { type FileType } from "../http-api/index.ts";
32+
import { type FileType, MatrixError } from "../http-api/index.ts";
3533
import { KnownMembership } from "../@types/membership.ts";
3634
import { type RoomPowerLevelsEventContent, type SpaceChildEventContent } from "../@types/state_events.ts";
3735
import type { EncryptedFile, FileContent } from "../@types/media.ts";
@@ -146,16 +144,17 @@ export class MSC3089TreeSpace {
146144
await Promise.all(promises);
147145
}
148146

149-
private retryInvite(userId: string): Promise<void> {
150-
return simpleRetryOperation(async () => {
151-
await this.client.invite(this.roomId, userId).catch((e) => {
147+
private async retryInvite(userId: string): Promise<void> {
148+
await simpleRetryOperation(
149+
() => this.client.invite(this.roomId, userId),
150+
(e) => {
152151
// We don't want to retry permission errors forever...
153-
if (e?.errcode === "M_FORBIDDEN") {
154-
throw new promiseRetry.AbortError(e);
152+
if (e instanceof MatrixError && e.errcode === "M_FORBIDDEN") {
153+
return false;
155154
}
156-
throw e;
157-
});
158-
});
155+
return true;
156+
},
157+
);
159158
}
160159

161160
/**

src/utils.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,15 +465,21 @@ export async function chunkPromises<T>(fns: (() => Promise<T>)[], chunkSize: num
465465
* should always return a new promise.
466466
* @param promiseFn - The function to call to get a fresh promise instance. Takes an
467467
* attempt count as an argument, for logging/debugging purposes.
468+
* @param shouldRetry - Optional function which is called with the error the latest rejection from promiseFn,
469+
* retrying will ba aborted if this return false.
468470
* @returns The promise for the retried operation.
469471
*/
470-
export function simpleRetryOperation<T>(promiseFn: (attempt: number) => Promise<T>): Promise<T> {
472+
export function simpleRetryOperation<T>(
473+
promiseFn: (attempt: number) => Promise<T>,
474+
shouldRetry?: (e: unknown) => boolean,
475+
): Promise<T> {
471476
return promiseRetry(
472477
(attempt: number) => {
473478
return promiseFn(attempt);
474479
},
475480
{
476-
forever: true,
481+
retries: Infinity,
482+
shouldRetry: shouldRetry ? ({ error }): boolean => shouldRetry(error) : undefined,
477483
factor: 2,
478484
minTimeout: 3000, // ms
479485
maxTimeout: 15000, // ms

yarn.lock

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2210,11 +2210,6 @@
22102210
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
22112211
integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
22122212

2213-
2214-
version "0.12.0"
2215-
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
2216-
integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
2217-
22182213
"@types/sdp-transform@^2.4.5":
22192214
version "2.15.0"
22202215
resolved "https://registry.yarnpkg.com/@types/sdp-transform/-/sdp-transform-2.15.0.tgz#f59a33ec631374794c2affc4c63ef60613285983"
@@ -4572,6 +4567,11 @@ is-negative-zero@^2.0.3:
45724567
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
45734568
integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
45744569

4570+
is-network-error@^1.1.0:
4571+
version "1.1.0"
4572+
resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997"
4573+
integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==
4574+
45754575
is-number-object@^1.0.4:
45764576
version "1.0.7"
45774577
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
@@ -5790,13 +5790,12 @@ p-locate@^5.0.0:
57905790
dependencies:
57915791
p-limit "^3.0.2"
57925792

5793-
p-retry@4:
5794-
version "4.6.2"
5795-
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
5796-
integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
5793+
p-retry@7:
5794+
version "7.0.0"
5795+
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-7.0.0.tgz#38dbee20149d94680fe0a022405839d995f95e7b"
5796+
integrity sha512-3BgO9rjULJYyr0Y0pcsG7FZ+7JB/hfOODO8kx9ppumiO5jprUF92WK/Y7Q0xppZtq4VhTcPiVq7qWLQfIV5aKQ==
57975797
dependencies:
5798-
"@types/retry" "0.12.0"
5799-
retry "^0.13.1"
5798+
is-network-error "^1.1.0"
58005799

58015800
p-try@^2.0.0:
58025801
version "2.2.0"
@@ -6185,11 +6184,6 @@ restore-cursor@^5.0.0:
61856184
onetime "^7.0.0"
61866185
signal-exit "^4.1.0"
61876186

6188-
retry@^0.13.1:
6189-
version "0.13.1"
6190-
resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
6191-
integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
6192-
61936187
reusify@^1.0.4:
61946188
version "1.1.0"
61956189
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"

0 commit comments

Comments
 (0)