Skip to content
This repository has been archived by the owner on Aug 16, 2019. It is now read-only.

Commit

Permalink
Hack around unhandled promise rejections
Browse files Browse the repository at this point in the history
By calling `.catch` on the promise, we can make the rejection a no-op (the error is already handled earlier in the request pipeline)
  • Loading branch information
Dustin Masters committed Jan 11, 2019
1 parent 6b238f5 commit c558c6c
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 22 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"main": "dist/bundle.js",
"license": "MIT",
"dependencies": {
"@pollyjs/adapter-node-http": "^1.4.0",
"@pollyjs/core": "^1.4.0",
"@pollyjs/persister-fs": "^1.3.2",
"dpm-adapter-node-http": "^0.0.1",
"express": "^4.16.4",
"http-proxy": "^1.17.0"
},
Expand Down
11 changes: 10 additions & 1 deletion src/polly-service.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
import { Polly } from '@pollyjs/core';
import NodeHttpAdapter from '@pollyjs/adapter-node-http';
import NodeHttpAdapter, { PollyRequest } from 'dpm-adapter-node-http';
import FSPersister from '@pollyjs/persister-fs';
import path from 'path';

let parentOnRequest = NodeHttpAdapter.prototype.onRequest;
NodeHttpAdapter.prototype.onRequest = function (request: PollyRequest) {
request.promise.catch(() => {});

if (parentOnRequest) {
return parentOnRequest.call(this, request);
}
}

Polly.register(NodeHttpAdapter);
Polly.register(FSPersister);

Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
],
"sourceMap": true,
"paths": {
"@pollyjs/adapter-node-http": ["./types/pollyjs__adapter-node-http"]
"dpm-adapter-node-http": ["./types/dpm-adapter-node-http"]
}
},
"include": [
Expand Down
9 changes: 9 additions & 0 deletions types/dpm-adapter-node-http/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Adapter from '@pollyjs/adapter';

interface PollyRequest {
promise: Promise<void>
}

export default class NodeHttpAdapter extends Adapter {
onRequest: (request: PollyRequest) => any;
}
3 changes: 0 additions & 3 deletions types/pollyjs__adapter-node-http/index.d.ts

This file was deleted.

40 changes: 24 additions & 16 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,12 @@
esutils "^2.0.2"
js-tokens "^4.0.0"

"@pollyjs/adapter-node-http@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@pollyjs/adapter-node-http/-/adapter-node-http-1.4.0.tgz#46befa43e432dbb60f14765d23f44f4df2715195"
integrity sha512-Z6MLYG3B2b+gE/9r9JddtYN46AKRzzQFwkAitR/sZm0NOSRwrsOSoO2HmAOhWjD/GEDYcnvf0mb++rgbKJ2qjQ==
dependencies:
"@pollyjs/adapter" "^1.3.2"
"@pollyjs/utils" "^1.3.2"
lodash-es "^4.17.11"
semver "^5.6.0"

"@pollyjs/adapter@^1.3.2":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@pollyjs/adapter/-/adapter-1.3.2.tgz#52d0d44402ad24ea2806891ad0eea336c603b318"
integrity sha512-2LbpBrkKPfZS1BTkT4VCShkBzHOeix3HrjcLtbbATOyev8wNp161ZNfDT2NOhfflnvt3IaElQPhPJB6c0RN3kQ==
"@pollyjs/adapter@^1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@pollyjs/adapter/-/adapter-1.4.1.tgz#4bf58f5127620f004edfcb7f27b572ba0699aaee"
integrity sha512-1CFoFkoFhP/DLhCIbTLpyIKr1jlzHWBTzL2WerE1loWLrCvnI+rw7YYfz2wJxEH9fuF25QRg5P3L2Yrvw5l3ig==
dependencies:
"@pollyjs/utils" "^1.3.2"
"@pollyjs/utils" "^1.4.1"

"@pollyjs/core@^1.4.0":
version "1.4.0"
Expand Down Expand Up @@ -90,6 +80,14 @@
dependencies:
url-parse "^1.4.4"

"@pollyjs/utils@^1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@pollyjs/utils/-/utils-1.4.1.tgz#2cee4980ca9f27427cd62833e916ae28660e6652"
integrity sha512-UVIgsj50LBdWZfcUY+Yh0NU9sciLtUW75kqqgnPCagUYnYpsENiih1+C83zs4IcPR7kbuBht8z2EMxeD1tf+qg==
dependencies:
qs "^6.6.0"
url-parse "^1.4.4"

"@sindresorhus/fnv1a@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/fnv1a/-/fnv1a-1.0.0.tgz#d419dd111b4d7fc3b87f97d86849bc23316149de"
Expand Down Expand Up @@ -1675,6 +1673,16 @@ dot-prop@^4.1.0:
dependencies:
is-obj "^1.0.0"

dpm-adapter-node-http@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/dpm-adapter-node-http/-/dpm-adapter-node-http-0.0.1.tgz#f55d18260b753680183269e9e9bcefdfc630291e"
integrity sha512-/wqoMCggL6SMlcMM76qNWempYI0v+W5nKs9guJNmDucpmusEgAIcLMI8YzrU/PR2fci7jF+Dy148u+cNKqv+gw==
dependencies:
"@pollyjs/adapter" "^1.4.1"
"@pollyjs/utils" "^1.4.1"
lodash-es "^4.17.11"
semver "^5.6.0"

duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
Expand Down Expand Up @@ -4717,7 +4725,7 @@ [email protected], qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==

qs@^6.5.1:
qs@^6.5.1, qs@^6.6.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz#a99c0f69a8d26bf7ef012f871cdabb0aee4424c2"
integrity sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==
Expand Down

0 comments on commit c558c6c

Please sign in to comment.