forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rewire.d.ts
38 lines (35 loc) · 1.49 KB
/
rewire.d.ts
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
// Type definitions for rewire v2.5.1
// Project: https://github.com/jhnns/rewire
// Definitions by: Borislav Zhivkov <https://github.com/borislavjivkov>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace RewireInterfaces {
interface Rewire {
/**
* Returns a rewired version of the module found at filename. Use rewire() exactly like require().
*/
(filename: string): RewiredModule;
}
interface RewiredModule {
/**
* Takes all enumerable keys of obj as variable names and sets the values respectively. Returns a function which can be called to revert the change.
*/
__set__(obj: Object): Function;
/**
* Sets the internal variable name to the given value. Returns a function which can be called to revert the change.
*/
__set__(name: string, value: any): Function;
/**
* Returns the private variable with the given name.
*/
__get__(name: string): any;
/**
* Returns a function which - when being called - sets obj, executes the given callback and reverts obj. If callback returns a promise, obj is only reverted after
* the promise has been resolved or rejected. For your convenience the returned function passes the received promise through.
*/
__with__(obj: Object): (callback: Function) => any;
}
}
declare var rewire: RewireInterfaces.Rewire;
declare module "rewire" {
export = rewire;
}