From 0b059ff6bd511b2f0aad8a22badc6c3b02fcee68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=2EAzer=20Ko=C3=A7ulu?= Date: Thu, 13 Mar 2014 02:30:30 -0700 Subject: [PATCH] initial --- .gitignore | 2 ++ .npmignore | 4 ++++ README.md | 22 ++++++++++++++++++++++ index.js | 13 +++++++++++++ package.json | 24 ++++++++++++++++++++++++ test.js | 11 +++++++++++ 6 files changed, 76 insertions(+) create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 README.md create mode 100644 index.js create mode 100644 package.json create mode 100644 test.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..93f1361 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +npm-debug.log diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..f4b4121 --- /dev/null +++ b/.npmignore @@ -0,0 +1,4 @@ +test +test.js +example +examples diff --git a/README.md b/README.md new file mode 100644 index 0000000..b6a9aa9 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +## failing-line + +Return the line number and filename of failing line from given error object + +## Install + +```bash +$ npm install failing-line +``` + +## Usage + +```js +var failingLine = require('failing-line') + +process.on('uncaughtException', function (error) { + failingLine(error) + // => { lineno: 8, filename: 'example.js' } +}) + +hereIfail++ +``` diff --git a/index.js b/index.js new file mode 100644 index 0000000..899d31e --- /dev/null +++ b/index.js @@ -0,0 +1,13 @@ +module.exports = failingLine; + +function failingLine (error) { + var match = error.stack.match(/\(([^\(\)]+)\)/); + if (!match) return undefined; + + match = match[1].split(':'); + + return { + filename: match[0], + lineno: Number(match[1]) + }; +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..deb17f0 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "failing-line", + "version": "0.0.0", + "description": "Return the line number and filename of failing line from given error object", + "main": "index.js", + "scripts": { + "test": "node test.js" + }, + "devDependencies": { + "tape": "*" + }, + "keywords": [ + "error", + "fail", + "failing", + "line number" + ], + "repository": { + "url": "git@github.com:azer\/failing-line.git", + "type": "git" + }, + "author": "azer", + "license": "BSD" +} diff --git a/test.js b/test.js new file mode 100644 index 0000000..52982bf --- /dev/null +++ b/test.js @@ -0,0 +1,11 @@ +var failingLine = require("./"); +var test = require("tape"); + +test('failing line', function (assert) { + var err = new Error('Hello World'); + var ln = failingLine(err); + + assert.equal(ln.lineno, 5); + assert.equal(ln.filename, __filename); + assert.end(); +});