Skip to content

Commit 1c9d3d5

Browse files
authored
tweaks to libraries.io token pooling code (#10074)
* decrease batch size * set nextReset in seconds * update test assertions
1 parent 2857d9b commit 1c9d3d5

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

services/librariesio/librariesio-api-provider.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default class LibrariesIoApiProvider {
1717
})
1818

1919
if (this.withPooling) {
20-
this.standardTokens = new TokenPool({ batchSize: 45 })
20+
this.standardTokens = new TokenPool({ batchSize: 10 })
2121
tokens.forEach(t => this.standardTokens.add(t, {}, defaultRateLimit))
2222
}
2323
}
@@ -48,7 +48,8 @@ export default class LibrariesIoApiProvider {
4848
// If the header is absent, we just use the current timestamp to
4949
// advance the value to _something_
5050
const retryAfter = headers['retry-after']
51-
const nextReset = Date.now() + (retryAfter ? +retryAfter * 1000 : 0)
51+
const nextReset =
52+
((Date.now() + (retryAfter ? +retryAfter * 1000 : 0)) / 1000) >>> 0
5253

5354
return {
5455
rateLimit,

services/librariesio/librariesio-api-provider.spec.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ describe('LibrariesIoApiProvider', function () {
8080

8181
expect(token.update).to.have.been.calledWith(
8282
remaining,
83-
nextReset * 1000 + tickTime,
83+
((nextReset * 1000 + tickTime) / 1000) >>> 0,
8484
)
8585
expect(token.invalidate).not.to.have.been.called
8686
})
@@ -98,7 +98,10 @@ describe('LibrariesIoApiProvider', function () {
9898
const mockRequest = sinon.stub().resolves(response)
9999
await provider.fetch(mockRequest, '/npm/badge-maker')
100100

101-
expect(token.update).to.have.been.calledWith(remaining, tickTime)
101+
expect(token.update).to.have.been.calledWith(
102+
remaining,
103+
(tickTime / 1000) >>> 0,
104+
)
102105
expect(token.invalidate).not.to.have.been.called
103106
})
104107

@@ -109,7 +112,10 @@ describe('LibrariesIoApiProvider', function () {
109112
const mockRequest = sinon.stub().resolves(response)
110113
await provider.fetch(mockRequest, '/npm/badge-maker')
111114

112-
expect(token.update).to.have.been.calledWith(remaining - 1, tickTime)
115+
expect(token.update).to.have.been.calledWith(
116+
remaining - 1,
117+
(tickTime / 1000) >>> 0,
118+
)
113119
expect(token.invalidate).not.to.have.been.called
114120
})
115121
})

0 commit comments

Comments
 (0)