Skip to content

Commit fd1a3aa

Browse files
committed
Update TypeScript to v4.2
TypeScript has been updated to v4.2 [1]. I'm not aware of any changes that impact our code, but the update did highlight a few new minor errors in our code for some reason. These have all been fixed. It also required that we declare each Promise constructor as `Promise<void>` if it wasn't returning a value. TypeScript v4.2 is still not supported by `@typescript-eslint/eslint-plugin` and `typedoc`, so they give a warning at runtime and install time respectively. [1]: https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/
1 parent d41d016 commit fd1a3aa

14 files changed

+105
-72
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
"devDependencies": {
6363
"@metamask/eslint-config": "^5.0.0",
6464
"@types/jest": "^22.2.3",
65-
"@types/node": "^10.1.4",
65+
"@types/node": "^14.14.31",
6666
"@types/sinon": "^9.0.10",
6767
"@types/web3": "^1.0.6",
6868
"@typescript-eslint/eslint-plugin": "^4.15.2",
@@ -78,9 +78,9 @@
7878
"nock": "^13.0.7",
7979
"prettier": "^2.1.1",
8080
"sinon": "^9.2.4",
81-
"ts-jest": "^26.3.0",
82-
"typedoc": "^0.20.24",
83-
"typescript": "^4.0.3"
81+
"ts-jest": "^26.5.2",
82+
"typedoc": "^0.20.28",
83+
"typescript": "^4.2.2"
8484
},
8585
"jest": {
8686
"moduleFileExtensions": [

src/assets/AccountTrackerController.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe('AccountTrackerController', () => {
4949
});
5050

5151
it('should call refresh every ten seconds', () => {
52-
return new Promise((resolve) => {
52+
return new Promise<void>((resolve) => {
5353
const preferences = new PreferencesController();
5454
const controller = new AccountTrackerController({ provider, interval: 100 });
5555
stub(controller, 'refresh');

src/assets/CurrencyRateController.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ describe('CurrencyRateController', () => {
5050
const fetchExchangeRateStub = stub();
5151
const controller = new CurrencyRateController({ interval: 100 }, {}, fetchExchangeRateStub);
5252

53-
await new Promise((resolve) => setTimeout(() => resolve(), 1));
53+
await new Promise<void>((resolve) => setTimeout(() => resolve(), 1));
5454
expect(fetchExchangeRateStub.called).toBe(true);
5555
expect(fetchExchangeRateStub.calledTwice).toBe(false);
56-
await new Promise((resolve) => setTimeout(() => resolve(), 150));
56+
await new Promise<void>((resolve) => setTimeout(() => resolve(), 150));
5757
expect(fetchExchangeRateStub.calledTwice).toBe(true);
5858

5959
controller.disabled = true;
@@ -72,7 +72,7 @@ describe('CurrencyRateController', () => {
7272
const fetchExchangeRateStub = stub();
7373
const mock = stub(global, 'clearTimeout');
7474
const controller = new CurrencyRateController({ interval: 1337 }, {}, fetchExchangeRateStub);
75-
return new Promise((resolve) => {
75+
return new Promise<void>((resolve) => {
7676
setTimeout(() => {
7777
controller.poll(1338);
7878
expect(mock.called).toBe(true);

src/assets/TokenBalancesController.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ describe('TokenBalancesController', () => {
4141
});
4242

4343
it('should poll and update balances in the right interval', () => {
44-
return new Promise((resolve) => {
44+
return new Promise<void>((resolve) => {
4545
const mock = stub(TokenBalancesController.prototype, 'updateBalances');
4646
new TokenBalancesController({ interval: 10 });
4747
expect(mock.called).toBe(true);
@@ -67,7 +67,7 @@ describe('TokenBalancesController', () => {
6767
it('should clear previous interval', () => {
6868
const mock = stub(global, 'clearTimeout');
6969
const controller = new TokenBalancesController({ interval: 1337 });
70-
return new Promise((resolve) => {
70+
return new Promise<void>((resolve) => {
7171
setTimeout(() => {
7272
controller.poll(1338);
7373
expect(mock.called).toBe(true);

src/assets/TokenRatesController.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ describe('TokenRatesController', () => {
5050
});
5151

5252
it('should poll and update rate in the right interval', () => {
53-
return new Promise((resolve) => {
53+
return new Promise<void>((resolve) => {
5454
const mock = stub(TokenRatesController.prototype, 'fetchExchangeRate');
5555
new TokenRatesController({
5656
interval: 10,
@@ -79,7 +79,7 @@ describe('TokenRatesController', () => {
7979
it('should clear previous interval', () => {
8080
const mock = stub(global, 'clearTimeout');
8181
const controller = new TokenRatesController({ interval: 1337 });
82-
return new Promise((resolve) => {
82+
return new Promise<void>((resolve) => {
8383
setTimeout(() => {
8484
controller.poll(1338);
8585
expect(mock.called).toBe(true);

src/message-manager/MessageManager.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('PersonalMessageManager', () => {
4242
});
4343

4444
it('should reject a message', () => {
45-
return new Promise(async (resolve) => {
45+
return new Promise<void>(async (resolve) => {
4646
const controller = new MessageManager();
4747
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
4848
const data = '0x879a053d4800c6354e76c7985a865d2922c82fb5b';
@@ -65,7 +65,7 @@ describe('PersonalMessageManager', () => {
6565
});
6666

6767
it('should sign a message', () => {
68-
return new Promise(async (resolve) => {
68+
return new Promise<void>(async (resolve) => {
6969
const controller = new MessageManager();
7070
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
7171
const data = '0x879a053d4800c6354e76c7985a865d2922c82fb5b';
@@ -89,7 +89,7 @@ describe('PersonalMessageManager', () => {
8989
});
9090

9191
it('should throw when unapproved finishes', () => {
92-
return new Promise(async (resolve) => {
92+
return new Promise<void>(async (resolve) => {
9393
const controller = new MessageManager();
9494
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
9595
const data = '0x879a053d4800c6354e76c7985a865d2922c82fb5b';
@@ -131,7 +131,7 @@ describe('PersonalMessageManager', () => {
131131
it('should throw when adding invalid message', () => {
132132
const from = 'foo';
133133
const messageData = '0x123';
134-
return new Promise(async (resolve) => {
134+
return new Promise<void>(async (resolve) => {
135135
const controller = new MessageManager();
136136
try {
137137
await controller.addUnapprovedMessageAsync({

src/message-manager/MessageManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export class MessageManager extends AbstractMessageManager<Message, MessageParam
7676
this.hub.once(`${messageId}:finished`, (data: Message) => {
7777
switch (data.status) {
7878
case 'signed':
79-
return resolve(data.rawSig);
79+
return resolve(data.rawSig as string);
8080
case 'rejected':
8181
return reject(new Error('MetaMask Message Signature: User denied message signature.'));
8282
default:

src/message-manager/PersonalMessageManager.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('PersonalMessageManager', () => {
4242
});
4343

4444
it('should reject a message', () => {
45-
return new Promise(async (resolve) => {
45+
return new Promise<void>(async (resolve) => {
4646
const controller = new PersonalMessageManager();
4747
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
4848
const data = '0x879a053d4800c6354e76c7985a865d2922c82fb5b';
@@ -65,7 +65,7 @@ describe('PersonalMessageManager', () => {
6565
});
6666

6767
it('should sign a message', () => {
68-
return new Promise(async (resolve) => {
68+
return new Promise<void>(async (resolve) => {
6969
const controller = new PersonalMessageManager();
7070
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
7171
const data = '0x879a053d4800c6354e76c7985a865d2922c82fb5b';
@@ -89,7 +89,7 @@ describe('PersonalMessageManager', () => {
8989
});
9090

9191
it('should throw when unapproved finishes', () => {
92-
return new Promise(async (resolve) => {
92+
return new Promise<void>(async (resolve) => {
9393
const controller = new PersonalMessageManager();
9494
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
9595
const data = '0x879a053d4800c6354e76c7985a865d2922c82fb5b';
@@ -131,7 +131,7 @@ describe('PersonalMessageManager', () => {
131131
it('should throw when adding invalid message', () => {
132132
const from = 'foo';
133133
const messageData = '0x123';
134-
return new Promise(async (resolve) => {
134+
return new Promise<void>(async (resolve) => {
135135
const controller = new PersonalMessageManager();
136136
try {
137137
await controller.addUnapprovedMessageAsync({

src/message-manager/PersonalMessageManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export class PersonalMessageManager extends AbstractMessageManager<
8080
this.hub.once(`${messageId}:finished`, (data: PersonalMessage) => {
8181
switch (data.status) {
8282
case 'signed':
83-
return resolve(data.rawSig);
83+
return resolve(data.rawSig as string);
8484
case 'rejected':
8585
return reject(new Error('MetaMask Personal Message Signature: User denied message signature.'));
8686
default:

src/message-manager/TypedMessageManager.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ describe('TypedMessageManager', () => {
5454
});
5555

5656
it('should reject a message', () => {
57-
return new Promise(async (resolve) => {
57+
return new Promise<void>(async (resolve) => {
5858
const controller = new TypedMessageManager();
5959
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
6060
const version = 'V1';
@@ -81,7 +81,7 @@ describe('TypedMessageManager', () => {
8181
});
8282

8383
it('should sign a message', () => {
84-
return new Promise(async (resolve) => {
84+
return new Promise<void>(async (resolve) => {
8585
const controller = new TypedMessageManager();
8686
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
8787
const version = 'V1';
@@ -109,7 +109,7 @@ describe('TypedMessageManager', () => {
109109
});
110110

111111
it("should set message status as 'errored'", () => {
112-
return new Promise(async (resolve) => {
112+
return new Promise<void>(async (resolve) => {
113113
const controller = new TypedMessageManager();
114114
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
115115
const version = 'V1';
@@ -136,7 +136,7 @@ describe('TypedMessageManager', () => {
136136
});
137137

138138
it('should throw when unapproved finishes', () => {
139-
return new Promise(async (resolve) => {
139+
return new Promise<void>(async (resolve) => {
140140
const controller = new TypedMessageManager();
141141
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
142142
const version = 'V1';
@@ -185,7 +185,7 @@ describe('TypedMessageManager', () => {
185185
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
186186
const messageData = '0x879';
187187
const version = 'V1';
188-
return new Promise(async (resolve) => {
188+
return new Promise<void>(async (resolve) => {
189189
const controller = new TypedMessageManager();
190190
try {
191191
await controller.addUnapprovedMessageAsync(
@@ -206,7 +206,7 @@ describe('TypedMessageManager', () => {
206206
const from = '0xc38bf1ad06ef69f0c04e29dbeb4152b4175f0a8d';
207207
const messageData = typedMessage;
208208
const version = 'V3';
209-
return new Promise(async (resolve) => {
209+
return new Promise<void>(async (resolve) => {
210210
const controller = new TypedMessageManager();
211211
try {
212212
await controller.addUnapprovedMessageAsync(

src/message-manager/TypedMessageManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export class TypedMessageManager extends AbstractMessageManager<
109109
this.hub.once(`${messageId}:finished`, (data: TypedMessage) => {
110110
switch (data.status) {
111111
case 'signed':
112-
return resolve(data.rawSig);
112+
return resolve(data.rawSig as string);
113113
case 'rejected':
114114
return reject(new Error('MetaMask Typed Message Signature: User denied message signature.'));
115115
case 'errored':

src/third-party/PhishingController.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ describe('PhishingController', () => {
2121
});
2222

2323
it('should poll and update rate in the right interval', () => {
24-
return new Promise((resolve) => {
24+
return new Promise<void>((resolve) => {
2525
const mock = stub(PhishingController.prototype, 'updatePhishingLists');
2626
new PhishingController({ interval: 10 });
2727
expect(mock.called).toBe(true);
@@ -37,7 +37,7 @@ describe('PhishingController', () => {
3737
it('should clear previous interval', () => {
3838
const mock = stub(global, 'clearTimeout');
3939
const controller = new PhishingController({ interval: 1337 });
40-
return new Promise((resolve) => {
40+
return new Promise<void>((resolve) => {
4141
setTimeout(() => {
4242
controller.poll(1338);
4343
expect(mock.called).toBe(true);

src/transaction/TransactionController.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ export class TransactionController extends BaseController<TransactionConfig, Tra
394394
this.hub.once(`${transactionMeta.id}:finished`, (meta: TransactionMeta) => {
395395
switch (meta.status) {
396396
case 'submitted':
397-
return resolve(meta.transactionHash);
397+
return resolve(meta.transactionHash as string);
398398
case 'rejected':
399399
return reject(ethErrors.provider.userRejectedRequest('User rejected the transaction'));
400400
case 'cancelled':

0 commit comments

Comments
 (0)