Skip to content

Commit

Permalink
typings: improve internal bindings typings
Browse files Browse the repository at this point in the history
PR-URL: #40411
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Mesteery authored and BethGriggs committed Nov 25, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent eea061f commit fbe0323
Showing 11 changed files with 501 additions and 442 deletions.
13 changes: 12 additions & 1 deletion typings/globals.d.ts
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
declare type TypedArray = Uint16Array | Uint32Array | Uint8Array | Uint8ClampedArray | Int16Array | Int32Array | Int8Array | BigInt64Array | Float32Array | Float64Array | BigUint64Array;
declare type TypedArray =
| Uint8Array
| Uint8ClampedArray
| Uint16Array
| Uint32Array
| Int8Array
| Int16Array
| Int32Array
| Float32Array
| Float64Array
| BigUint64Array
| BigInt64Array;
22 changes: 11 additions & 11 deletions typings/internalBinding/config.d.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
declare function InternalBinding(binding: 'config'): {
isDebugBuild: boolean,
hasOpenSSL: boolean,
fipsMode: boolean,
hasIntl: boolean,
hasTracing: boolean,
hasNodeOptions: boolean,
hasInspector: boolean,
noBrowserGlobals: boolean,
bits: number,
hasDtrace: boolean
}
isDebugBuild: boolean;
hasOpenSSL: boolean;
fipsMode: boolean;
hasIntl: boolean;
hasTracing: boolean;
hasNodeOptions: boolean;
hasInspector: boolean;
noBrowserGlobals: boolean;
bits: number;
hasDtrace: boolean;
};
784 changes: 392 additions & 392 deletions typings/internalBinding/constants.d.ts

Large diffs are not rendered by default.

