index.d.ts
1 declare namespace callsites { 2 interface CallSite { 3 /** 4 Returns the value of `this`. 5 */ 6 getThis(): unknown | undefined; 7 8 /** 9 Returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. 10 */ 11 getTypeName(): string | null; 12 13 /** 14 Returns the current function. 15 */ 16 getFunction(): Function | undefined; 17 18 /** 19 Returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. 20 */ 21 getFunctionName(): string | null; 22 23 /** 24 Returns the name of the property of `this` or one of its prototypes that holds the current function. 25 */ 26 getMethodName(): string | undefined; 27 28 /** 29 Returns the name of the script if this function was defined in a script. 30 */ 31 getFileName(): string | null; 32 33 /** 34 Returns the current line number if this function was defined in a script. 35 */ 36 getLineNumber(): number | null; 37 38 /** 39 Returns the current column number if this function was defined in a script. 40 */ 41 getColumnNumber(): number | null; 42 43 /** 44 Returns a string representing the location where `eval` was called if this function was created using a call to `eval`. 45 */ 46 getEvalOrigin(): string | undefined; 47 48 /** 49 Returns `true` if this is a top-level invocation, that is, if it's a global object. 50 */ 51 isToplevel(): boolean; 52 53 /** 54 Returns `true` if this call takes place in code defined by a call to `eval`. 55 */ 56 isEval(): boolean; 57 58 /** 59 Returns `true` if this call is in native V8 code. 60 */ 61 isNative(): boolean; 62 63 /** 64 Returns `true` if this is a constructor call. 65 */ 66 isConstructor(): boolean; 67 } 68 } 69 70 declare const callsites: { 71 /** 72 Get callsites from the V8 stack trace API. 73 74 @returns An array of `CallSite` objects. 75 76 @example 77 ``` 78 import callsites = require('callsites'); 79 80 function unicorn() { 81 console.log(callsites()[0].getFileName()); 82 //=> '/Users/sindresorhus/dev/callsites/test.js' 83 } 84 85 unicorn(); 86 ``` 87 */ 88 (): callsites.CallSite[]; 89 90 // TODO: Remove this for the next major release, refactor the whole definition to: 91 // declare function callsites(): callsites.CallSite[]; 92 // export = callsites; 93 default: typeof callsites; 94 }; 95 96 export = callsites;