chore: add max-params eslint rule

This commit is contained in:
Simon Chan 2024-06-23 05:31:04 +08:00
parent 3c2b57cfc5
commit 73a0af4613
No known key found for this signature in database
GPG key ID: A8B69F750B9BCEDD
17 changed files with 79 additions and 54 deletions

View file

@ -27,7 +27,7 @@ export class AdbScrcpyOptions2_0 extends AdbScrcpyOptions<
): Promise<ScrcpyEncoder[]> {
try {
// Similar to `AdbScrcpyOptions1_16.getDisplays`,
// server start process won't complete and `start `will throw
// server start procedure won't complete and `start `will throw
const client = await AdbScrcpyClient.start(
adb,
path,

View file

@ -38,6 +38,7 @@ export function getBigUint(
* @param littleEndian If `false` or `undefined`, a big-endian value should be written,
* otherwise a little-endian value should be written.
*/
// eslint-disable-next-line max-params
export function setBigUint(
array: Uint8Array,
byteOffset: number,

View file

@ -41,7 +41,9 @@ export class ActivityManager extends AdbCommandBase {
return this.adb.subprocess.spawn(args);
}
async startActivity(options: ActivityManagerStartActivityOptions) {
async startActivity(
options: ActivityManagerStartActivityOptions,
): Promise<void> {
let args = buildArguments(
["am", "start-activity", "-W"],
options,

View file

@ -32,15 +32,15 @@ export interface BugReportZOptions {
}
export class BugReport extends AdbCommandBase {
static VERSION_REGEX = /(\d+)\.(\d+)/;
static VERSION_REGEX: RegExp = /(\d+)\.(\d+)/;
static BEGIN_REGEX = /BEGIN:(.*)/;
static BEGIN_REGEX: RegExp = /BEGIN:(.*)/;
static PROGRESS_REGEX = /PROGRESS:(.*)\/(.*)/;
static PROGRESS_REGEX: RegExp = /PROGRESS:(.*)\/(.*)/;
static OK_REGEX = /OK:(.*)/;
static OK_REGEX: RegExp = /OK:(.*)/;
static FAIL_REGEX = /FAIL:(.*)/;
static FAIL_REGEX: RegExp = /FAIL:(.*)/;
/**
* Queries the device's bugreport capabilities.
@ -101,7 +101,7 @@ export class BugReport extends AdbCommandBase {
*
* Should be `true` for Android version <= 11.
*/
get supportsBugReport() {
get supportsBugReport(): boolean {
return this.#supportsBugReport;
}
@ -111,7 +111,7 @@ export class BugReport extends AdbCommandBase {
*
* Will be `undefined` if BugReportZ is not supported.
*/
get bugReportZVersion() {
get bugReportZVersion(): string | undefined {
return this.#bugReportZVersion;
}
@ -121,7 +121,7 @@ export class BugReport extends AdbCommandBase {
*
* Should be `true` for Android version >= 7.
*/
get supportsBugReportZ() {
get supportsBugReportZ(): boolean {
return this.#supportsBugReportZ;
}
@ -131,7 +131,7 @@ export class BugReport extends AdbCommandBase {
*
* Should be `true` for Android version >= 8.
*/
get supportsBugReportZProgress() {
get supportsBugReportZProgress(): boolean {
return this.#supportsBugReportZProgress;
}
@ -141,7 +141,7 @@ export class BugReport extends AdbCommandBase {
*
* Should be `true` for Android version >= 12.
*/
get supportsBugReportZStream() {
get supportsBugReportZStream(): boolean {
return this.#supportsBugReportZStream;
}

View file

@ -14,22 +14,22 @@ import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
export class Cmd extends AdbCommandBase {
#supportsShellV2: boolean;
get supportsShellV2() {
get supportsShellV2(): boolean {
return this.#supportsShellV2;
}
#supportsCmd: boolean;
get supportsCmd() {
get supportsCmd(): boolean {
return this.#supportsCmd;
}
#supportsAbb: boolean;
get supportsAbb() {
get supportsAbb(): boolean {
return this.#supportsAbb;
}
#supportsAbbExec: boolean;
get supportsAbbExec() {
get supportsAbbExec(): boolean {
return this.#supportsAbbExec;
}

View file

@ -65,7 +65,7 @@ export class DumpSys extends AdbCommandBase {
};
}
async battery() {
async battery(): Promise<DumpSys.Battery.Info> {
const output = await this.adb.subprocess.spawnAndWaitLegacy([
"dumpsys",
"battery",

View file

@ -404,12 +404,12 @@ export class Logcat extends AdbCommandBase {
// TODO: logcat: Support output format before Android 10
// ref https://android-review.googlesource.com/c/platform/system/core/+/748128
static readonly LOG_SIZE_REGEX_10 =
static readonly LOG_SIZE_REGEX_10: RegExp =
/(.*): ring buffer is (.*) (.*)B \((.*) (.*)B consumed\), max entry is (.*) B, max payload is (.*) B/;
// Android 11 added `readable` part
// ref https://android-review.googlesource.com/c/platform/system/core/+/1390940
static readonly LOG_SIZE_REGEX_11 =
static readonly LOG_SIZE_REGEX_11: RegExp =
/(.*): ring buffer is (.*) (.*)B \((.*) (.*)B consumed, (.*) (.*)B readable\), max entry is (.*) B, max payload is (.*) B/;
async getLogSize(ids?: LogId[]): Promise<LogSize[]> {
@ -471,7 +471,7 @@ export class Logcat extends AdbCommandBase {
return result;
}
async clear(ids?: LogId[]) {
async clear(ids?: LogId[]): Promise<void> {
const args = ["logcat", "-c"];
if (ids && ids.length > 0) {
args.push("-b", Logcat.joinLogId(ids));

View file

@ -36,7 +36,7 @@ export class OverlayDisplay extends AdbCommandBase {
p.literal("/"),
{ name: "density", format: p.digits() },
),
1,
{ min: 1 },
),
},
{
@ -81,7 +81,7 @@ export class OverlayDisplay extends AdbCommandBase {
}));
}
async set(devices: OverlayDisplayDevice[]) {
async set(devices: OverlayDisplayDevice[]): Promise<void> {
await this.#settings.put(
"global",
OverlayDisplay.SETTING_KEY,

View file

@ -533,7 +533,9 @@ export class PackageManager extends AdbCommandBase {
* @param options Options for the install session
* @returns ID of the new install session
*/
async sessionCreate(options?: Partial<PackageManagerInstallOptions>) {
async sessionCreate(
options?: Partial<PackageManagerInstallOptions>,
): Promise<number> {
const args = this.#buildInstallArguments("install-create", options);
const process = await this.#cmdOrSubprocess(args);
@ -550,7 +552,11 @@ export class PackageManager extends AdbCommandBase {
return Number.parseInt(sessionIdString[1]!, 10);
}
async sessionAddSplit(sessionId: number, splitName: string, path: string) {
async sessionAddSplit(
sessionId: number,
splitName: string,
path: string,
): Promise<void> {
const args: string[] = [
"pm",
"install-write",
@ -572,7 +578,7 @@ export class PackageManager extends AdbCommandBase {
splitName: string,
size: number,
stream: ReadableStream<MaybeConsumable<Uint8Array>>,
) {
): Promise<void> {
const args: string[] = [
"pm",
"install-write",
@ -599,7 +605,7 @@ export class PackageManager extends AdbCommandBase {
]);
}
async sessionCommit(sessionId: number) {
async sessionCommit(sessionId: number): Promise<void> {
const args: string[] = ["pm", "install-commit", sessionId.toString()];
const output = await this.adb.subprocess
.spawnAndWaitLegacy(args)
@ -609,7 +615,7 @@ export class PackageManager extends AdbCommandBase {
}
}
async sessionAbandon(sessionId: number) {
async sessionAbandon(sessionId: number): Promise<void> {
const args: string[] = ["pm", "install-abandon", sessionId.toString()];
const output = await this.adb.subprocess
.spawnAndWaitLegacy(args)
@ -624,7 +630,7 @@ export class PackageManagerInstallSession {
static async create(
packageManager: PackageManager,
options?: Partial<PackageManagerInstallOptions>,
) {
): Promise<PackageManagerInstallSession> {
const id = await packageManager.sessionCreate(options);
return new PackageManagerInstallSession(packageManager, id);
}
@ -632,7 +638,7 @@ export class PackageManagerInstallSession {
#packageManager: PackageManager;
#id: number;
get id() {
get id(): number {
return this.#id;
}
@ -641,7 +647,7 @@ export class PackageManagerInstallSession {
this.#id = id;
}
addSplit(splitName: string, path: string) {
addSplit(splitName: string, path: string): Promise<void> {
return this.#packageManager.sessionAddSplit(this.#id, splitName, path);
}
@ -649,7 +655,7 @@ export class PackageManagerInstallSession {
splitName: string,
size: number,
stream: ReadableStream<MaybeConsumable<Uint8Array>>,
) {
): Promise<void> {
return this.#packageManager.sessionAddSplitStream(
this.#id,
splitName,
@ -658,11 +664,11 @@ export class PackageManagerInstallSession {
);
}
commit() {
commit(): Promise<void> {
return this.#packageManager.sessionCommit(this.#id);
}
abandon() {
abandon(): Promise<void> {
return this.#packageManager.sessionAbandon(this.#id);
}
}

View file

@ -66,7 +66,7 @@ export class Settings extends AdbCommandBase {
namespace: SettingsNamespace,
key: string,
options?: SettingsOptions,
) {
): Promise<string> {
const output = await this.base("get", namespace, options, key);
// Remove last \n
return output.substring(0, output.length - 1);

View file

@ -103,8 +103,7 @@ export const p = {
separated: <T>(
separator: string,
format: Format<T>,
min = 0,
max = Infinity,
{ min = 0, max = Infinity }: { min?: number; max?: number } = {},
): Format<T[]> => ({
parse(reader: Reader) {
const result: T[] = [];

View file

@ -42,19 +42,19 @@ export class HidMouse {
],
);
static serializeInputReport(
movementX: number,
movementY: number,
buttons: number,
scrollX: number,
scrollY: number,
): Uint8Array {
static serializeInputReport(report: {
movementX?: number;
movementY?: number;
buttons?: number;
scrollX?: number;
scrollY?: number;
}): Uint8Array {
return new Uint8Array([
buttons,
movementX,
movementY,
scrollY,
scrollX,
report.buttons ?? 0,
report.movementX ?? 0,
report.movementY ?? 0,
report.scrollY ?? 0,
report.scrollX ?? 0,
]);
}
}

View file

@ -70,17 +70,23 @@ export class WebCodecsVideoDecoder implements ScrcpyVideoDecoder {
* Enable this option may reduce performance.
* @param canvas Optional render target cavas element or offscreen canvas
*/
constructor(codec: ScrcpyVideoCodecId, enableCapture: boolean, canvas?: HTMLCanvasElement | OffscreenCanvas) {
constructor(
codec: ScrcpyVideoCodecId,
enableCapture: boolean,
canvas?: HTMLCanvasElement | OffscreenCanvas,
) {
this.#codec = codec;
if (canvas) {
this.#canvas = canvas
} else if (typeof document !== 'undefined') {
this.#canvas = canvas;
} else if (typeof document !== "undefined") {
this.#canvas = document.createElement("canvas");
} else if (typeof OffscreenCanvas !== 'undefined') {
} else if (typeof OffscreenCanvas !== "undefined") {
this.#canvas = new OffscreenCanvas(0, 0);
} else {
throw new Error('no canvas input found nor any canvas can be created');
throw new Error(
"no canvas input found nor any canvas can be created",
);
}
try {

View file

@ -33,7 +33,10 @@ export class WebGLFrameRenderer implements FrameRenderer {
* Whether to allow capturing the canvas content using APIs like `readPixels` and `toDataURL`.
* Enable this option may reduce performance.
*/
constructor(canvas: HTMLCanvasElement | OffscreenCanvas, enableCapture: boolean) {
constructor(
canvas: HTMLCanvasElement | OffscreenCanvas,
enableCapture: boolean,
) {
const gl =
canvas.getContext("webgl2", {
alpha: false,

View file

@ -169,6 +169,7 @@ export class BufferLikeFieldValue<
> extends StructFieldValue<TDefinition> {
protected array: Uint8Array | undefined;
// eslint-disable-next-line max-params
constructor(
definition: TDefinition,
options: Readonly<StructOptions>,

View file

@ -81,6 +81,7 @@ export class VariableLengthBufferLikeStructFieldValue<
protected lengthFieldValue: VariableLengthBufferLikeFieldLengthValue;
// eslint-disable-next-line max-params
constructor(
definition: TDefinition,
options: Readonly<StructOptions>,

View file

@ -25,6 +25,12 @@ export default tslint.config(
maxBOF: 0,
},
],
"max-params": [
"error",
{
max: 4,
},
],
},
},
...tslint.configs.recommendedTypeChecked,