chore: fix eslint warnings around type defs (#7230)

This PR updates some code to remove constant ESLint warnings. It also
upgrades those warnings to errors - so that they have to be resolved
as part of the PR, rather than landing as a warning and causing noise.

Fixes #7229.
This commit is contained in:
Jack Franklin 2021-05-12 17:43:05 +01:00 committed by GitHub
parent 523aa0aafa
commit 3204f2780f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 41 additions and 33 deletions

View File

@ -166,6 +166,8 @@ module.exports = {
default: 'array-simple', default: 'array-simple',
}, },
], ],
// By default this is a warning but we want it to error.
'@typescript-eslint/explicit-module-boundary-types': 2,
}, },
}, },
{ {

View File

@ -72,7 +72,7 @@
"@commitlint/cli": "^11.0.0", "@commitlint/cli": "^11.0.0",
"@commitlint/config-conventional": "^11.0.0", "@commitlint/config-conventional": "^11.0.0",
"@microsoft/api-documenter": "^7.12.7", "@microsoft/api-documenter": "^7.12.7",
"@microsoft/api-extractor": "^7.13.1", "@microsoft/api-extractor": "7.15.1",
"@types/debug": "0.0.31", "@types/debug": "0.0.31",
"@types/mime": "^2.0.0", "@types/mime": "^2.0.0",
"@types/mocha": "^7.0.2", "@types/mocha": "^7.0.2",
@ -82,8 +82,8 @@
"@types/sinon": "^9.0.4", "@types/sinon": "^9.0.4",
"@types/tar-fs": "^1.16.2", "@types/tar-fs": "^1.16.2",
"@types/ws": "^7.2.4", "@types/ws": "^7.2.4",
"@typescript-eslint/eslint-plugin": "^4.4.0", "@typescript-eslint/eslint-plugin": "4.23.0",
"@typescript-eslint/parser": "^4.4.0", "@typescript-eslint/parser": "4.23.0",
"@web/test-runner": "^0.12.15", "@web/test-runner": "^0.12.15",
"commonmark": "^0.28.1", "commonmark": "^0.28.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
@ -109,7 +109,7 @@
"standard-version": "^9.0.0", "standard-version": "^9.0.0",
"text-diff": "^1.0.1", "text-diff": "^1.0.1",
"ts-node": "^9.0.0", "ts-node": "^9.0.0",
"typescript": "^4.1.5" "typescript": "4.2.4"
}, },
"husky": { "husky": {
"hooks": { "hooks": {

View File

@ -21,7 +21,7 @@ export interface CommonEventEmitter {
*/ */
addListener(event: EventType, handler: Handler): CommonEventEmitter; addListener(event: EventType, handler: Handler): CommonEventEmitter;
removeListener(event: EventType, handler: Handler): CommonEventEmitter; removeListener(event: EventType, handler: Handler): CommonEventEmitter;
emit(event: EventType, eventData?: any): boolean; emit(event: EventType, eventData?: unknown): boolean;
once(event: EventType, handler: Handler): CommonEventEmitter; once(event: EventType, handler: Handler): CommonEventEmitter;
listenerCount(event: string): number; listenerCount(event: string): number;
@ -98,7 +98,7 @@ export class EventEmitter implements CommonEventEmitter {
* @param eventData - any data you'd like to emit with the event * @param eventData - any data you'd like to emit with the event
* @returns `true` if there are any listeners, `false` if there are not. * @returns `true` if there are any listeners, `false` if there are not.
*/ */
emit(event: EventType, eventData?: any): boolean { emit(event: EventType, eventData?: unknown): boolean {
this.emitter.emit(event, eventData); this.emitter.emit(event, eventData);
return this.eventListenersCount(event) > 0; return this.eventListenersCount(event) > 0;
} }

View File

@ -76,7 +76,7 @@ export class FileChooser {
/** /**
* Closes the file chooser without selecting any files. * Closes the file chooser without selecting any files.
*/ */
cancel() { cancel(): void {
assert( assert(
!this._handled, !this._handled,
'Cannot cancel FileChooser which is already handled!' 'Cannot cancel FileChooser which is already handled!'

View File

@ -26,7 +26,7 @@ const supportedProducts = {
firefox: 'Firefox Nightly', firefox: 'Firefox Nightly',
} as const; } as const;
export async function downloadBrowser() { export async function downloadBrowser(): Promise<void> {
const downloadHost = const downloadHost =
process.env.PUPPETEER_DOWNLOAD_HOST || process.env.PUPPETEER_DOWNLOAD_HOST ||
process.env.npm_config_puppeteer_download_host || process.env.npm_config_puppeteer_download_host ||
@ -178,7 +178,7 @@ export async function downloadBrowser() {
} }
} }
export function logPolitely(toBeLogged) { export function logPolitely(toBeLogged: unknown): void {
const logLevel = process.env.npm_config_loglevel; const logLevel = process.env.npm_config_loglevel;
const logLevelDisplay = ['silent', 'error', 'warn'].indexOf(logLevel) > -1; const logLevelDisplay = ['silent', 'error', 'warn'].indexOf(logLevel) > -1;

View File

@ -231,13 +231,12 @@ describe('Cookie specs', () => {
value: 'bar', value: 'bar',
} }
); );
expectCookieEquals( const cookieStrings = await page.evaluate(() => {
await page.evaluate(() => { const cookies = document.cookie.split(';');
const cookies = document.cookie.split(';'); return cookies.map((cookie) => cookie.trim()).sort();
return cookies.map((cookie) => cookie.trim()).sort(); });
}),
['foo=bar', 'password=123456'] expect(cookieStrings).toEqual(['foo=bar', 'password=123456']);
);
}); });
it('should have |expires| set to |-1| for session cookies', async () => { it('should have |expires| set to |-1| for session cookies', async () => {
const { page, server } = getTestState(); const { page, server } = getTestState();

View File

@ -31,6 +31,7 @@ import rimraf from 'rimraf';
import expect from 'expect'; import expect from 'expect';
import { trackCoverage } from './coverage-utils.js'; import { trackCoverage } from './coverage-utils.js';
import Protocol from 'devtools-protocol';
const setupServer = async () => { const setupServer = async () => {
const assetsPath = path.join(__dirname, 'assets'); const assetsPath = path.join(__dirname, 'assets');
@ -177,7 +178,10 @@ export const itFailsWindowsUntilDate = (
return it(description, body); return it(description, body);
}; };
export const itFailsWindows = (description: string, body: Mocha.Func) => { export const itFailsWindows = (
description: string,
body: Mocha.Func
): Mocha.Test => {
if (os.platform() === 'win32') { if (os.platform() === 'win32') {
return xit(description, body); return xit(description, body);
} }
@ -217,7 +221,7 @@ console.log(
}` }`
); );
export const setupTestBrowserHooks = () => { export const setupTestBrowserHooks = (): void => {
before(async () => { before(async () => {
const browser = await puppeteer.launch(defaultBrowserOptions); const browser = await puppeteer.launch(defaultBrowserOptions);
state.browser = browser; state.browser = browser;
@ -229,7 +233,7 @@ export const setupTestBrowserHooks = () => {
}); });
}; };
export const setupTestPageAndContextHooks = () => { export const setupTestPageAndContextHooks = (): void => {
beforeEach(async () => { beforeEach(async () => {
state.context = await state.browser.createIncognitoBrowserContext(); state.context = await state.browser.createIncognitoBrowserContext();
state.page = await state.context.newPage(); state.page = await state.context.newPage();
@ -244,7 +248,7 @@ export const setupTestPageAndContextHooks = () => {
export const mochaHooks = { export const mochaHooks = {
beforeAll: [ beforeAll: [
async () => { async (): Promise<void> => {
const { server, httpsServer } = await setupServer(); const { server, httpsServer } = await setupServer();
state.puppeteer = puppeteer; state.puppeteer = puppeteer;
@ -259,13 +263,13 @@ export const mochaHooks = {
coverageHooks.beforeAll, coverageHooks.beforeAll,
], ],
beforeEach: async () => { beforeEach: async (): Promise<void> => {
state.server.reset(); state.server.reset();
state.httpsServer.reset(); state.httpsServer.reset();
}, },
afterAll: [ afterAll: [
async () => { async (): Promise<void> => {
await state.server.stop(); await state.server.stop();
state.server = null; state.server = null;
await state.httpsServer.stop(); await state.httpsServer.stop();
@ -274,12 +278,15 @@ export const mochaHooks = {
coverageHooks.afterAll, coverageHooks.afterAll,
], ],
afterEach: () => { afterEach: (): void => {
sinon.restore(); sinon.restore();
}, },
}; };
export const expectCookieEquals = (cookies, expectedCookies) => { export const expectCookieEquals = (
cookies: Protocol.Network.Cookie[],
expectedCookies: Array<Partial<Protocol.Network.Cookie>>
): void => {
const { isChrome } = getTestState(); const { isChrome } = getTestState();
if (!isChrome) { if (!isChrome) {
// Only keep standard properties when testing on a browser other than Chrome. // Only keep standard properties when testing on a browser other than Chrome.

View File

@ -685,7 +685,8 @@ function compareDocumentations(actual, expected) {
'Method Page.emulateVisionDeficiency() type', 'Method Page.emulateVisionDeficiency() type',
{ {
actualName: 'string', actualName: 'string',
expectedName: 'Object', expectedName:
'"none"|"achromatopsia"|"blurredVision"|"deuteranopia"|"protanopia"|"tritanopia"',
}, },
], ],
[ [
@ -849,14 +850,6 @@ function compareDocumentations(actual, expected) {
expectedName: '...DeleteCookiesRequest', expectedName: '...DeleteCookiesRequest',
}, },
], ],
[
'Method Page.emulateVisionDeficiency() type',
{
actualName: 'string',
expectedName:
'"none"|"achromatopsia"|"blurredVision"|"deuteranopia"|"protanopia"|"tritanopia"',
},
],
[ [
'Method BrowserContext.overridePermissions() permissions', 'Method BrowserContext.overridePermissions() permissions',
{ {
@ -885,6 +878,13 @@ function compareDocumentations(actual, expected) {
expectedName: 'Object', expectedName: 'Object',
}, },
], ],
[
'Method EventEmitter.emit() eventData',
{
actualName: 'Object',
expectedName: 'unknown',
},
],
]); ]);
const expectedForSource = expectedNamingMismatches.get(source); const expectedForSource = expectedNamingMismatches.get(source);