chore(typescript): turn on noImplicitOverride (#7810)

This commit is contained in:
Joel Einbinder 2021-08-25 10:11:18 -04:00 committed by GitHub
parent 943c22c9c4
commit fc991fe897
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 55 additions and 54 deletions

View File

@ -29,7 +29,7 @@ import * as structs from '../../types/structs';
export class ElementHandle<T extends Node = Node> extends JSHandle<T> implements api.ElementHandle { export class ElementHandle<T extends Node = Node> extends JSHandle<T> implements api.ElementHandle {
readonly _elementChannel: channels.ElementHandleChannel; readonly _elementChannel: channels.ElementHandleChannel;
static from(handle: channels.ElementHandleChannel): ElementHandle { static override from(handle: channels.ElementHandleChannel): ElementHandle {
return (handle as any)._object; return (handle as any)._object;
} }
@ -42,7 +42,7 @@ export class ElementHandle<T extends Node = Node> extends JSHandle<T> implements
this._elementChannel = this._channel as channels.ElementHandleChannel; this._elementChannel = this._channel as channels.ElementHandleChannel;
} }
asElement(): T extends Node ? ElementHandle<T> : null { override asElement(): T extends Node ? ElementHandle<T> : null {
return this as any; return this as any;
} }

View File

@ -79,7 +79,7 @@ export class JSHandle<T = any> extends ChannelOwner<channels.JSHandleChannel, ch
}); });
} }
toString(): string { override toString(): string {
return this._preview; return this._preview;
} }
} }

View File

