-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathindex.d.ts
More file actions
54 lines (50 loc) · 1.71 KB
/
index.d.ts
File metadata and controls
54 lines (50 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
interface Cache {
has: (value: any) => boolean;
set: (key: any, value: any) => void;
get: (key: any) => any;
}
type InternalCopier<Value> = (value: Value, state: State) => Value;
interface State {
Constructor: any;
cache: Cache;
copier: InternalCopier<any>;
prototype: any;
}
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 CreateCopierOptions {
createCache?: () => Cache;
methods?: CopierMethods;
strict?: boolean;
}
/**
* Create a custom copier based on custom options for any of the following:
* - `createCache` method to create a cache for copied objects
* - custom copier `methods` for specific object types
* - `strict` mode to copy all properties with their descriptors
*/
declare function createCopier(options?: CreateCopierOptions): <Value>(value: Value) => Value;
/**
* Copy an value deeply as much as possible, where strict recreation of object properties
* are maintained. All properties (including non-enumerable ones) are copied with their
* original property descriptors on both objects and arrays.
*/
declare const copyStrict: <Value>(value: Value) => Value;
/**
* Copy an value deeply as much as possible.
*/
declare const copy: <Value>(value: Value) => Value;
export { copy, copyStrict, createCopier };
export type { CreateCopierOptions, State };