From f06b3ae086c9741fd9a421b0c0b0f6716f1175d0 Mon Sep 17 00:00:00 2001 From: Tyler Waters Date: Fri, 8 Sep 2017 22:30:40 -0700 Subject: [PATCH] Map default export to module for es-module interoperability --- lib/help-include-all-sync.js | 4 ++- test/esmodules.test.js | 32 +++++++++++++++++++ test/fixtures/es-modules/module-default.js | 2 ++ .../es-modules/sub-dir/another-module.js | 2 ++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 test/esmodules.test.js create mode 100644 test/fixtures/es-modules/module-default.js create mode 100644 test/fixtures/es-modules/sub-dir/another-module.js diff --git a/lib/help-include-all-sync.js b/lib/help-include-all-sync.js index b6d0f8b..94db534 100644 --- a/lib/help-include-all-sync.js +++ b/lib/help-include-all-sync.js @@ -290,7 +290,9 @@ module.exports = function includeAll(options) { // Require the module. try { - _modules[keyName] = require(filepath); + var _module = require(filepath) + if (_module.default) { _module = _module.default } + _modules[keyName] = _module; } catch (e) { // Skip this module silently if `ignoreRequireFailures` is enabled. if (options.ignoreRequireFailures) { return; } diff --git a/test/esmodules.test.js b/test/esmodules.test.js new file mode 100644 index 0000000..cf71477 --- /dev/null +++ b/test/esmodules.test.js @@ -0,0 +1,32 @@ +/** + * Module dependencies + */ + +var assert = require('assert'); +var path = require('path'); +var loader = require('../'); + + + +describe('es modules, default is a default export', function(){ + + + it('should return the default export as default - lowlevel', function () { + + var modules = loader({ + dirname: path.resolve(__dirname, './fixtures/es-modules'), + filter: /(.+\.js)$/ + }) + + assert.deepEqual(modules, { + 'module-default.js': true, + 'sub-dir': { + 'another-module.js': true + } + }); + + });// + + +});// + diff --git a/test/fixtures/es-modules/module-default.js b/test/fixtures/es-modules/module-default.js new file mode 100644 index 0000000..3a947ad --- /dev/null +++ b/test/fixtures/es-modules/module-default.js @@ -0,0 +1,2 @@ + +exports.default = true diff --git a/test/fixtures/es-modules/sub-dir/another-module.js b/test/fixtures/es-modules/sub-dir/another-module.js new file mode 100644 index 0000000..3a947ad --- /dev/null +++ b/test/fixtures/es-modules/sub-dir/another-module.js @@ -0,0 +1,2 @@ + +exports.default = true