mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-01 07:33:12 +08:00
Without @types/node, every program loaded scriptc-node-fallback.d.ts whole: the console and process globals and 47 Node modules, about 8,100 lines, parsed, bound and checked in every cold build whether or not the program imported them. - The fallback file keeps the globals and the modules they name (console, readline, readline/promises, perf_hooks, tty). Every other module, under both spellings, has its own file in ambient/node-fallback/, which references the files of the modules its declarations name. - A module's file joins the program when one of the program's files names the module in a string literal: imports, requires, import types and JSDoc types all name modules that way. The entry is read before the first program; the program-root discovery passes add modules that other files name. Files are read as tsgo reads them, and the TypeScript libraries and scriptc's own declarations are skipped. - The checks that recognized the fallback file by its path recognize every fallback file.
87 lines
3.2 KiB
TypeScript
87 lines
3.2 KiB
TypeScript
/// <reference path="./assert-strict.d.ts" />
|
|
|
|
declare module "assert" {
|
|
function assert(value: unknown, message?: string): void;
|
|
namespace assert {
|
|
interface AssertionErrorOptions {
|
|
message?: string | undefined;
|
|
actual?: unknown;
|
|
expected?: unknown;
|
|
operator?: string | undefined;
|
|
stackStartFn?: Function | undefined;
|
|
diff?: "simple" | "full" | undefined;
|
|
}
|
|
class AssertionError extends Error {
|
|
constructor(options: AssertionErrorOptions);
|
|
actual: unknown;
|
|
expected: unknown;
|
|
generatedMessage: boolean;
|
|
code: "ERR_ASSERTION";
|
|
operator: string;
|
|
}
|
|
function ok(value: unknown, message?: string): void;
|
|
function strictEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function notStrictEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function deepStrictEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function equal(actual: unknown, expected: unknown, message?: string): void;
|
|
function notEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function deepEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function notDeepEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
function fail(message?: string): never;
|
|
function throws(fn: () => unknown, expected?: unknown, message?: string): void;
|
|
function doesNotThrow(fn: () => unknown, expected?: unknown, message?: string): void;
|
|
function rejects(
|
|
fn: (() => Promise<unknown>) | Promise<unknown>,
|
|
expected?: unknown,
|
|
message?: string,
|
|
): Promise<void>;
|
|
function doesNotReject(
|
|
fn: (() => Promise<unknown>) | Promise<unknown>,
|
|
expected?: unknown,
|
|
message?: string,
|
|
): Promise<void>;
|
|
function match(value: string, regExp: RegExp, message?: string): void;
|
|
function doesNotMatch(value: string, regExp: RegExp, message?: string): void;
|
|
function ifError(value: unknown): void;
|
|
const strict: typeof import("assert/strict");
|
|
interface AssertOptions {
|
|
diff?: "simple" | "full" | undefined;
|
|
strict?: boolean | undefined;
|
|
skipPrototype?: boolean | undefined;
|
|
}
|
|
type AssertMethodNames =
|
|
| "deepEqual"
|
|
| "deepStrictEqual"
|
|
| "doesNotMatch"
|
|
| "doesNotReject"
|
|
| "doesNotThrow"
|
|
| "equal"
|
|
| "fail"
|
|
| "ifError"
|
|
| "match"
|
|
| "notDeepEqual"
|
|
| "notDeepStrictEqual"
|
|
| "notEqual"
|
|
| "notStrictEqual"
|
|
| "ok"
|
|
| "partialDeepStrictEqual"
|
|
| "rejects"
|
|
| "strictEqual"
|
|
| "throws";
|
|
interface Assert extends Pick<typeof assert, AssertMethodNames> {}
|
|
interface AssertStrict extends Pick<typeof strict, AssertMethodNames> {}
|
|
const Assert: {
|
|
new (options?: AssertOptions & { strict?: true | undefined }): AssertStrict;
|
|
new (options: AssertOptions): Assert;
|
|
};
|
|
}
|
|
export = assert;
|
|
}
|
|
|
|
declare module "node:assert" {
|
|
import assert = require("assert");
|
|
export = assert;
|
|
}
|