summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/dts/lib.deno.unstable.d.ts71
1 files changed, 41 insertions, 30 deletions
diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts
index 643386ced..ab6f8634f 100644
--- a/cli/dts/lib.deno.unstable.d.ts
+++ b/cli/dts/lib.deno.unstable.d.ts
@@ -362,49 +362,60 @@ declare namespace Deno {
export type NativeResultType = NativeType | NativeVoidType;
+ type ToNativeTypeMap =
+ & Record<NativeNumberType, number>
+ & Record<NativeBigIntType, bigint | number>
+ & Record<NativePointerType, TypedArray | bigint | null>
+ & Record<NativeFunctionType, bigint | null>;
+
/** Type conversion for foreign symbol parameters and unsafe callback return types */
- type ToNativeType<T extends NativeType = NativeType> = T extends
- NativeNumberType ? number
- : T extends NativeBigIntType ? bigint | number
- : T extends NativePointerType ? TypedArray | bigint | null
- : T extends NativeFunctionType ? bigint | null
- : never;
+ type ToNativeType<T extends NativeType = NativeType> = ToNativeTypeMap[T];
+
+ type ToNativeResultTypeMap = ToNativeTypeMap & Record<NativeVoidType, void>;
/** Type conversion for unsafe callback return types */
type ToNativeResultType<T extends NativeResultType = NativeResultType> =
- T extends NativeType ? ToNativeType<T>
- : T extends NativeVoidType ? void
+ ToNativeResultTypeMap[T];
+
+ type ToNativeParameterTypes<T extends readonly NativeType[]> =
+ //
+ [(T[number])[]] extends [T] ? ToNativeType<T[number]>[]
+ : [readonly (T[number])[]] extends [T]
+ ? readonly ToNativeType<T[number]>[]
+ : T extends readonly [...NativeType[]] ? {
+ [K in keyof T]: ToNativeType<T[K]>;
+ }
: never;
- type ToNativeParameterTypes<T extends readonly NativeType[]> = T extends
- readonly [] ? []
- : T extends readonly [
- infer U extends NativeType,
- ...(infer V extends NativeType[]),
- ] ? [ToNativeType<U>, ...ToNativeParameterTypes<V>]
- : never;
+ type FromNativeTypeMap =
+ & Record<NativeNumberType, number>
+ & Record<NativeBigIntType, bigint>
+ & Record<NativePointerType, bigint>
+ & Record<NativeFunctionType, bigint>;
/** Type conversion for foreign symbol return types and unsafe callback parameters */
- type FromNativeType<T extends NativeType = NativeType> = T extends
- NativeNumberType ? number
- : T extends NativeBigIntType | NativePointerType | NativeFunctionType
- ? bigint
- : never;
+ type FromNativeType<T extends NativeType = NativeType> = FromNativeTypeMap[T];
+
+ type FromNativeResultTypeMap =
+ & FromNativeTypeMap
+ & Record<NativeVoidType, void>;
/** Type conversion for foregin symbol return types */
type FromNativeResultType<T extends NativeResultType = NativeResultType> =
- T extends NativeType ? FromNativeType<T>
- : T extends NativeVoidType ? void
+ FromNativeResultTypeMap[T];
+
+ type FromNativeParameterTypes<
+ T extends readonly NativeType[],
+ > =
+ //
+ [(T[number])[]] extends [T] ? FromNativeType<T[number]>[]
+ : [readonly (T[number])[]] extends [T]
+ ? readonly FromNativeType<T[number]>[]
+ : T extends readonly [...NativeType[]] ? {
+ [K in keyof T]: FromNativeType<T[K]>;
+ }
: never;
- type FromNativeParameterTypes<T extends readonly NativeType[]> = T extends
- readonly [] ? []
- : T extends readonly [
- infer U extends NativeType,
- ...(infer V extends NativeType[]),
- ] ? [FromNativeType<U>, ...FromNativeParameterTypes<V>]
- : never;
-
/** A foreign function as defined by its parameter and result types */
export interface ForeignFunction<
Parameters extends readonly NativeType[] = readonly NativeType[],