From cd1de2faa98a2a4d48318e9e26b2795365981b41 Mon Sep 17 00:00:00 2001 From: Jason Mulligan <jason.mulligan@avoidwork.com> Date: Mon, 3 Oct 2016 07:56:31 -0400 Subject: [PATCH] Adding `__filename` & `__dirname` variables to worker context, fixes #5 --- lib/worker.js | 2 ++ package.json | 2 +- src/worker.js | 2 ++ test/worker_test.js | 58 ++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/lib/worker.js b/lib/worker.js index 38028c3..c1cf153 100644 --- a/lib/worker.js +++ b/lib/worker.js @@ -41,6 +41,8 @@ process.once("message", function (obj) { } }; + global.__dirname = __dirname; + global.__filename = __filename; global.require = require; global.importScripts = function () { diff --git a/package.json b/package.json index cbac201..5e83914 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tiny-worker", - "version": "1.1.5", + "version": "1.1.6", "description": "Tiny WebWorker for Server", "main": "lib/index.js", "scripts": { diff --git a/src/worker.js b/src/worker.js index 74e598d..bba70e5 100644 --- a/src/worker.js +++ b/src/worker.js @@ -39,6 +39,8 @@ process.once("message", obj => { } }; + global.__dirname = __dirname; + global.__filename = __filename; global.require = require; global.importScripts = (...files) => { diff --git a/test/worker_test.js b/test/worker_test.js index 171fdd9..b793bc6 100644 --- a/test/worker_test.js +++ b/test/worker_test.js @@ -56,7 +56,7 @@ exports["inline script"] = { exports["inline script - require"] = { setUp: function (done) { this.worker = new Worker(function () { - self.onmessage = function (ev) { + self.onmessage = function () { postMessage(typeof require); }; }); @@ -80,3 +80,59 @@ exports["inline script - require"] = { this.worker.postMessage(this.msg); } }; + +exports["inline script - __dirname"] = { + setUp: function (done) { + this.worker = new Worker(function () { + self.onmessage = function () { + postMessage(typeof __dirname); + }; + }); + this.msg = "What is __dirname?"; + this.expected = "string"; + done(); + }, + test: function (test) { + var self = this; + + test.expect(2); + test.notEqual(this.msg, this.response, "Should not match"); + + this.worker.onmessage = function (ev) { + self.response = ev.data; + self.worker.terminate(); + test.equal(self.expected, self.response, "Should be a match"); + test.done(); + }; + + this.worker.postMessage(this.msg); + } +}; + +exports["inline script - __filename"] = { + setUp: function (done) { + this.worker = new Worker(function () { + self.onmessage = function () { + postMessage(typeof __filename); + }; + }); + this.msg = "What is __filename?"; + this.expected = "string"; + done(); + }, + test: function (test) { + var self = this; + + test.expect(2); + test.notEqual(this.msg, this.response, "Should not match"); + + this.worker.onmessage = function (ev) { + self.response = ev.data; + self.worker.terminate(); + test.equal(self.expected, self.response, "Should be a match"); + test.done(); + }; + + this.worker.postMessage(this.msg); + } +}; -- GitLab