This library accepts a code location (in the form of a StackFrame) and returns a new StackFrame with a more accurate location (using source maps) and guessed function names.
var stackframe = new StackFrame(undefined, [], 'http://localhost:3000/file.min.js', 1, 3284);
var callback = function myCallback(foundFunctionName) { console.log(foundFunctionName); };
// Such meta. Wow
var errback = function myErrback(error) { console.log(StackTrace.fromError(error)); };
var gps = new StackTraceGPS();
// Pinpoint actual function name and source-mapped location
gps.pinpoint(stackframe).then(callback, errback);
=> Promise(StackFrame('fun', [], 'file.js', 203, 9), Error)
// Better location/name information from source maps
gps.getMappedLocation(stackframe).then(callback, errback);
=> Promise(StackFrame(undefined, [], 'file.js', 203, 9), Error)
// Get function name from location information
gps.findFunctionName(stackframe).then(callback, errback);
=> Promise(StackFrame('fun', [], 'http://localhost:3000/file.min.js', 1, 3284), Error)
npm install stacktrace-gps
bower install stacktrace-gps
https://raw.githubusercontent.com/stacktracejs/stacktrace-gps/master/dist/stacktrace-gps.min.js
options: Object
- sourceCache: Object (String URL => String Source) - Pre-populate source cache to avoid network requests
- offline: Boolean (default false) - Set to
true
to prevent all network requests - ajax: Function (String URL => Promise(responseText)) - Function to be used for making X-Domain requests
- atob: Function (String => String) - Function to convert base64-encoded strings to their original representation
Enhance function name and use source maps to produce a better StackFrame.
- stackframe - StackFrame or like object e.g. {fileName: 'path/to/file.js', lineNumber: 100, columnNumber: 5}
Enhance function name and use source maps to produce a better StackFrame.
- stackframe - StackFrame or like object
Enhance function name and use source maps to produce a better StackFrame.
- stackframe - StackFrame or like object
Functions that rely on Source Maps
(pinpoint
and getMappedLocation
) require recent browsers:
Want to be listed as a Contributor? Start with the Contributing Guide!
This project is licensed to the Public Domain