20 changes: 17 additions & 3 deletions typings/internalBinding/fs.d.ts
Original file line number Diff line number Diff line change
@@ -2,7 +2,20 @@ declare namespace InternalFSBinding {
class FSReqCallback<ResultType = unknown> {
constructor(bigint?: boolean);
oncomplete: ((error: Error) => void) | ((error: null, result: ResultType) => void);
context: any;
context: ReadFileContext;
}

interface ReadFileContext {
fd: number | undefined;
isUserFd: boolean | undefined;
size: number;
callback: (err?: Error, data?: string | Buffer) => unknown;
buffers: Buffer[];
buffer: Buffer;
pos: number;
encoding: string;
err: Error | null;
signal: unknown /* AbortSignal | undefined */;
}

interface FSSyncContext {
@@ -16,17 +29,18 @@ declare namespace InternalFSBinding {
}

type Buffer = Uint8Array;
type Stream = object;
type StringOrBuffer = string | Buffer;

const kUsePromises: symbol;
const kUsePromises: unique symbol;

class FileHandle {
constructor(fd: number, offset: number, length: number);
fd: number;
getAsyncId(): number;
close(): Promise<void>;
onread: () => void;
stream: unknown;
stream: Stream;
}

class StatWatcher {
5 changes: 4 additions & 1 deletion typings/internalBinding/http_parser.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
declare namespace InternalHttpParserBinding {
type Buffer = Uint8Array;
type Stream = object;

class HTTPParser {
static REQUEST: 1;
static RESPONSE: 2;
@@ -30,7 +33,7 @@ declare namespace InternalHttpParserBinding {
): void;
pause(): void;
resume(): void;
consume(stream: object): void;
consume(stream: Stream): void;
unconsume(): void;
getCurrentBuffer(): Buffer;
}
18 changes: 11 additions & 7 deletions typings/internalBinding/os.d.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
declare namespace InternalOSBinding {
type OSContext = {};
}

declare function InternalBinding(binding: 'os'): {
getHostname(ctx: {}): string | undefined;
getHostname(ctx: InternalOSBinding.OSContext): string | undefined;
getLoadAvg(array: Float64Array): void;
getUptime(): number;
getTotalMem(): number;
getFreeMem(): number;
getCPUs(): Array<string | number>;
getInterfaceAddresses(ctx: {}): Array<string | number | boolean> | undefined;
getHomeDirectory(ctx: {}): string | undefined;
getUserInfo(options: { encoding?: string } | undefined, ctx: {}): {
getInterfaceAddresses(ctx: InternalOSBinding.OSContext): Array<string | number | boolean> | undefined;
getHomeDirectory(ctx: InternalOSBinding.OSContext): string | undefined;
getUserInfo(options: { encoding?: string } | undefined, ctx: InternalOSBinding.OSContext): {
uid: number;
gid: number;
username: string;
homedir: string;
shell: string | null;
} | undefined;
setPriority(pid: number, priority: number, ctx: {}): number;
getPriority(pid: number, ctx: {}): number | undefined;
getOSInformation(ctx: {}): [sysname: string, version: string, release: string];
setPriority(pid: number, priority: number, ctx: InternalOSBinding.OSContext): number;
getPriority(pid: number, ctx: InternalOSBinding.OSContext): number | undefined;
getOSInformation(ctx: InternalOSBinding.OSContext): [sysname: string, version: string, release: string];
isBigEndian: boolean;
};
2 changes: 2 additions & 0 deletions typings/internalBinding/serdes.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
declare namespace InternalSerdesBinding {
type Buffer = Uint8Array;

class Serializer {
_getDataCloneError: typeof Error;
constructor();
28 changes: 26 additions & 2 deletions typings/internalBinding/symbols.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
declare function InternalBinding(binding: 'symbols'): {
[name: string]: symbol;
declare namespace InternalSymbolsBinding {
const async_id_symbol: unique symbol;
const handle_onclose_symbol: unique symbol;
const no_message_symbol: unique symbol;
const messaging_deserialize_symbol: unique symbol;
const messaging_transfer_symbol: unique symbol;
const messaging_clone_symbol: unique symbol;
const messaging_transfer_list_symbol: unique symbol;
const oninit_symbol: unique symbol;
const owner_symbol: unique symbol;
const onpskexchange_symbol: unique symbol;
const trigger_async_id_symbol: unique symbol;
}

declare function InternalBinding(binding: 'symbols'): {
async_id_symbol: typeof InternalSymbolsBinding.async_id_symbol;
handle_onclose_symbol: typeof InternalSymbolsBinding.handle_onclose_symbol;
no_message_symbol: typeof InternalSymbolsBinding.no_message_symbol;
messaging_deserialize_symbol: typeof InternalSymbolsBinding.messaging_deserialize_symbol;
messaging_transfer_symbol: typeof InternalSymbolsBinding.messaging_transfer_symbol;
messaging_clone_symbol: typeof InternalSymbolsBinding.messaging_clone_symbol;
messaging_transfer_list_symbol: typeof InternalSymbolsBinding.messaging_transfer_list_symbol;
oninit_symbol: typeof InternalSymbolsBinding.oninit_symbol;
owner_symbol: typeof InternalSymbolsBinding.owner_symbol;
onpskexchange_symbol: typeof InternalSymbolsBinding.onpskexchange_symbol;
trigger_async_id_symbol: typeof InternalSymbolsBinding.trigger_async_id_symbol;
};
46 changes: 23 additions & 23 deletions typings/internalBinding/types.d.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
declare function InternalBinding(binding: 'types'): {
isAsyncFunction(value: unknown): value is (...args: unknown[]) => Promise<unknown>,
isGeneratorFunction(value: unknown): value is GeneratorFunction,
isAnyArrayBuffer(value: unknown): value is (ArrayBuffer | SharedArrayBuffer),
isArrayBuffer(value: unknown): value is ArrayBuffer,
isArgumentsObject(value: unknown): value is ArrayLike<unknown>,
isBoxedPrimitive(value: unknown): value is (BigInt | Boolean | Number | String | Symbol),
isDataView(value: unknown): value is DataView,
isExternal(value: unknown): value is Object,
isMap(value: unknown): value is Map<unknown, unknown>,
isMapIterator: (value: unknown) => value is IterableIterator<unknown>,
isModuleNamespaceObject: (value: unknown) => value is {[Symbol.toStringTag]: 'Module', [key: string]: any},
isNativeError: (value: unknown) => Error,
isPromise: (value: unknown) => value is Promise<unknown>,
isSet: (value: unknown) => value is Set<unknown>,
isSetIterator: (value: unknown) => value is IterableIterator<unknown>,
isWeakMap: (value: unknown) => value is WeakMap<object, unknown>,
isWeakSet: (value: unknown) => value is WeakSet<object>,
isRegExp: (value: unknown) => RegExp,
isDate: (value: unknown) => Date,
isTypedArray: (value: unknown) => value is TypedArray,
isStringObject: (value: unknown) => value is String,
isNumberObject: (value: unknown) => value is Number,
isAsyncFunction(value: unknown): value is (...args: unknown[]) => Promise<unknown>;
isGeneratorFunction(value: unknown): value is GeneratorFunction;
isAnyArrayBuffer(value: unknown): value is (ArrayBuffer | SharedArrayBuffer);
isArrayBuffer(value: unknown): value is ArrayBuffer;
isArgumentsObject(value: unknown): value is ArrayLike<unknown>;
isBoxedPrimitive(value: unknown): value is (BigInt | Boolean | Number | String | Symbol);
isDataView(value: unknown): value is DataView;
isExternal(value: unknown): value is Object;
isMap(value: unknown): value is Map<unknown, unknown>;
isMapIterator: (value: unknown) => value is IterableIterator<unknown>;
isModuleNamespaceObject: (value: unknown) => value is { [Symbol.toStringTag]: 'Module' };
isNativeError: (value: unknown) => Error;
isPromise: (value: unknown) => value is Promise<unknown>;
isSet: (value: unknown) => value is Set<unknown>;
isSetIterator: (value: unknown) => value is IterableIterator<unknown>;
isWeakMap: (value: unknown) => value is WeakMap<object, unknown>;
isWeakSet: (value: unknown) => value is WeakSet<object>;
isRegExp: (value: unknown) => RegExp;
isDate: (value: unknown) => Date;
isTypedArray: (value: unknown) => value is TypedArray;
isStringObject: (value: unknown) => value is String;
isNumberObject: (value: unknown) => value is Number;
isBooleanObject: (value: unknown) => value is Boolean,
isBigIntObject: (value: unknown) => value is BigInt,
isBigIntObject: (value: unknown) => value is BigInt;
};
2 changes: 1 addition & 1 deletion typings/internalBinding/util.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
declare namespace InternalUtilBinding {
class WeakReference<T extends object> {
class WeakReference<T> {
constructor(value: T);
get(): undefined | T;
incRef(): void;
3 changes: 2 additions & 1 deletion typings/internalBinding/worker.d.ts
Original file line number Diff line number Diff line change
@@ -5,7 +5,8 @@ declare namespace InternalWorkerBinding {
env: object | null | undefined,
execArgv: string[] | null | undefined,
resourceLimits: Float64Array,
trackUnmanagedFds: boolean);
trackUnmanagedFds: boolean,
);
startThread(): void;
stopThread(): void;
ref(): void;

0 comments on commit fbe0323

Please sign in to comment.