diff --git a/README.md b/README.md index 7d0bfa2..206f4be 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,8 @@ const esModuleSource = dataToEsm({ compact: false, indent: '\t', preferConst: false, - objectShorthand: false + objectShorthand: false, + namedExports: true }); /* Outputs the string ES module source: diff --git a/package-lock.json b/package-lock.json index fec57f4..a9bfb31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "rollup-pluginutils", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4b9c83b..e9e5135 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "rollup-pluginutils", "description": "Functionality commonly needed by Rollup plugins", - "version": "2.2.0", + "version": "2.2.1", "main": "dist/pluginutils.cjs.js", "module": "dist/pluginutils.es.js", "jsnext:main": "dist/pluginutils.es.js", diff --git a/src/dataToEsm.js b/src/dataToEsm.js index b026e24..79347ff 100644 --- a/src/dataToEsm.js +++ b/src/dataToEsm.js @@ -46,6 +46,9 @@ export default function dataToNamedExports (data, options = {}) { const _ = options.compact ? '' : ' '; const n = options.compact ? '' : '\n'; const declarationType = options.preferConst ? 'const' : 'var'; + + if (options.namedExports === false || typeof data !== 'object' || Array.isArray(data) || data === null) + return `export default${ _ }${ serialize( data, options.compact ? null : t, '' ) };`; let namedExportCode = ''; const defaultExportRows = []; diff --git a/test/test.js b/test/test.js index 48b27a1..0620383 100644 --- a/test/test.js +++ b/test/test.js @@ -512,5 +512,15 @@ describe( 'rollup-pluginutils', function () { it ( 'supports null serialize', function () { assert.equal( dataToEsm( { null: null } ), 'export default {\n\t"null": null\n};\n' ); }); + + it ( 'supports default only', function () { + var arr = ['a', 'b']; + assert.equal( dataToEsm( { arr: arr }, { namedExports: false } ), 'export default {\n\tarr: [\n\t\t"a",\n\t\t"b"\n\t]\n};' ); + }); + + it ( 'default only for non-objects', function () { + var arr = ['a', 'b']; + assert.equal( dataToEsm( arr ), 'export default [\n\t"a",\n\t"b"\n];' ); + }); }); });