65 lines
2.5 KiB
TypeScript
65 lines
2.5 KiB
TypeScript
import type { InternalCopier } from './copier.ts';
|
|
import type { Cache } from './utils.ts';
|
|
export interface CopierMethods {
|
|
array?: InternalCopier<any[]>;
|
|
arrayBuffer?: InternalCopier<ArrayBuffer>;
|
|
asyncGenerator?: InternalCopier<AsyncGenerator>;
|
|
blob?: InternalCopier<Blob>;
|
|
dataView?: InternalCopier<DataView>;
|
|
date?: InternalCopier<Date>;
|
|
error?: InternalCopier<Error>;
|
|
generator?: InternalCopier<Generator>;
|
|
map?: InternalCopier<Map<any, any>>;
|
|
object?: InternalCopier<Record<string, any>>;
|
|
regExp?: InternalCopier<RegExp>;
|
|
set?: InternalCopier<Set<any>>;
|
|
}
|
|
interface Copiers {
|
|
[key: string]: InternalCopier<any> | undefined;
|
|
Arguments: InternalCopier<Record<string, any>>;
|
|
Array: InternalCopier<any[]>;
|
|
ArrayBuffer: InternalCopier<ArrayBuffer>;
|
|
AsyncGenerator: InternalCopier<AsyncGenerator>;
|
|
Blob: InternalCopier<Blob>;
|
|
Boolean: InternalCopier<Boolean>;
|
|
DataView: InternalCopier<DataView>;
|
|
Date: InternalCopier<Date>;
|
|
Error: InternalCopier<Error>;
|
|
Float32Array: InternalCopier<ArrayBuffer>;
|
|
Float64Array: InternalCopier<ArrayBuffer>;
|
|
Generator: InternalCopier<Generator>;
|
|
Int8Array: InternalCopier<ArrayBuffer>;
|
|
Int16Array: InternalCopier<ArrayBuffer>;
|
|
Int32Array: InternalCopier<ArrayBuffer>;
|
|
Map: InternalCopier<Map<any, any>>;
|
|
Number: InternalCopier<Number>;
|
|
Object: InternalCopier<Record<string, any>>;
|
|
Promise: InternalCopier<Promise<any>>;
|
|
RegExp: InternalCopier<RegExp>;
|
|
Set: InternalCopier<Set<any>>;
|
|
String: InternalCopier<String>;
|
|
WeakMap: InternalCopier<WeakMap<any, any>>;
|
|
WeakSet: InternalCopier<WeakSet<any>>;
|
|
Uint8Array: InternalCopier<ArrayBuffer>;
|
|
Uint8ClampedArray: InternalCopier<ArrayBuffer>;
|
|
Uint16Array: InternalCopier<ArrayBuffer>;
|
|
Uint32Array: InternalCopier<ArrayBuffer>;
|
|
Uint64Array: InternalCopier<ArrayBuffer>;
|
|
}
|
|
export interface CreateCopierOptions {
|
|
createCache?: () => Cache;
|
|
methods?: CopierMethods;
|
|
strict?: boolean;
|
|
}
|
|
export interface RequiredCreateCopierOptions extends Omit<Required<CreateCopierOptions>, 'methods'> {
|
|
copiers: Copiers;
|
|
methods: Required<CopierMethods>;
|
|
}
|
|
export declare function createDefaultCache(): Cache;
|
|
export declare function getOptions({ createCache: createCacheOverride, methods: methodsOverride, strict, }: CreateCopierOptions): RequiredCreateCopierOptions;
|
|
/**
|
|
* Get the copiers used for each specific object tag.
|
|
*/
|
|
export declare function getTagSpecificCopiers(methods: Required<CopierMethods>): Copiers;
|
|
export {};
|