From 50f97d010cc293f0fafa9d3d4f763a107d4559e9 Mon Sep 17 00:00:00 2001 From: Adam Krebs Date: Fri, 25 Nov 2022 12:09:52 -0500 Subject: [PATCH] Allow paper to be required in node REPL Attempting to require paper outside of a file context (i.e the node command line repl) leads to an error loading the path because `parent.filename` is undefined. ``` TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received null at __node_internal_captureLargerStackTrace (node:internal/errors:477:5) at new NodeError (node:internal/errors:387:5) at validateString (node:internal/validators:115:11) at Object.dirname (node:path:1276:5) at Object. (/.../node_modules/paper/dist/node/self.js:22:48) ``` This adds a short-circuit check which seems to fix the issue. --- src/node/self.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node/self.js b/src/node/self.js index 4fad478d25..1d9509ba27 100644 --- a/src/node/self.js +++ b/src/node/self.js @@ -18,7 +18,7 @@ var path = require('path'); // 'paper-jsdom' or 'paper-jsdom-canvas'), and use this to determine if error // exceptions should be thrown or if loading should fail silently. var parent = module.parent && module.parent.parent, - requireName = parent && path.basename(path.dirname(parent.filename)); + requireName = parent && parent.filename && path.basename(path.dirname(parent.filename)); requireName = /^paper/.test(requireName) ? requireName : 'paper'; var jsdom,