summaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
Diffstat (limited to 'std')
-rw-r--r--std/_util/deep_assign.ts23
-rw-r--r--std/encoding/_yaml/dumper/dumper.ts9
-rw-r--r--std/encoding/_yaml/example/sample_document.ts3
-rw-r--r--std/encoding/_yaml/loader/loader.ts2
-rw-r--r--std/encoding/_yaml/loader/loader_state.ts3
-rw-r--r--std/encoding/_yaml/stringify.ts5
-rw-r--r--std/encoding/_yaml/type.ts4
-rw-r--r--std/encoding/_yaml/utils.ts2
-rw-r--r--std/encoding/toml.ts20
-rw-r--r--std/encoding/toml_test.ts4
-rw-r--r--std/examples/catj.ts13
-rw-r--r--std/fmt/printf.ts2
-rw-r--r--std/hash/_sha3/sha3.ts2
-rw-r--r--std/hash/sha3.ts1
-rw-r--r--std/hash/sha3_test.ts2
-rw-r--r--std/log/logger.ts34
-rw-r--r--std/log/mod.ts21
-rw-r--r--std/node/_fs/_fs_access.ts6
-rw-r--r--std/node/_fs/_fs_common.ts8
-rw-r--r--std/node/_fs/_fs_dir.ts6
-rw-r--r--std/node/_util/_util_promisify.ts6
-rw-r--r--std/node/_util/_util_promisify_test.ts24
-rw-r--r--std/node/buffer.ts8
-rw-r--r--std/node/events.ts68
-rw-r--r--std/node/events_test.ts2
-rw-r--r--std/node/process.ts1
-rw-r--r--std/node/querystring.ts3
-rw-r--r--std/testing/asserts_test.ts10
-rw-r--r--std/testing/bench.ts6
-rw-r--r--std/testing/bench_test.ts8
30 files changed, 187 insertions, 119 deletions
diff --git a/std/_util/deep_assign.ts b/std/_util/deep_assign.ts
index ca1f0aba1..43606daa3 100644
--- a/std/_util/deep_assign.ts
+++ b/std/_util/deep_assign.ts
@@ -1,16 +1,31 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { assert } from "../_util/assert.ts";
+export function deepAssign<T, U>(target: T, source: U): T & U;
+export function deepAssign<T, U, V>(
+ target: T,
+ source1: U,
+ source2: V,
+): T & U & V;
+export function deepAssign<T, U, V, W>(
+ target: T,
+ source1: U,
+ source2: V,
+ source3: W,
+): T & U & V & W;
export function deepAssign(
- target: Record<string, unknown>,
- ...sources: object[]
-): object | undefined {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ target: Record<string, any>,
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ ...sources: any[]
+): // eslint-disable-next-line @typescript-eslint/ban-types
+object | undefined {
for (let i = 0; i < sources.length; i++) {
const source = sources[i];
if (!source || typeof source !== `object`) {
return;
}
- Object.entries(source).forEach(([key, value]: [string, unknown]): void => {
+ Object.entries(source).forEach(([key, value]): void => {
if (value instanceof Date) {
target[key] = new Date(value);
return;
diff --git a/std/encoding/_yaml/dumper/dumper.ts b/std/encoding/_yaml/dumper/dumper.ts
index e1f1a142a..ec517ffb2 100644
--- a/std/encoding/_yaml/dumper/dumper.ts
+++ b/std/encoding/_yaml/dumper/dumper.ts
@@ -499,7 +499,9 @@ function writeScalar(
return `'${string.replace(/'/g, "''")}'`;
case STYLE_LITERAL:
return `|${blockHeader(string, state.indent)}${
- dropEndingNewline(indentString(string, indent))
+ dropEndingNewline(
+ indentString(string, indent),
+ )
}`;
case STYLE_FOLDED:
return `>${blockHeader(string, state.indent)}${
@@ -867,7 +869,10 @@ function inspectNode(
}
}
-function getDuplicateReferences(object: object, state: DumperState): void {
+function getDuplicateReferences(
+ object: Record<string, unknown>,
+ state: DumperState,
+): void {
const objects: Any[] = [],
duplicatesIndexes: number[] = [];
diff --git a/std/encoding/_yaml/example/sample_document.ts b/std/encoding/_yaml/example/sample_document.ts
index f66b3c417..8ef714d42 100644
--- a/std/encoding/_yaml/example/sample_document.ts
+++ b/std/encoding/_yaml/example/sample_document.ts
@@ -7,7 +7,8 @@ import { parse } from "../../yaml.ts";
const yml = Deno.readFileSync(`${Deno.cwd()}/example/sample_document.yml`);
const document = new TextDecoder().decode(yml);
- const obj = parse(document) as object;
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const obj = parse(document) as Record<string, any>;
console.log(obj);
let i = 0;
diff --git a/std/encoding/_yaml/loader/loader.ts b/std/encoding/_yaml/loader/loader.ts
index 216e315f2..18bab93f5 100644
--- a/std/encoding/_yaml/loader/loader.ts
+++ b/std/encoding/_yaml/loader/loader.ts
@@ -813,7 +813,7 @@ function readFlowCollection(state: LoaderState, nodeIndent: number): boolean {
valueNode,
);
} else if (isPair) {
- (result as Array<{}>).push(
+ (result as ArrayObject[]).push(
storeMappingPair(
state,
null,
diff --git a/std/encoding/_yaml/loader/loader_state.ts b/std/encoding/_yaml/loader/loader_state.ts
index 60a7ccabc..81edeb28d 100644
--- a/std/encoding/_yaml/loader/loader_state.ts
+++ b/std/encoding/_yaml/loader/loader_state.ts
@@ -22,7 +22,8 @@ export interface LoaderStateOptions {
onWarning?(this: null, e?: YAMLError): void;
}
-export type ResultType = [] | {} | string;
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export type ResultType = any[] | Record<string, any> | string;
export class LoaderState extends State {
public documents: Any[] = [];
diff --git a/std/encoding/_yaml/stringify.ts b/std/encoding/_yaml/stringify.ts
index 9b3b5a80e..ed7b82d84 100644
--- a/std/encoding/_yaml/stringify.ts
+++ b/std/encoding/_yaml/stringify.ts
@@ -13,6 +13,9 @@ export type DumpOptions = DumperStateOptions;
*
* You can disable exceptions by setting the skipInvalid option to true.
*/
-export function stringify(obj: object, options?: DumpOptions): string {
+export function stringify(
+ obj: Record<string, unknown>,
+ options?: DumpOptions,
+): string {
return dump(obj, options);
}
diff --git a/std/encoding/_yaml/type.ts b/std/encoding/_yaml/type.ts
index 18dee338c..89a91106b 100644
--- a/std/encoding/_yaml/type.ts
+++ b/std/encoding/_yaml/type.ts
@@ -17,7 +17,7 @@ interface TypeOptions {
resolve?: (data: Any) => boolean;
construct?: (data: string) => Any;
instanceOf?: Any;
- predicate?: (data: object) => boolean;
+ predicate?: (data: Record<string, unknown>) => boolean;
represent?: RepresentFn | ArrayObject<RepresentFn>;
defaultStyle?: StyleVariant;
styleAliases?: ArrayObject;
@@ -31,7 +31,7 @@ export class Type {
public tag: string;
public kind: KindType | null = null;
public instanceOf: Any;
- public predicate?: (data: object) => boolean;
+ public predicate?: (data: Record<string, unknown>) => boolean;
public represent?: RepresentFn | ArrayObject<RepresentFn>;
public defaultStyle?: StyleVariant;
public styleAliases?: ArrayObject;
diff --git a/std/encoding/_yaml/utils.ts b/std/encoding/_yaml/utils.ts
index e009ae3cf..3d4e48771 100644
--- a/std/encoding/_yaml/utils.ts
+++ b/std/encoding/_yaml/utils.ts
@@ -38,7 +38,7 @@ export function isUndefined(value: unknown): value is undefined {
return value === undefined;
}
-export function isObject(value: unknown): value is object {
+export function isObject(value: unknown): value is Record<string, unknown> {
return value !== null && typeof value === "object";
}
diff --git a/std/encoding/toml.ts b/std/encoding/toml.ts
index 121459dbf..212c14bdc 100644
--- a/std/encoding/toml.ts
+++ b/std/encoding/toml.ts
@@ -124,10 +124,14 @@ class Parser {
}
this.tomlLines = merged;
}
- _unflat(keys: string[], values: object = {}, cObj: object = {}): object {
+ _unflat(
+ keys: string[],
+ values: Record<string, unknown> | unknown[] = {},
+ cObj: Record<string, unknown> | unknown[] = {},
+ ): Record<string, unknown> {
const out: Record<string, unknown> = {};
if (keys.length === 0) {
- return cObj;
+ return cObj as Record<string, unknown>;
} else {
if (Object.keys(cObj).length === 0) {
cObj = values;
@@ -398,7 +402,7 @@ class Parser {
const shift = pathDeclaration.shift();
if (shift) {
k = shift.replace(/"/g, "");
- v = this._unflat(pathDeclaration, v as object);
+ v = this._unflat(pathDeclaration, v as Record<string, unknown>);
}
} else {
k = k.replace(/"/g, "");
@@ -411,7 +415,7 @@ class Parser {
}
}
}
- parse(): object {
+ parse(): Record<string, unknown> {
this._sanitize();
this._parseLines();
this._cleanOutput();
@@ -433,9 +437,9 @@ function joinKeys(keys: string[]): string {
class Dumper {
maxPad = 0;
- srcObject: object;
+ srcObject: Record<string, unknown>;
output: string[] = [];
- constructor(srcObjc: object) {
+ constructor(srcObjc: Record<string, unknown>) {
this.srcObject = srcObjc;
}
dump(): string[] {
@@ -592,11 +596,11 @@ class Dumper {
}
}
-export function stringify(srcObj: object): string {
+export function stringify(srcObj: Record<string, unknown>): string {
return new Dumper(srcObj).dump().join("\n");
}
-export function parse(tomlString: string): object {
+export function parse(tomlString: string): Record<string, unknown> {
// File is potentially using EOL CRLF
tomlString = tomlString.replace(/\r\n/g, "\n").replace(/\\\n/g, "\n");
return new Parser(tomlString).parse();
diff --git a/std/encoding/toml_test.ts b/std/encoding/toml_test.ts
index 565fe1eeb..9b5e1a56b 100644
--- a/std/encoding/toml_test.ts
+++ b/std/encoding/toml_test.ts
@@ -6,7 +6,7 @@ import { parse, stringify } from "./toml.ts";
const testFilesDir = path.resolve("encoding", "testdata");
-function parseFile(filePath: string): object {
+function parseFile(filePath: string): Record<string, unknown> {
if (!existsSync(filePath)) {
throw new Error(`File not found: ${filePath}`);
}
@@ -254,7 +254,6 @@ Deno.test({
Deno.test({
name: "[TOML] Cargo",
fn(): void {
- /* eslint-disable @typescript-eslint/camelcase */
const expected = {
workspace: { members: ["./", "core"] },
bin: [{ name: "deno", path: "cli/main.rs" }],
@@ -291,7 +290,6 @@ Deno.test({
},
target: { "cfg(windows)": { dependencies: { winapi: "0.3.6" } } },
};
- /* eslint-enable @typescript-eslint/camelcase */
const actual = parseFile(path.join(testFilesDir, "cargo.toml"));
assertEquals(actual, expected);
},
diff --git a/std/examples/catj.ts b/std/examples/catj.ts
index 6013a8ac6..513ae5235 100644
--- a/std/examples/catj.ts
+++ b/std/examples/catj.ts
@@ -13,14 +13,16 @@ import * as colors from "../fmt/colors.ts";
const decoder = new TextDecoder();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
-function isObject(arg: any): arg is object {
+function isObject(arg: any): arg is Record<string, unknown> {
return !!arg && arg.constructor === Object;
}
function isValidIdentifier(value: string): boolean {
// eslint-disable-next-line max-len
return /^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|null|this|true|void|with|break|catch|class|const|false|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[\x24A-Z\x5Fa-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC][\x240-9A-Z\x5Fa-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]*$/
- .test(value);
+ .test(
+ value,
+ );
}
function printValue(value: unknown, path: string): void {
@@ -35,8 +37,7 @@ function printValue(value: unknown, path: string): void {
console.log(path + " = " + value);
}
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-function printObject(obj: { [key: string]: any }, path: string): void {
+function printObject(obj: Record<string, unknown>, path: string): void {
for (const key of Object.keys(obj)) {
const value = obj[key];
let nodePath = path + colors.cyan(".") + key;
@@ -64,7 +65,7 @@ function printArray(array: unknown[], path: string): void {
if (Array.isArray(value)) {
printArray(value, nodePath);
} else if (isObject(value)) {
- printObject(value as object, nodePath);
+ printObject(value, nodePath);
} else {
printValue(value, nodePath);
}
@@ -72,7 +73,7 @@ function printArray(array: unknown[], path: string): void {
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
-function print(data: any): void {
+function print(data: any[] | Record<string, unknown>): void {
if (Array.isArray(data)) {
printArray(data, "");
} else {
diff --git a/std/fmt/printf.ts b/std/fmt/printf.ts
index 36b6dddb0..2fb8acc0b 100644
--- a/std/fmt/printf.ts
+++ b/std/fmt/printf.ts
@@ -659,7 +659,7 @@ class Printf {
}
}
- fmtV(val: object): string {
+ fmtV(val: Record<string, unknown>): string {
if (this.flags.sharp) {
const options = this.flags.precision !== -1
? { depth: this.flags.precision }
diff --git a/std/hash/_sha3/sha3.ts b/std/hash/_sha3/sha3.ts
index 393889210..05b9d82e3 100644
--- a/std/hash/_sha3/sha3.ts
+++ b/std/hash/_sha3/sha3.ts
@@ -3,8 +3,6 @@
import { Sponge } from "./sponge.ts";
import { keccakf } from "./keccakf.ts";
-/* eslint-disable @typescript-eslint/camelcase, @typescript-eslint/class-name-casing */
-
/** Sha3-224 hash */
export class Sha3_224 extends Sponge {
constructor() {
diff --git a/std/hash/sha3.ts b/std/hash/sha3.ts
index b5154fbdf..33ae4a8d0 100644
--- a/std/hash/sha3.ts
+++ b/std/hash/sha3.ts
@@ -1,6 +1,5 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-/* eslint-disable-next-line @typescript-eslint/camelcase */
export { Sha3_224, Sha3_256, Sha3_384, Sha3_512 } from "./_sha3/sha3.ts";
export { Keccak224, Keccak256, Keccak384, Keccak512 } from "./_sha3/keccak.ts";
export { Shake128, Shake256 } from "./_sha3/shake.ts";
diff --git a/std/hash/sha3_test.ts b/std/hash/sha3_test.ts
index b5936f960..4ff0ec63e 100644
--- a/std/hash/sha3_test.ts
+++ b/std/hash/sha3_test.ts
@@ -1,5 +1,5 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-/* eslint-disable @typescript-eslint/camelcase */
+
import { assertEquals, assertThrows } from "../testing/asserts.ts";
import {
Keccak224,
diff --git a/std/log/logger.ts b/std/log/logger.ts
index d1e1d9755..c00ab78ec 100644
--- a/std/log/logger.ts
+++ b/std/log/logger.ts
@@ -1,12 +1,11 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import {
- LogLevels,
- getLevelByName,
- getLevelName,
-} from "./levels.ts";
+import { LogLevels, getLevelByName, getLevelName } from "./levels.ts";
import type { LevelName } from "./levels.ts";
import type { BaseHandler } from "./handlers.ts";
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export type GenericFunction = (...args: any[]) => any;
+
export interface LogRecordOptions {
msg: string;
args: unknown[];
@@ -91,7 +90,7 @@ export class Logger {
*/
private _log<T>(
level: number,
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
if (this.level > level) {
@@ -139,45 +138,48 @@ export class Logger {
}
debug<T>(msg: () => T, ...args: unknown[]): T | undefined;
- debug<T>(msg: T extends Function ? never : T, ...args: unknown[]): T;
+ debug<T>(msg: T extends GenericFunction ? never : T, ...args: unknown[]): T;
debug<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
return this._log(LogLevels.DEBUG, msg, ...args);
}
info<T>(msg: () => T, ...args: unknown[]): T | undefined;
- info<T>(msg: T extends Function ? never : T, ...args: unknown[]): T;
+ info<T>(msg: T extends GenericFunction ? never : T, ...args: unknown[]): T;
info<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
return this._log(LogLevels.INFO, msg, ...args);
}
warning<T>(msg: () => T, ...args: unknown[]): T | undefined;
- warning<T>(msg: T extends Function ? never : T, ...args: unknown[]): T;
+ warning<T>(msg: T extends GenericFunction ? never : T, ...args: unknown[]): T;
warning<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
return this._log(LogLevels.WARNING, msg, ...args);
}
error<T>(msg: () => T, ...args: unknown[]): T | undefined;
- error<T>(msg: T extends Function ? never : T, ...args: unknown[]): T;
+ error<T>(msg: T extends GenericFunction ? never : T, ...args: unknown[]): T;
error<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
return this._log(LogLevels.ERROR, msg, ...args);
}
critical<T>(msg: () => T, ...args: unknown[]): T | undefined;
- critical<T>(msg: T extends Function ? never : T, ...args: unknown[]): T;
critical<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: T extends GenericFunction ? never : T,
+ ...args: unknown[]
+ ): T;
+ critical<T>(
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
return this._log(LogLevels.CRITICAL, msg, ...args);
diff --git a/std/log/mod.ts b/std/log/mod.ts
index 10feb04b1..512de534b 100644
--- a/std/log/mod.ts
+++ b/std/log/mod.ts
@@ -1,5 +1,6 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { Logger } from "./logger.ts";
+import type { GenericFunction } from "./logger.ts";
import {
BaseHandler,
ConsoleHandler,
@@ -76,11 +77,11 @@ export function getLogger(name?: string): Logger {
export function debug<T>(msg: () => T, ...args: unknown[]): T | undefined;
export function debug<T>(
- msg: T extends Function ? never : T,
+ msg: T extends GenericFunction ? never : T,
...args: unknown[]
): T;
export function debug<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
// Assist TS compiler with pass-through generic type
@@ -92,11 +93,11 @@ export function debug<T>(
export function info<T>(msg: () => T, ...args: unknown[]): T | undefined;
export function info<T>(
- msg: T extends Function ? never : T,
+ msg: T extends GenericFunction ? never : T,
...args: unknown[]
): T;
export function info<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
// Assist TS compiler with pass-through generic type
@@ -108,11 +109,11 @@ export function info<T>(
export function warning<T>(msg: () => T, ...args: unknown[]): T | undefined;
export function warning<T>(
- msg: T extends Function ? never : T,
+ msg: T extends GenericFunction ? never : T,
...args: unknown[]
): T;
export function warning<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
// Assist TS compiler with pass-through generic type
@@ -124,11 +125,11 @@ export function warning<T>(
export function error<T>(msg: () => T, ...args: unknown[]): T | undefined;
export function error<T>(
- msg: T extends Function ? never : T,
+ msg: T extends GenericFunction ? never : T,
...args: unknown[]
): T;
export function error<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
// Assist TS compiler with pass-through generic type
@@ -140,11 +141,11 @@ export function error<T>(
export function critical<T>(msg: () => T, ...args: unknown[]): T | undefined;
export function critical<T>(
- msg: T extends Function ? never : T,
+ msg: T extends GenericFunction ? never : T,
...args: unknown[]
): T;
export function critical<T>(
- msg: (T extends Function ? never : T) | (() => T),
+ msg: (T extends GenericFunction ? never : T) | (() => T),
...args: unknown[]
): T | undefined {
// Assist TS compiler with pass-through generic type
diff --git a/std/node/_fs/_fs_access.ts b/std/node/_fs/_fs_access.ts
index df84eac9c..8fb8cc7e6 100644
--- a/std/node/_fs/_fs_access.ts
+++ b/std/node/_fs/_fs_access.ts
@@ -8,9 +8,9 @@ import { notImplemented } from "../_utils.ts";
//TODO - 'path' can also be a Buffer. Neither of these polyfills
//is available yet. See https://github.com/denoland/deno/issues/3403
export function access(
- path: string | URL, // eslint-disable-line @typescript-eslint/no-unused-vars
- modeOrCallback: number | Function, // eslint-disable-line @typescript-eslint/no-unused-vars
- callback?: CallbackWithError, // eslint-disable-line @typescript-eslint/no-unused-vars
+ _path: string | URL,
+ _modeOrCallback: number | ((...args: unknown[]) => void),
+ _callback?: CallbackWithError,
): void {
notImplemented("Not yet available");
}
diff --git a/std/node/_fs/_fs_common.ts b/std/node/_fs/_fs_common.ts
index 165b9aeca..5d3f02a5d 100644
--- a/std/node/_fs/_fs_common.ts
+++ b/std/node/_fs/_fs_common.ts
@@ -47,7 +47,13 @@ export function isFileOptions(
}
export function getEncoding(
- optOrCallback?: FileOptions | WriteFileOptions | Function | Encodings | null,
+ optOrCallback?:
+ | FileOptions
+ | WriteFileOptions
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ | ((...args: any[]) => any)
+ | Encodings
+ | null,
): Encodings | null {
if (!optOrCallback || typeof optOrCallback === "function") {
return null;
diff --git a/std/node/_fs/_fs_dir.ts b/std/node/_fs/_fs_dir.ts
index 7f2085b3b..20239d4f3 100644
--- a/std/node/_fs/_fs_dir.ts
+++ b/std/node/_fs/_fs_dir.ts
@@ -17,7 +17,8 @@ export default class Dir {
return this.dirPath;
}
- read(callback?: Function): Promise<Dirent | null> {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ read(callback?: (...args: any[]) => void): Promise<Dirent | null> {
return new Promise((resolve, reject) => {
if (!this.asyncIterator) {
this.asyncIterator = Deno.readDir(this.path)[Symbol.asyncIterator]();
@@ -55,7 +56,8 @@ export default class Dir {
* directories, and therefore does not need to close directories when
* finished reading.
*/
- close(callback?: Function): Promise<void> {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ close(callback?: (...args: any[]) => void): Promise<void> {
return new Promise((resolve, reject) => {
try {
if (callback) {
diff --git a/std/node/_util/_util_promisify.ts b/std/node/_util/_util_promisify.ts
index 03ebeba04..6aeee8ecf 100644
--- a/std/node/_util/_util_promisify.ts
+++ b/std/node/_util/_util_promisify.ts
@@ -56,7 +56,11 @@ class NodeInvalidArgTypeError extends TypeError {
}
}
-export function promisify(original: Function): Function {
+export function promisify(
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ original: (...args: any[]) => void,
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+): (...args: any[]) => Promise<any> {
if (typeof original !== "function") {
throw new NodeInvalidArgTypeError("original", "Function", original);
}
diff --git a/std/node/_util/_util_promisify_test.ts b/std/node/_util/_util_promisify_test.ts
index 67ca6af58..6271a8581 100644
--- a/std/node/_util/_util_promisify_test.ts
+++ b/std/node/_util/_util_promisify_test.ts
@@ -29,6 +29,9 @@ import {
import { promisify } from "./_util_promisify.ts";
import * as fs from "../fs.ts";
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+type VoidFunction = (...args: any[]) => void;
+
const readFile = promisify(fs.readFile);
const customPromisifyArgs = Symbol.for("nodejs.util.promisify.customArgs");
@@ -87,7 +90,7 @@ Deno.test("Custom promisify args", async function testPromisifyCustomArgs() {
const firstValue = 5;
const secondValue = 17;
- function fn(callback: Function): void {
+ function fn(callback: VoidFunction): void {
callback(null, firstValue, secondValue);
}
@@ -101,7 +104,7 @@ Deno.test("Custom promisify args", async function testPromisifyCustomArgs() {
Deno.test(
"Multiple callback args without custom promisify args",
async function testPromisifyWithoutCustomArgs() {
- function fn(callback: Function): void {
+ function fn(callback: VoidFunction): void {
callback(null, "foo", "bar");
}
const value = await promisify(fn)();
@@ -112,7 +115,7 @@ Deno.test(
Deno.test(
"Undefined resolved value",
async function testPromisifyWithUndefinedResolvedValue() {
- function fn(callback: Function): void {
+ function fn(callback: VoidFunction): void {
callback(null);
}
const value = await promisify(fn)();
@@ -123,7 +126,7 @@ Deno.test(
Deno.test(
"Undefined resolved value II",
async function testPromisifyWithUndefinedResolvedValueII() {
- function fn(callback: Function): void {
+ function fn(callback: VoidFunction): void {
callback();
}
const value = await promisify(fn)();
@@ -134,7 +137,7 @@ Deno.test(
Deno.test(
"Resolved value: number",
async function testPromisifyWithNumberResolvedValue() {
- function fn(err: Error | null, val: number, callback: Function): void {
+ function fn(err: Error | null, val: number, callback: VoidFunction): void {
callback(err, val);
}
const value = await promisify(fn)(null, 42);
@@ -145,7 +148,7 @@ Deno.test(
Deno.test(
"Rejected value",
async function testPromisifyWithNumberRejectedValue() {
- function fn(err: Error | null, val: null, callback: Function): void {
+ function fn(err: Error | null, val: null, callback: VoidFunction): void {
callback(err, val);
}
await assertThrowsAsync(
@@ -157,9 +160,8 @@ Deno.test(
);
Deno.test("Rejected value", async function testPromisifyWithAsObjectMethod() {
- const o: { fn?: Function } = {};
- const fn = promisify(function (cb: Function): void {
- // @ts-expect-error TypeScript
+ const o: { fn?: VoidFunction } = {};
+ const fn = promisify(function (this: unknown, cb: VoidFunction): void {
cb(null, this === o);
});
@@ -177,7 +179,7 @@ Deno.test(
);
const stack = err.stack;
- const fn = promisify(function (cb: Function): void {
+ const fn = promisify(function (cb: VoidFunction): void {
cb(null);
cb(err);
});
@@ -203,7 +205,7 @@ Deno.test("Test error", async function testInvalidArguments() {
a: number,
b: number,
c: number,
- cb: Function,
+ cb: VoidFunction,
): void {
errToThrow = new Error(`${a}-${b}-${c}-${cb}`);
throw errToThrow;
diff --git a/std/node/buffer.ts b/std/node/buffer.ts
index 7656803d9..c88d7f8b7 100644
--- a/std/node/buffer.ts
+++ b/std/node/buffer.ts
@@ -94,7 +94,9 @@ export default class Buffer extends Uint8Array {
if (typeof fill === "string") {
encoding = checkEncoding(encoding);
if (
- typeof fill === "string" && fill.length === 1 && encoding === "utf8"
+ typeof fill === "string" &&
+ fill.length === 1 &&
+ encoding === "utf8"
) {
buf.fill(fill.charCodeAt(0));
} else bufFill = Buffer.from(fill, encoding);
@@ -221,7 +223,7 @@ export default class Buffer extends Uint8Array {
/**
* Returns true if obj is a Buffer, false otherwise.
*/
- static isBuffer(obj: object): obj is Buffer {
+ static isBuffer(obj: unknown): obj is Buffer {
return obj instanceof Buffer;
}
@@ -408,7 +410,7 @@ export default class Buffer extends Uint8Array {
* Returns a JSON representation of buf. JSON.stringify() implicitly calls
* this function when stringifying a Buffer instance.
*/
- toJSON(): object {
+ toJSON(): Record<string, unknown> {
return { type: "Buffer", data: Array.from(this) };
}
diff --git a/std/node/events.ts b/std/node/events.ts
index b267852aa..bc27731ca 100644
--- a/std/node/events.ts
+++ b/std/node/events.ts
@@ -24,8 +24,11 @@
import { validateIntegerRange } from "./util.ts";
import { assert } from "../_util/assert.ts";
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export type GenericFunction = (...args: any[]) => any;
+
export interface WrappedFunction extends Function {
- listener: Function;
+ listener: GenericFunction;
}
/**
@@ -35,7 +38,10 @@ export default class EventEmitter {
public static defaultMaxListeners = 10;
public static errorMonitor = Symbol("events.errorMonitor");
private maxListeners: number | undefined;
- private _events: Map<string | symbol, Array<Function | WrappedFunction>>;
+ private _events: Map<
+ string | symbol,
+ Array<GenericFunction | WrappedFunction>
+ >;
public constructor() {
this._events = new Map();
@@ -43,13 +49,13 @@ export default class EventEmitter {
private _addListener(
eventName: string | symbol,
- listener: Function | WrappedFunction,
+ listener: GenericFunction | WrappedFunction,
prepend: boolean,
): this {
this.emit("newListener", eventName, listener);
if (this._events.has(eventName)) {
const listeners = this._events.get(eventName) as Array<
- Function | WrappedFunction
+ GenericFunction | WrappedFunction
>;
if (prepend) {
listeners.unshift(listener);
@@ -76,7 +82,7 @@ export default class EventEmitter {
/** Alias for emitter.on(eventName, listener). */
public addListener(
eventName: string | symbol,
- listener: Function | WrappedFunction,
+ listener: GenericFunction | WrappedFunction,
): this {
return this._addListener(eventName, listener, false);
}
@@ -96,7 +102,9 @@ export default class EventEmitter {
) {
this.emit(EventEmitter.errorMonitor, ...args);
}
- const listeners = (this._events.get(eventName) as Function[]).slice(); // We copy with slice() so array is not mutated during emit
+ const listeners = (this._events.get(
+ eventName,
+ ) as GenericFunction[]).slice(); // We copy with slice() so array is not mutated during emit
for (const listener of listeners) {
try {
listener.apply(this, args);
@@ -138,7 +146,7 @@ export default class EventEmitter {
*/
public listenerCount(eventName: string | symbol): number {
if (this._events.has(eventName)) {
- return (this._events.get(eventName) as Function[]).length;
+ return (this._events.get(eventName) as GenericFunction[]).length;
} else {
return 0;
}
@@ -148,21 +156,19 @@ export default class EventEmitter {
target: EventEmitter,
eventName: string | symbol,
unwrap: boolean,
- ): Function[] {
+ ): GenericFunction[] {
if (!target._events.has(eventName)) {
return [];
}
- const eventListeners: Function[] = target._events.get(
- eventName,
- ) as Function[];
+ const eventListeners = target._events.get(eventName) as GenericFunction[];
return unwrap
? this.unwrapListeners(eventListeners)
: eventListeners.slice(0);
}
- private unwrapListeners(arr: Function[]): Function[] {
- const unwrappedListeners: Function[] = new Array(arr.length) as Function[];
+ private unwrapListeners(arr: GenericFunction[]): GenericFunction[] {
+ const unwrappedListeners = new Array(arr.length) as GenericFunction[];
for (let i = 0; i < arr.length; i++) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
unwrappedListeners[i] = (arr[i] as any)["listener"] || arr[i];
@@ -171,7 +177,7 @@ export default class EventEmitter {
}
/** Returns a copy of the array of listeners for the event named eventName.*/
- public listeners(eventName: string | symbol): Function[] {
+ public listeners(eventName: string | symbol): GenericFunction[] {
return this._listeners(this, eventName, true);
}
@@ -181,12 +187,12 @@ export default class EventEmitter {
*/
public rawListeners(
eventName: string | symbol,
- ): Array<Function | WrappedFunction> {
+ ): Array<GenericFunction | WrappedFunction> {
return this._listeners(this, eventName, false);
}
/** Alias for emitter.removeListener(). */
- public off(eventName: string | symbol, listener: Function): this {
+ public off(eventName: string | symbol, listener: GenericFunction): this {
return this.removeListener(eventName, listener);
}
@@ -199,7 +205,7 @@ export default class EventEmitter {
*/
public on(
eventName: string | symbol,
- listener: Function | WrappedFunction,
+ listener: GenericFunction | WrappedFunction,
): this {
return this.addListener(eventName, listener);
}
@@ -208,7 +214,7 @@ export default class EventEmitter {
* Adds a one-time listener function for the event named eventName. The next
* time eventName is triggered, this listener is removed and then invoked.
*/
- public once(eventName: string | symbol, listener: Function): this {
+ public once(eventName: string | symbol, listener: GenericFunction): this {
const wrapped: WrappedFunction = this.onceWrap(eventName, listener);
this.on(eventName, wrapped);
return this;
@@ -217,19 +223,22 @@ export default class EventEmitter {
// Wrapped function that calls EventEmitter.removeListener(eventName, self) on execution.
private onceWrap(
eventName: string | symbol,
- listener: Function,
+ listener: GenericFunction,
): WrappedFunction {
const wrapper = function (
this: {
eventName: string | symbol;
- listener: Function;
- rawListener: Function;
+ listener: GenericFunction;
+ rawListener: GenericFunction | WrappedFunction;
context: EventEmitter;
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
...args: any[]
): void {
- this.context.removeListener(this.eventName, this.rawListener);
+ this.context.removeListener(
+ this.eventName,
+ this.rawListener as GenericFunction,
+ );
this.listener.apply(this.context, args);
};
const wrapperContext = {
@@ -255,7 +264,7 @@ export default class EventEmitter {
*/
public prependListener(
eventName: string | symbol,
- listener: Function | WrappedFunction,
+ listener: GenericFunction | WrappedFunction,
): this {
return this._addListener(eventName, listener, true);
}
@@ -267,7 +276,7 @@ export default class EventEmitter {
*/
public prependOnceListener(
eventName: string | symbol,
- listener: Function,
+ listener: GenericFunction,
): this {
const wrapped: WrappedFunction = this.onceWrap(eventName, listener);
this.prependListener(eventName, wrapped);
@@ -283,7 +292,7 @@ export default class EventEmitter {
if (eventName) {
if (this._events.has(eventName)) {
const listeners = (this._events.get(eventName) as Array<
- Function | WrappedFunction
+ GenericFunction | WrappedFunction
>).slice(); // Create a copy; We use it AFTER it's deleted.
this._events.delete(eventName);
for (const listener of listeners) {
@@ -304,10 +313,13 @@ export default class EventEmitter {
* Removes the specified listener from the listener array for the event
* named eventName.
*/
- public removeListener(eventName: string | symbol, listener: Function): this {
+ public removeListener(
+ eventName: string | symbol,
+ listener: GenericFunction,
+ ): this {
if (this._events.has(eventName)) {
const arr:
- | Array<Function | WrappedFunction>
+ | Array<GenericFunction | WrappedFunction>
| undefined = this._events.get(eventName);
assert(arr);
@@ -382,7 +394,7 @@ export function once(
}
resolve(args);
};
- let errorListener: Function;
+ let errorListener: GenericFunction;
// Adding an error listener is not optional because
// if an error is thrown on an event emitter we cannot
diff --git a/std/node/events_test.ts b/std/node/events_test.ts
index 62b20594c..adeae5b93 100644
--- a/std/node/events_test.ts
+++ b/std/node/events_test.ts
@@ -6,7 +6,7 @@ import {
} from "../testing/asserts.ts";
import EventEmitter, { WrappedFunction, once, on } from "./events.ts";
-const shouldNeverBeEmitted: Function = () => {
+const shouldNeverBeEmitted = () => {
fail("Should never be called");
};
diff --git a/std/node/process.ts b/std/node/process.ts
index ce5f828c0..a05a423fd 100644
--- a/std/node/process.ts
+++ b/std/node/process.ts
@@ -42,6 +42,7 @@ export const process = {
/** https://nodejs.org/api/process.html#process_process_events */
// on is not exported by node, it is only available within process:
// node --input-type=module -e "import { on } from 'process'; console.log(on)"
+ // eslint-disable-next-line @typescript-eslint/ban-types
on(_event: string, _callback: Function): void {
// TODO(rsp): to be implemented
notImplemented();
diff --git a/std/node/querystring.ts b/std/node/querystring.ts
index 4e3c728c1..35dfbbc86 100644
--- a/std/node/querystring.ts
+++ b/std/node/querystring.ts
@@ -107,7 +107,8 @@ export function encodeStr(
}
export function stringify(
- obj: object,
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ obj: Record<string, any>,
sep = "&",
eq = "=",
{ encodeURIComponent = escape }: StringifyOptions = {},
diff --git a/std/testing/asserts_test.ts b/std/testing/asserts_test.ts
index 65645b06b..13dba756d 100644
--- a/std/testing/asserts_test.ts
+++ b/std/testing/asserts_test.ts
@@ -301,7 +301,9 @@ const createHeader = (): string[] => [
"",
"",
` ${gray(bold("[Diff]"))} ${red(bold("Actual"))} / ${
- green(bold("Expected"))
+ green(
+ bold("Expected"),
+ )
}`,
"",
"",
@@ -484,10 +486,7 @@ Deno.test({
Deno.test({
name: "strictly unequal fail case",
fn(): void {
- assertThrows(
- () => assertNotStrictEquals(1, 1),
- AssertionError,
- );
+ assertThrows(() => assertNotStrictEquals(1, 1), AssertionError);
},
});
@@ -499,6 +498,7 @@ Deno.test({
assertArrayContains<boolean>([true, false], [true]);
const value = { x: 1 };
assertStrictEquals<typeof value>(value, value);
+ // eslint-disable-next-line @typescript-eslint/ban-types
assertNotStrictEquals<object>(value, { x: 1 });
},
});
diff --git a/std/testing/bench.ts b/std/testing/bench.ts
index b8bf40a9b..e1d3c86c9 100644
--- a/std/testing/bench.ts
+++ b/std/testing/bench.ts
@@ -1,4 +1,5 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+import { assert } from "../_util/assert.ts";
import { deepAssign } from "../_util/deep_assign.ts";
interface BenchmarkClock {
@@ -70,11 +71,11 @@ export interface BenchmarkRunResult {
/** Defines the current progress during the run of `runBenchmarks` */
export interface BenchmarkRunProgress extends BenchmarkRunResult {
/** List of the queued benchmarks to run with their name and their run count */
- queued: Array<{ name: string; runsCount: number }>;
+ queued?: Array<{ name: string; runsCount: number }>;
/** The currently running benchmark with its name, run count and the already finished measurements in milliseconds */
running?: { name: string; runsCount: number; measuredRunsMs: number[] };
/** Indicates in which state benchmarking currently is */
- state: ProgressState;
+ state?: ProgressState;
}
/** Defines the states `BenchmarkRunProgress` can be in */
@@ -232,6 +233,7 @@ export async function runBenchmarks(
clock.for = name;
// Remove benchmark from queued
+ assert(progress.queued);
const queueIndex = progress.queued.findIndex(
(queued) => queued.name === name && queued.runsCount === runs,
);
diff --git a/std/testing/bench_test.ts b/std/testing/bench_test.ts
index 97a923ac2..e4eada453 100644
--- a/std/testing/bench_test.ts
+++ b/std/testing/bench_test.ts
@@ -255,6 +255,7 @@ Deno.test({
let pc = 0;
// Assert initial progress before running
let progress = progressCallbacks[pc++];
+ assert(progress.queued);
assertEquals(progress.state, ProgressState.BenchmarkingStart);
assertEquals(progress.filtered, 1);
assertEquals(progress.queued.length, 2);
@@ -265,6 +266,7 @@ Deno.test({
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchStart);
assertEquals(progress.filtered, 1);
+ assert(progress.queued);
assertEquals(progress.queued.length, 1);
assert(!!progress.queued.find(({ name }) => name == "multiple"));
assertEquals(progress.running, {
@@ -277,6 +279,7 @@ Deno.test({
// Assert running result of bench "single"
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchPartialResult);
+ assert(progress.queued);
assertEquals(progress.queued.length, 1);
assertEquals(progress.running!.measuredRunsMs.length, 1);
assertEquals(progress.results.length, 0);
@@ -284,6 +287,7 @@ Deno.test({
// Assert result of bench "single"
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchResult);
+ assert(progress.queued);
assertEquals(progress.queued.length, 1);
assertEquals(progress.running, undefined);
assertEquals(progress.results.length, 1);
@@ -292,6 +296,7 @@ Deno.test({
// Assert start of bench "multiple"
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchStart);
+ assert(progress.queued);
assertEquals(progress.queued.length, 0);
assertEquals(progress.running, {
name: "multiple",
@@ -303,6 +308,7 @@ Deno.test({
// Assert first result of bench "multiple"
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchPartialResult);
+ assert(progress.queued);
assertEquals(progress.queued.length, 0);
assertEquals(progress.running!.measuredRunsMs.length, 1);
assertEquals(progress.results.length, 1);
@@ -310,6 +316,7 @@ Deno.test({
// Assert second result of bench "multiple"
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchPartialResult);
+ assert(progress.queued);
assertEquals(progress.queued.length, 0);
assertEquals(progress.running!.measuredRunsMs.length, 2);
assertEquals(progress.results.length, 1);
@@ -317,6 +324,7 @@ Deno.test({
// Assert finish of bench "multiple"
progress = progressCallbacks[pc++];
assertEquals(progress.state, ProgressState.BenchResult);
+ assert(progress.queued);
assertEquals(progress.queued.length, 0);
assertEquals(progress.running, undefined);
assertEquals(progress.results.length, 2);