Skip to content

Commit 58f0d49

Browse files
authored
feat: Upgrade to node 20, look for "request-id" when tracking requests (#160)
* Upgrade to node 20, look for "request-id" when tracking requests * Require node 20 * check for lowercase request id header in particleboard as well * resolve yarn install * Put back in --forbid-only
1 parent c46228c commit 58f0d49

File tree

7 files changed

+1051
-1106
lines changed

7 files changed

+1051
-1106
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
strategy:
1010
matrix:
1111
os: [windows-latest, ubuntu-latest, macos-latest]
12-
node-version: [16.x]
12+
node-version: [20.x, 22.x]
1313
steps:
1414
- uses: actions/checkout@v4
1515
- name: Use Node.js ${{ matrix.node-version }}

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nodejs 16.20.2
1+
nodejs 20.18.3

package.json

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,9 @@
2424
"@types/chai": "^4.3.16",
2525
"@types/fs-extra": "^9.0.13",
2626
"@types/mocha": "^10.0.6",
27-
"@types/nock": "^9.3.1",
28-
"@types/node": "^18.11.9",
27+
"@types/node": "20.14.8",
2928
"@types/proxyquire": "^1.3.31",
30-
"@types/sinon": "^10.0.13",
29+
"@types/sinon": "^17.0.3",
3130
"@types/supports-color": "^5.3.0",
3231
"@types/uuid": "^8.3.0",
3332
"@types/yargs-parser": "^21.0.3",
@@ -43,17 +42,17 @@
4342
"eslint-plugin-mocha": "^10.4.3",
4443
"fancy-test": "^2.0.42",
4544
"mocha": "^10.7.3",
46-
"nock": "^10.0.6",
47-
"np": "^7.7.0",
45+
"nock": "^14.0.1",
46+
"np": "^10.2.0",
4847
"proxyquire": "^2.1.3",
49-
"sinon": "^14.0.2",
48+
"sinon": "^16.1.3",
5049
"stdout-stderr": "^0.1.13",
5150
"ts-node": "^10.9.1",
5251
"tslint": "^6.1.3",
5352
"typescript": "^5.7.3"
5453
},
5554
"engines": {
56-
"node": ">= 16.20.0"
55+
"node": ">= 20"
5756
},
5857
"files": [
5958
"lib"

src/api-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export class APIClient {
110110
}
111111

112112
static trackRequestIds<T>(response: HTTP<T>) {
113-
const responseRequestIdHeader = response.headers[requestIdHeader]
113+
const responseRequestIdHeader = response.headers[requestIdHeader] || response.headers[requestIdHeader.toLocaleLowerCase()]
114114
if (responseRequestIdHeader) {
115115
const requestIds = Array.isArray(responseRequestIdHeader) ? responseRequestIdHeader : responseRequestIdHeader.split(',')
116116
RequestId.track(...requestIds)

src/particleboard-client.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ export class ParticleboardClient {
3939
}
4040
this.http = class ParticleboardHTTPClient<T> extends deps.HTTP.HTTP.create(particleboardOpts)<T> {
4141
static trackRequestIds<T>(response: HTTP<T>) {
42-
const responseRequestIdHeader = response.headers[requestIdHeader]
42+
const responseRequestIdHeader = response.headers[requestIdHeader] || response.headers[requestIdHeader.toLocaleLowerCase()]
43+
4344
if (responseRequestIdHeader) {
4445
const requestIds = Array.isArray(responseRequestIdHeader) ? responseRequestIdHeader : responseRequestIdHeader.split(',')
4546
RequestId.track(...requestIds)

test/api-client.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,10 @@ describe('api_client', () => {
625625
.it('tracks response request ids for subsequent request ids', async ctx => {
626626
const cmd = new Command([], ctx.config)
627627
const existingRequestIds = ['first-existing-request-id', 'second-existing-request-id'].join(',')
628-
api = nock('https://api.heroku.com').get('/apps').twice().reply(() => [200, JSON.stringify({name: 'myapp'}), {[requestIdHeader]: existingRequestIds}])
628+
api = nock('https://api.heroku.com')
629+
.get('/apps')
630+
.twice()
631+
.reply(() => [200, JSON.stringify({name: 'myapp'}), {[requestIdHeader]: existingRequestIds}])
629632

630633
generateStub.returns('random-uuid')
631634
await cmd.heroku.get('/apps')

0 commit comments

Comments
 (0)