From a505fc279dfc2146e2bbebbdccd9ee75b6e22a9b Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 18 Apr 2022 21:46:54 -0700 Subject: [PATCH 1/4] Test that all named exports are detected by Node --- test/package.coffee | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 test/package.coffee diff --git a/test/package.coffee b/test/package.coffee new file mode 100644 index 0000000000..61cfcc0374 --- /dev/null +++ b/test/package.coffee @@ -0,0 +1,23 @@ +return if window? or testingBrowser? + +{EventEmitter} = require 'events' +{join} = require 'path' +{cwd} = require 'process' + + +test "the coffeescript package exposes all members as named exports in Node", -> + packageEntry = join cwd(), 'lib/coffeescript/index.js' + + requiredPackage = require packageEntry + requiredKeys = Object.keys requiredPackage + + importedPackage = await import(packageEntry) + importedKeys = new Set Object.keys(importedPackage) + + # In `command.coffee`, CoffeeScript extends a `new EventEmitter`; + # we want to ignore these additional added keys. + eventEmitterKeys = new Set Object.getOwnPropertyNames(Object.getPrototypeOf(new EventEmitter)) + + for key in requiredKeys when not eventEmitterKeys.has(key) + # Use `eq` test so that missing keys have their names printed in the error message. + eq (if importedKeys.has(key) then key else undefined), key From a84188206b02f856d9f87c7b433b5a82c50ccdd0 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 18 Apr 2022 21:26:15 -0700 Subject: [PATCH 2/4] Add missing export --- lib/coffeescript/index.js | 2 ++ src/index.coffee | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/coffeescript/index.js b/lib/coffeescript/index.js index 4bda5a0953..2a6c895aba 100644 --- a/lib/coffeescript/index.js +++ b/lib/coffeescript/index.js @@ -208,6 +208,8 @@ module.exports.transpile = CoffeeScript.transpile; + module.exports.patchStackTrace = CoffeeScript.patchStackTrace; + module.exports._compileRawFileContent = CoffeeScript._compileRawFileContent; module.exports._compileFile = CoffeeScript._compileFile; diff --git a/src/index.coffee b/src/index.coffee index 48df562971..5e01b4d541 100644 --- a/src/index.coffee +++ b/src/index.coffee @@ -155,5 +155,6 @@ module.exports.register = CoffeeScript.register module.exports.eval = CoffeeScript.eval module.exports.run = CoffeeScript.run module.exports.transpile = CoffeeScript.transpile +module.exports.patchStackTrace = CoffeeScript.patchStackTrace module.exports._compileRawFileContent = CoffeeScript._compileRawFileContent module.exports._compileFile = CoffeeScript._compileFile From 0c187d622752bc198f73fb0f1b82251317c5f795 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Tue, 19 Apr 2022 09:06:09 -0700 Subject: [PATCH 3/4] Update output --- docs/v2/annotated-source/index.html | 1 + docs/v2/test.html | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/docs/v2/annotated-source/index.html b/docs/v2/annotated-source/index.html index c393f5bc82..6ae6fb95dc 100644 --- a/docs/v2/annotated-source/index.html +++ b/docs/v2/annotated-source/index.html @@ -485,6 +485,7 @@

index.coffee

module.exports.eval = CoffeeScript.eval module.exports.run = CoffeeScript.run module.exports.transpile = CoffeeScript.transpile +module.exports.patchStackTrace = CoffeeScript.patchStackTrace module.exports._compileRawFileContent = CoffeeScript._compileRawFileContent module.exports._compileFile = CoffeeScript._compileFile diff --git a/docs/v2/test.html b/docs/v2/test.html index 3fab120c17..ce157b921f 100644 --- a/docs/v2/test.html +++ b/docs/v2/test.html @@ -31451,6 +31451,32 @@

Another heading

].join('\n') ok new OptionParser(flags).help() is expected + +