Skip to content

Commit 511fb65

Browse files
committed
refactor: Fix most lint exceptions
1 parent a489225 commit 511fb65

File tree

6 files changed

+31
-74
lines changed

6 files changed

+31
-74
lines changed

eslint-warning-thresholds.json

Lines changed: 1 addition & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -154,29 +154,7 @@
154154
"@typescript-eslint/no-explicit-any": 1
155155
},
156156
"packages/eth-json-rpc-middleware/src/block-cache.ts": {
157-
"jsdoc/require-jsdoc": 1,
158-
"no-restricted-syntax": 1
159-
},
160-
"packages/eth-json-rpc-middleware/src/block-ref-rewrite.ts": {
161-
"jsdoc/match-description": 1
162-
},
163-
"packages/eth-json-rpc-middleware/src/block-ref.test.ts": {
164-
"jest/expect-expect": 2
165-
},
166-
"packages/eth-json-rpc-middleware/src/block-ref.ts": {
167-
"jsdoc/match-description": 1
168-
},
169-
"packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts": {
170-
"jsdoc/match-description": 2
171-
},
172-
"packages/eth-json-rpc-middleware/src/fetch.test.ts": {
173-
"jsdoc/match-description": 1
174-
},
175-
"packages/eth-json-rpc-middleware/src/fetch.ts": {
176-
"jsdoc/match-description": 1
177-
},
178-
"packages/eth-json-rpc-middleware/src/inflight-cache.ts": {
179-
"jsdoc/match-description": 4
157+
"jsdoc/require-jsdoc": 1
180158
},
181159
"packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts": {
182160
"jsdoc/require-jsdoc": 1
@@ -187,43 +165,15 @@
187165
"packages/eth-json-rpc-middleware/src/providerAsMiddleware.ts": {
188166
"jsdoc/require-jsdoc": 2
189167
},
190-
"packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts": {
191-
"jsdoc/match-description": 3
192-
},
193-
"packages/eth-json-rpc-middleware/src/retryOnEmpty.ts": {
194-
"jsdoc/match-description": 2
195-
},
196-
"packages/eth-json-rpc-middleware/src/utils/cache.ts": {
197-
"jsdoc/match-description": 6
198-
},
199-
"packages/eth-json-rpc-middleware/src/utils/common.ts": {
200-
"jsdoc/match-description": 1
201-
},
202168
"packages/eth-json-rpc-middleware/src/utils/error.ts": {
203169
"jsdoc/require-jsdoc": 1
204170
},
205-
"packages/eth-json-rpc-middleware/src/utils/normalize.ts": {
206-
"jsdoc/match-description": 3
207-
},
208-
"packages/eth-json-rpc-middleware/src/utils/timeout.ts": {
209-
"jsdoc/match-description": 1
210-
},
211171
"packages/eth-json-rpc-middleware/src/utils/validation.ts": {
212172
"jsdoc/require-jsdoc": 4
213173
},
214174
"packages/eth-json-rpc-middleware/src/wallet.ts": {
215-
"@typescript-eslint/prefer-nullish-coalescing": 5,
216-
"jsdoc/match-description": 3,
217175
"jsdoc/require-jsdoc": 12
218176
},
219-
"packages/eth-json-rpc-middleware/test/setupAfterEnv.ts": {
220-
"@typescript-eslint/no-explicit-any": 3,
221-
"jsdoc/match-description": 2
222-
},
223-
"packages/eth-json-rpc-middleware/test/util/helpers.ts": {
224-
"@typescript-eslint/no-explicit-any": 5,
225-
"jsdoc/match-description": 10
226-
},
227177
"packages/gas-fee-controller/src/GasFeeController.test.ts": {
228178
"import-x/namespace": 2,
229179
"import-x/order": 1

eslint.config.mjs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,8 @@ const config = createConfig([
234234
{
235235
files: ['packages/eth-json-rpc-middleware/**/*.ts'],
236236
rules: {
237-
// TODO: Re-enable these rules or add inline ignores for warranted cases
238-
'@typescript-eslint/no-explicit-any': 'warn',
239-
'@typescript-eslint/prefer-nullish-coalescing': 'warn',
240-
'jsdoc/match-description': 'warn',
237+
// TODO: Re-enable this
241238
'jsdoc/require-jsdoc': 'warn',
242-
'no-restricted-syntax': 'warn',
243239
},
244240
},
245241
{

packages/eth-json-rpc-middleware/src/block-cache.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ type BlockCacheMiddlewareOptions = {
3333
//
3434

3535
class BlockCacheStrategy {
36-
private cache: Cache;
36+
#cache: Cache;
3737

3838
constructor() {
39-
this.cache = {};
39+
this.#cache = {};
4040
}
4141

4242
getBlockCache(blockNumberHex: string): BlockCache {
4343
const blockNumber: number = Number.parseInt(blockNumberHex, 16);
44-
let blockCache: BlockCache = this.cache[blockNumber];
44+
let blockCache: BlockCache = this.#cache[blockNumber];
4545
// create new cache if necesary
4646
if (!blockCache) {
4747
const newCache: BlockCache = {};
48-
this.cache[blockNumber] = newCache;
48+
this.#cache[blockNumber] = newCache;
4949
blockCache = newCache;
5050
}
5151
return blockCache;
@@ -126,10 +126,10 @@ class BlockCacheStrategy {
126126
clearBefore(oldBlockHex: string): void {
127127
const oldBlockNumber: number = Number.parseInt(oldBlockHex, 16);
128128
// clear old caches
129-
Object.keys(this.cache)
129+
Object.keys(this.#cache)
130130
.map(Number)
131131
.filter((num) => num < oldBlockNumber)
132-
.forEach((num) => delete this.cache[num]);
132+
.forEach((num) => delete this.#cache[num]);
133133
}
134134
}
135135

packages/eth-json-rpc-middleware/src/block-ref.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ describe('createBlockRefMiddleware', () => {
196196
describe.each(['earliest', 'pending', '0x200'])(
197197
'if the block param is something other than "latest", like %o',
198198
(blockParam) => {
199+
// Using custom expect helper
200+
// eslint-disable-next-line jest/expect-expect
199201
it('does not make a direct request through the provider', async () => {
200202
const finalMiddleware = createFinalMiddlewareWithDefaultResult();
201203

@@ -267,6 +269,8 @@ describe('createBlockRefMiddleware', () => {
267269
});
268270

269271
describe('when the RPC method does not take a block parameter', () => {
272+
// Using custom expect helper
273+
// eslint-disable-next-line jest/expect-expect
270274
it('does not make a direct request through the provider', async () => {
271275
const finalMiddleware = createFinalMiddlewareWithDefaultResult();
272276

packages/eth-json-rpc-middleware/test/setupAfterEnv.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ expect.extend({
3737
* @param promise - The promise to test.
3838
* @returns The result of the matcher.
3939
*/
40-
async toNeverResolve(promise: Promise<any>) {
40+
async toNeverResolve(promise: Promise<unknown>) {
4141
if (this.isNot) {
4242
throw new Error(
4343
'Using `.not.toNeverResolve(...)` is not supported. ' +
@@ -46,8 +46,8 @@ expect.extend({
4646
);
4747
}
4848

49-
let resolutionValue: any;
50-
let rejectionValue: any;
49+
let resolutionValue: unknown;
50+
let rejectionValue: unknown;
5151
try {
5252
resolutionValue = await Promise.race([
5353
promise,
@@ -67,8 +67,8 @@ expect.extend({
6767
message: () => {
6868
return `Expected promise to never resolve after ${TIME_TO_WAIT_UNTIL_UNRESOLVED}ms, but it ${
6969
rejectionValue
70-
? `was rejected with ${rejectionValue}`
71-
: `resolved with ${resolutionValue}`
70+
? `was rejected with ${JSON.stringify(rejectionValue, null, 2)}`
71+
: `resolved with ${JSON.stringify(resolutionValue, null, 2)}`
7272
}`;
7373
},
7474
pass: false,

packages/eth-json-rpc-middleware/test/util/helpers.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ import { PollingBlockTracker } from '@metamask/eth-block-tracker';
22
import { InternalProvider } from '@metamask/eth-json-rpc-provider';
33
import { JsonRpcEngine } from '@metamask/json-rpc-engine';
44
import { JsonRpcEngineV2 } from '@metamask/json-rpc-engine/v2';
5-
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2';
5+
import type {
6+
JsonRpcMiddleware,
7+
ResultConstraint,
8+
} from '@metamask/json-rpc-engine/v2';
69
import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils';
710
import { klona } from 'klona/full';
811
import { isDeepStrictEqual } from 'util';
@@ -113,6 +116,10 @@ export function createProviderAndBlockTracker(): {
113116
return { provider, blockTracker };
114117
}
115118

119+
// An expedient for use with createEngine below.
120+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
121+
type AnyMiddleware = JsonRpcMiddleware<any, ResultConstraint<any>, any>;
122+
116123
/**
117124
* Creates a JSON-RPC engine with the middleware under test and any
118125
* additional middleware. If no other middleware is provided, a final middleware
@@ -123,8 +130,8 @@ export function createProviderAndBlockTracker(): {
123130
* @returns The created engine.
124131
*/
125132
export function createEngine(
126-
middlewareUnderTest: JsonRpcMiddleware<any, any>,
127-
...otherMiddleware: JsonRpcMiddleware<any, any>[]
133+
middlewareUnderTest: AnyMiddleware,
134+
...otherMiddleware: AnyMiddleware[]
128135
): JsonRpcEngineV2 {
129136
return JsonRpcEngineV2.create({
130137
middleware: [
@@ -258,10 +265,10 @@ export function expectProviderRequestNotToHaveBeenMade(
258265
* @returns The Jest spy object that represents `provider.request` (so that
259266
* you can make assertions on the method later, if you like).
260267
*/
261-
export function stubProviderRequests(
262-
provider: InternalProvider,
263-
stubs: ProviderRequestStub<any, Json>[],
264-
) {
268+
export function stubProviderRequests<
269+
Params extends JsonRpcParams = JsonRpcParams,
270+
Result extends Json = Json,
271+
>(provider: InternalProvider, stubs: ProviderRequestStub<Params, Result>[]) {
265272
const remainingStubs = klona(stubs);
266273
const callNumbersByRequest = new Map<Partial<JsonRpcRequest>, number>();
267274
return jest.spyOn(provider, 'request').mockImplementation(async (request) => {

0 commit comments

Comments
 (0)