From b645d0ae0d19c59a867a504cb0a4fe936ee9cb1e Mon Sep 17 00:00:00 2001 From: Walt Jones Date: Tue, 12 Apr 2022 08:34:02 -0700 Subject: [PATCH] fix: refactor to use current (3.x) async package (#1018) --- package-lock.json | 48 +++++++++----------------------------------- package.json | 2 +- src/server/parser.js | 26 +++++++++++------------- 3 files changed, 23 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 87912d43..41fd12c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -672,9 +672,9 @@ "dev": true }, "async": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", - "integrity": "sha1-pIFqF81f9RbfosdpikUzabl5DeA=" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "async-each": { "version": "1.0.3", @@ -1006,16 +1006,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", @@ -3083,13 +3073,6 @@ "flat-cache": "^2.0.1" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3209,9 +3192,9 @@ } }, "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", "dev": true }, "for-in": { @@ -5725,9 +5708,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mississippi": { @@ -6119,13 +6102,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -9174,11 +9150,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } + "optional": true }, "glob-parent": { "version": "3.1.0", diff --git a/package.json b/package.json index 6ddc489b..f21efa9f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "browser": "dist/rollbar.umd.min.js", "types": "./index.d.ts", "dependencies": { - "async": "~1.2.1", + "async": "~3.2.3", "console-polyfill": "0.3.0", "error-stack-parser": "^2.0.4", "json-stringify-safe": "~5.0.0", diff --git a/src/server/parser.js b/src/server/parser.js index 05c8c3f1..91ae19ab 100644 --- a/src/server/parser.js +++ b/src/server/parser.js @@ -181,7 +181,7 @@ function shouldReadFrameFile(frameFilename, callback) { isCached = !!cache.get(frameFilename); isPending = !!pendingReads[frameFilename]; - callback(isValidFilename && !isCached && !isPending); + callback(null, isValidFilename && !isCached && !isPending); } @@ -201,19 +201,13 @@ function readFileLines(filename, callback) { } } - -/* Older versions of node do not have fs.exists so we implement our own */ function checkFileExists(filename, callback) { if (stackTrace.sourceContent(filename)) { - return callback(true); - } - if (fs.exists !== undefined) { - fs.exists(filename, callback); - } else { - fs.stat(filename, function (err) { - callback(!err); - }); + return callback(null, true); } + fs.stat(filename, function (err) { + callback(null, !err); + }); } @@ -226,7 +220,9 @@ function gatherContexts(frames, callback) { } }); - async.filter(frameFilenames, shouldReadFrameFile, function (results) { + async.filter(frameFilenames, shouldReadFrameFile, function (err, results) { + if (err) return callback(err); + var tempFileCache; tempFileCache = {}; @@ -270,7 +266,8 @@ function gatherContexts(frames, callback) { callback(null); } - async.filter(results, checkFileExists, function (filenames) { + async.filter(results, checkFileExists, function (err, filenames) { + if (err) return callback(err); async.each(filenames, gatherFileData, function (err) { if (err) { return callback(err); @@ -367,7 +364,8 @@ exports.parseStack = function (stack, options, item, callback) { return callback(err); } frames.reverse(); - async.filter(frames, function (frame, callback) { callback(!!frame); }, function (results) { + async.filter(frames, function (frame, callback) { callback(null, !!frame); }, function (err, results) { + if (err) return callback(err); gatherContexts(results, callback); }); });