@ -615,28 +615,28 @@ export class Page extends ChannelOwner<channels.PageChannel, channels.PageInitia
return [...this._workers]; return [...this._workers];
} }
on(event: string | symbol, listener: Listener): this { override on(event: string | symbol, listener: Listener): this {
if (event === Events.Page.FileChooser && !this.listenerCount(event)) if (event === Events.Page.FileChooser && !this.listenerCount(event))
this._channel.setFileChooserInterceptedNoReply({ intercepted: true }); this._channel.setFileChooserInterceptedNoReply({ intercepted: true });
super.on(event, listener); super.on(event, listener);
return this; return this;
} }
addListener(event: string | symbol, listener: Listener): this { override addListener(event: string | symbol, listener: Listener): this {
if (event === Events.Page.FileChooser && !this.listenerCount(event)) if (event === Events.Page.FileChooser && !this.listenerCount(event))
this._channel.setFileChooserInterceptedNoReply({ intercepted: true }); this._channel.setFileChooserInterceptedNoReply({ intercepted: true });
super.addListener(event, listener); super.addListener(event, listener);
return this; return this;
} }
off(event: string | symbol, listener: Listener): this { override off(event: string | symbol, listener: Listener): this {
super.off(event, listener); super.off(event, listener);
if (event === Events.Page.FileChooser && !this.listenerCount(event)) if (event === Events.Page.FileChooser && !this.listenerCount(event))
this._channel.setFileChooserInterceptedNoReply({ intercepted: false }); this._channel.setFileChooserInterceptedNoReply({ intercepted: false });
return this; return this;
} }
removeListener(event: string | symbol, listener: Listener): this { override removeListener(event: string | symbol, listener: Listener): this {
super.removeListener(event, listener); super.removeListener(event, listener);
if (event === Events.Page.FileChooser && !this.listenerCount(event)) if (event === Events.Page.FileChooser && !this.listenerCount(event))
this._channel.setFileChooserInterceptedNoReply({ intercepted: false }); this._channel.setFileChooserInterceptedNoReply({ intercepted: false });

View File

@ -40,7 +40,7 @@ class StreamImpl extends Readable {
this._channel = channel; this._channel = channel;
} }
async _read(size: number) { override async _read(size: number) {
const result = await this._channel.read({ size }); const result = await this._channel.read({ size });
if (result.binary) if (result.binary)
this.push(Buffer.from(result.binary, 'base64')); this.push(Buffer.from(result.binary, 'base64'));
@ -48,7 +48,7 @@ class StreamImpl extends Readable {
this.push(null); this.push(null);
} }
_destroy(error: Error | null, callback: (error: Error | null) => void): void { override _destroy(error: Error | null, callback: (error: Error | null) => void): void {
// Stream might be destroyed after the connection was closed. // Stream might be destroyed after the connection was closed.
this._channel.close().catch(e => null); this._channel.close().catch(e => null);
super._destroy(error, callback); super._destroy(error, callback);

View File

@ -48,7 +48,7 @@ export class Chromium extends BrowserType {
this._devtools = this._createDevTools(); this._devtools = this._createDevTools();
} }
async connectOverCDP(metadata: CallMetadata, endpointURL: string, options: { slowMo?: number, headers?: types.HeadersArray }, timeout?: number) { override async connectOverCDP(metadata: CallMetadata, endpointURL: string, options: { slowMo?: number, headers?: types.HeadersArray }, timeout?: number) {
const controller = new ProgressController(metadata, this); const controller = new ProgressController(metadata, this);
controller.setLogName('browser'); controller.setLogName('browser');
const browserLogsCollector = new RecentLogsCollector(); const browserLogsCollector = new RecentLogsCollector();

View File

@ -308,7 +308,7 @@ export class CRBrowserContext extends BrowserContext {
this._authenticateProxyViaCredentials(); this._authenticateProxyViaCredentials();
} }
async _initialize() { override async _initialize() {
assert(!Array.from(this._browser._crPages.values()).some(page => page._browserContext === this)); assert(!Array.from(this._browser._crPages.values()).some(page => page._browserContext === this));
const promises: Promise<any>[] = [ super._initialize() ]; const promises: Promise<any>[] = [ super._initialize() ];
if (this._browser.options.name !== 'electron' && this._browser.options.name !== 'clank') { if (this._browser.options.name !== 'electron' && this._browser.options.name !== 'clank') {

View File

@ -132,11 +132,11 @@ export class CRSession extends EventEmitter {
private readonly _rootSessionId: string; private readonly _rootSessionId: string;
private _crashed: boolean = false; private _crashed: boolean = false;
private _browserDisconnectedLogs: string | undefined; private _browserDisconnectedLogs: string | undefined;
on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
readonly guid: string; readonly guid: string;
constructor(connection: CRConnection, rootSessionId: string, targetType: string, sessionId: string) { constructor(connection: CRConnection, rootSessionId: string, targetType: string, sessionId: string) {

View File

@ -40,11 +40,11 @@ export class FrameExecutionContext extends js.ExecutionContext {
this.world = world; this.world = world;
} }
async waitForSignalsCreatedBy<T>(action: () => Promise<T>): Promise<T> { override async waitForSignalsCreatedBy<T>(action: () => Promise<T>): Promise<T> {
return this.frame._page._frameManager.waitForSignalsCreatedBy(null, false, action); return this.frame._page._frameManager.waitForSignalsCreatedBy(null, false, action);
} }
adoptIfNeeded(handle: js.JSHandle): Promise<js.JSHandle> | null { override adoptIfNeeded(handle: js.JSHandle): Promise<js.JSHandle> | null {
if (handle instanceof ElementHandle && handle._context !== this) if (handle instanceof ElementHandle && handle._context !== this)
return this.frame._page._delegate.adoptElementHandle(handle, this); return this.frame._page._delegate.adoptElementHandle(handle, this);
return null; return null;
@ -80,7 +80,7 @@ export class FrameExecutionContext extends js.ExecutionContext {
}); });
} }
createHandle(remoteObject: js.RemoteObject): js.JSHandle { override createHandle(remoteObject: js.RemoteObject): js.JSHandle {
if (this.frame._page._delegate.isElementHandle(remoteObject)) if (this.frame._page._delegate.isElementHandle(remoteObject))
return new ElementHandle(this, remoteObject.objectId!); return new ElementHandle(this, remoteObject.objectId!);
return super.createHandle(remoteObject); return super.createHandle(remoteObject);
@ -106,7 +106,7 @@ export class FrameExecutionContext extends js.ExecutionContext {
return this._injectedScriptPromise; return this._injectedScriptPromise;
} }
async doSlowMo() { override async doSlowMo() {
return this.frame._page._doSlowMo(); return this.frame._page._doSlowMo();
} }
} }
@ -127,7 +127,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
this._setPreview(await utility.evaluate((injected, e) => 'JSHandle@' + injected.previewNode(e), this)); this._setPreview(await utility.evaluate((injected, e) => 'JSHandle@' + injected.previewNode(e), this));
} }
asElement(): ElementHandle<T> | null { override asElement(): ElementHandle<T> | null {
return this; return this;
} }

View File

@ -153,7 +153,7 @@ export class FFBrowserContext extends BrowserContext {
super(browser, options, browserContextId); super(browser, options, browserContextId);
} }
async _initialize() { override async _initialize() {
assert(!this._ffPages().length); assert(!this._ffPages().length);
const browserContextId = this._browserContextId; const browserContextId = this._browserContextId;
const promises: Promise<any>[] = [ super._initialize() ]; const promises: Promise<any>[] = [ super._initialize() ];

View File

@ -41,11 +41,11 @@ export class FFConnection extends EventEmitter {
readonly _sessions: Map<string, FFSession>; readonly _sessions: Map<string, FFSession>;
_closed: boolean; _closed: boolean;
on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
constructor(transport: ConnectionTransport, protocolLogger: ProtocolLogger, browserLogsCollector: RecentLogsCollector) { constructor(transport: ConnectionTransport, protocolLogger: ProtocolLogger, browserLogsCollector: RecentLogsCollector) {
super(); super();
@ -155,11 +155,11 @@ export class FFSession extends EventEmitter {
private _sessionId: string; private _sessionId: string;
private _rawSend: (message: any) => void; private _rawSend: (message: any) => void;
private _crashed: boolean = false; private _crashed: boolean = false;
on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
constructor(connection: FFConnection, targetType: string, sessionId: string, rawSend: (message: any) => void) { constructor(connection: FFConnection, targetType: string, sessionId: string, rawSend: (message: any) => void) {
super(); super();

View File

@ -172,7 +172,7 @@ export class JSHandle<T = any> extends SdkObject {
this._context._delegate.releaseHandle(this._objectId).catch(e => {}); this._context._delegate.releaseHandle(this._objectId).catch(e => {});
} }
toString(): string { override toString(): string {
return this._preview; return this._preview;
} }

View File

@ -207,7 +207,7 @@ export class WKBrowserContext extends BrowserContext {
this._authenticateProxyViaHeader(); this._authenticateProxyViaHeader();
} }
async _initialize() { override async _initialize() {
assert(!this._wkPages().length); assert(!this._wkPages().length);
const browserContextId = this._browserContextId; const browserContextId = this._browserContextId;
const promises: Promise<any>[] = [ super._initialize() ]; const promises: Promise<any>[] = [ super._initialize() ];

View File

@ -104,11 +104,11 @@ export class WKSession extends EventEmitter {
private readonly _callbacks = new Map<number, {resolve: (o: any) => void, reject: (e: Error) => void, error: Error, method: string}>(); private readonly _callbacks = new Map<number, {resolve: (o: any) => void, reject: (e: Error) => void, error: Error, method: string}>();
private _crashed: boolean = false; private _crashed: boolean = false;
on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override on: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override addListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override off: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override removeListener: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; override once: <T extends keyof Protocol.Events | symbol>(event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this;
constructor(connection: WKConnection, sessionId: string, errorText: string, rawSend: (message: any) => void) { constructor(connection: WKConnection, sessionId: string, errorText: string, rawSend: (message: any) => void) {
super(); super();

View File

@ -21,19 +21,19 @@ import { FullResult, TestCase, TestResult } from '../../../types/testReporter';
class DotReporter extends BaseReporter { class DotReporter extends BaseReporter {
private _counter = 0; private _counter = 0;
onStdOut(chunk: string | Buffer, test?: TestCase, result?: TestResult) { override onStdOut(chunk: string | Buffer, test?: TestCase, result?: TestResult) {
super.onStdOut(chunk, test, result); super.onStdOut(chunk, test, result);
if (!this.config.quiet) if (!this.config.quiet)
process.stdout.write(chunk); process.stdout.write(chunk);
} }
onStdErr(chunk: string | Buffer, test?: TestCase, result?: TestResult) { override onStdErr(chunk: string | Buffer, test?: TestCase, result?: TestResult) {
super.onStdErr(chunk, test, result); super.onStdErr(chunk, test, result);
if (!this.config.quiet) if (!this.config.quiet)
process.stderr.write(chunk); process.stderr.write(chunk);
} }
onTestEnd(test: TestCase, result: TestResult) { override onTestEnd(test: TestCase, result: TestResult) {
super.onTestEnd(test, result); super.onTestEnd(test, result);
if (this._counter === 80) { if (this._counter === 80) {
process.stdout.write('\n'); process.stdout.write('\n');
@ -55,7 +55,7 @@ class DotReporter extends BaseReporter {
} }
} }
async onEnd(result: FullResult) { override async onEnd(result: FullResult) {
await super.onEnd(result); await super.onEnd(result);
process.stdout.write('\n'); process.stdout.write('\n');
this.epilogue(true); this.epilogue(true);

View File

@ -24,18 +24,18 @@ class LineReporter extends BaseReporter {
private _failures = 0; private _failures = 0;
private _lastTest: TestCase | undefined; private _lastTest: TestCase | undefined;
onBegin(config: FullConfig, suite: Suite) { override onBegin(config: FullConfig, suite: Suite) {
super.onBegin(config, suite); super.onBegin(config, suite);
this._total = suite.allTests().length; this._total = suite.allTests().length;
console.log(); console.log();
} }
onStdOut(chunk: string | Buffer, test?: TestCase, result?: TestResult) { override onStdOut(chunk: string | Buffer, test?: TestCase, result?: TestResult) {
super.onStdOut(chunk, test, result); super.onStdOut(chunk, test, result);
this._dumpToStdio(test, chunk, process.stdout); this._dumpToStdio(test, chunk, process.stdout);
} }
onStdErr(chunk: string | Buffer, test?: TestCase, result?: TestResult) { override onStdErr(chunk: string | Buffer, test?: TestCase, result?: TestResult) {
super.onStdErr(chunk, test, result); super.onStdErr(chunk, test, result);
this._dumpToStdio(test, chunk, process.stderr); this._dumpToStdio(test, chunk, process.stderr);
} }
@ -54,7 +54,7 @@ class LineReporter extends BaseReporter {
console.log(); console.log();
} }
onTestEnd(test: TestCase, result: TestResult) { override onTestEnd(test: TestCase, result: TestResult) {
super.onTestEnd(test, result); super.onTestEnd(test, result);
const width = process.stdout.columns! - 1; const width = process.stdout.columns! - 1;
const title = `[${++this._current}/${this._total}] ${formatTestTitle(this.config, test)}`.substring(0, width); const title = `[${++this._current}/${this._total}] ${formatTestTitle(this.config, test)}`.substring(0, width);
@ -66,7 +66,7 @@ class LineReporter extends BaseReporter {
} }
} }
async onEnd(result: FullResult) { override async onEnd(result: FullResult) {
process.stdout.write(`\u001B[1A\u001B[2K`); process.stdout.write(`\u001B[1A\u001B[2K`);
await super.onEnd(result); await super.onEnd(result);
this.epilogue(false); this.epilogue(false);

View File

@ -37,7 +37,7 @@ class ListReporter extends BaseReporter {
this._liveTerminal = process.stdout.isTTY || process.env.PWTEST_SKIP_TEST_OUTPUT; this._liveTerminal = process.stdout.isTTY || process.env.PWTEST_SKIP_TEST_OUTPUT;
} }
onBegin(config: FullConfig, suite: Suite) { override onBegin(config: FullConfig, suite: Suite) {
super.onBegin(config, suite); super.onBegin(config, suite);
console.log(); console.log();
} }
@ -54,12 +54,12 @@ class ListReporter extends BaseReporter {
this._testRows.set(test, this._lastRow++); this._testRows.set(test, this._lastRow++);
} }
onStdOut(chunk: string | Buffer, test?: TestCase, result?: TestResult) { override onStdOut(chunk: string | Buffer, test?: TestCase, result?: TestResult) {
super.onStdOut(chunk, test, result); super.onStdOut(chunk, test, result);
this._dumpToStdio(test, chunk, process.stdout); this._dumpToStdio(test, chunk, process.stdout);
} }
onStdErr(chunk: string | Buffer, test?: TestCase, result?: TestResult) { override onStdErr(chunk: string | Buffer, test?: TestCase, result?: TestResult) {
super.onStdErr(chunk, test, result); super.onStdErr(chunk, test, result);
this._dumpToStdio(test, chunk, process.stdout); this._dumpToStdio(test, chunk, process.stdout);
} }
@ -92,7 +92,7 @@ class ListReporter extends BaseReporter {
stream.write(chunk); stream.write(chunk);
} }
onTestEnd(test: TestCase, result: TestResult) { override onTestEnd(test: TestCase, result: TestResult) {
super.onTestEnd(test, result); super.onTestEnd(test, result);
const duration = colors.dim(` (${milliseconds(result.duration)})`); const duration = colors.dim(` (${milliseconds(result.duration)})`);
@ -145,7 +145,7 @@ class ListReporter extends BaseReporter {
process.stdout.write(testRow + ' : ' + line + '\n'); process.stdout.write(testRow + ' : ' + line + '\n');
} }
async onEnd(result: FullResult) { override async onEnd(result: FullResult) {
await super.onEnd(result); await super.onEnd(result);
process.stdout.write('\n'); process.stdout.write('\n');
this.epilogue(true); this.epilogue(true);

View File

@ -270,7 +270,7 @@ export function monotonicTime(): number {
class HashStream extends stream.Writable { class HashStream extends stream.Writable {
private _hash = crypto.createHash('sha1'); private _hash = crypto.createHash('sha1');
_write(chunk: Buffer, encoding: string, done: () => void) { override _write(chunk: Buffer, encoding: string, done: () => void) {
this._hash.update(chunk); this._hash.update(chunk);
done(); done();
} }

View File

@ -9,6 +9,7 @@
"jsx": "react", "jsx": "react",
"resolveJsonModule": true, "resolveJsonModule": true,
"noEmit": true, "noEmit": true,
"noImplicitOverride": true,
}, },
"compileOnSave": true, "compileOnSave": true,
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/server/deviceDescriptorsSource.json"], "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/server/deviceDescriptorsSource.json"],