forked from mariocasciaro/object-path-immutable
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobject-path-immutable.d.ts
More file actions
28 lines (25 loc) · 1.12 KB
/
object-path-immutable.d.ts
File metadata and controls
28 lines (25 loc) · 1.12 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
type Path = string | ReadonlyArray<number | string>;
interface WrappedObject<T> {
set(path?: Path, value?: any): WrappedObject<T>
push(path?: Path, value?: any): WrappedObject<T>
del(path?: Path): WrappedObject<T>
assign(path?: Path, source?: any): WrappedObject<T>
merge(path?: Path, source?: any): WrappedObject<T>
update(path?: Path, updater?: (formerValue: any) => any): WrappedObject<T>
insert(path?: Path, value?: any, index?: number): WrappedObject<T>
value(): T
}
interface ObjectPathImmutable {
<T>(obj: T): WrappedObject<T>
set<T = object>(src: T, path?: Path, value?: any): T
push<T = object>(src: T, path?: Path, value?: any): T
del<T = object>(src: T, path?: Path): T
assign<T = object>(src: T, path?: Path, source?: T): T
merge<T = object>(src: T, path?: Path, source?: any): T
update<T = object>(src: T, path?: Path, updater?: (formerValue: any) => any): WrappedObject<T>
insert<T = object>(src: T, path?: Path, value?: any, index?: number): T
}
declare module 'object-path-immutable' {
const immutable: ObjectPathImmutable;
export default immutable
}