From 69825b59c6f8b3c35730c6349c1239c0f5872e27 Mon Sep 17 00:00:00 2001 From: Gajus Kuizinas Date: Fri, 29 Jan 2016 09:40:35 +0000 Subject: [PATCH] Change the index file format to use "export ... from" (fixes #3) --- package.json | 13 ++++---- src/bin/create-index.js | 4 ++- src/index.js | 10 +----- src/{ => utilities}/createIndexCode.js | 19 ++--------- src/utilities/index.js | 8 +++++ src/{ => utilities}/readDirectory.js | 0 src/{ => utilities}/sortByDepth.js | 0 .../validateTargetDirectory.js | 0 src/{ => utilities}/writeIndex.js | 0 tests/createIndexCode.js | 32 ++++--------------- tests/readDirectory.js | 2 +- tests/sortByDepth.js | 2 +- tests/validateTargetDirectory.js | 2 +- tests/writeIndex.js | 11 ++----- 14 files changed, 35 insertions(+), 68 deletions(-) rename src/{ => utilities}/createIndexCode.js (61%) create mode 100644 src/utilities/index.js rename src/{ => utilities}/readDirectory.js (100%) rename src/{ => utilities}/sortByDepth.js (100%) rename src/{ => utilities}/validateTargetDirectory.js (100%) rename src/{ => utilities}/writeIndex.js (100%) diff --git a/package.json b/package.json index 3f145af..1b4599b 100644 --- a/package.json +++ b/package.json @@ -20,21 +20,22 @@ }, "license": "BSD-3-Clause", "scripts": { - "pragmatist": "node ./node_modules/.bin/pragmatist --browser", + "pragmatist": "node ./node_modules/.bin/pragmatist --es5", "lint": "npm run pragmatist lint", "test": "npm run pragmatist test", "build": "npm run pragmatist build", "watch": "npm run pragmatist watch", "watch-lint": "npm run pragmatist watch-lint", "watch-test": "npm run pragmatist watch-test", - "watch-build": "npm run pragmatist watch-build" + "watch-build": "npm run pragmatist watch-build", + "create-index": "node ./dist/bin/create-index ./src/utilities" }, "devDependencies": { - "chai": "^3.4.1", - "pragmatist": "^2.3.70" + "chai": "^3.5.0", + "pragmatist": "^3.0.3" }, "dependencies": { - "lodash": "^3.10.1", - "yargs": "^3.31.0" + "lodash": "^4.0.1", + "yargs": "^4.0.0-alpha1" } } diff --git a/src/bin/create-index.js b/src/bin/create-index.js index 9f2adc3..e1a49bf 100644 --- a/src/bin/create-index.js +++ b/src/bin/create-index.js @@ -1,7 +1,9 @@ #!/usr/bin/env node import yargs from 'yargs'; -import writeIndex from './../writeIndex'; +import { + writeIndex +} from './../utilities'; let argv; diff --git a/src/index.js b/src/index.js index 43f759e..c0f42c0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,14 +1,6 @@ -'create index'; - -import createIndexCode from './createIndexCode.js'; -import readDirectory from './readDirectory.js'; -import validateTargetDirectory from './validateTargetDirectory.js'; -import writeIndex from './writeIndex.js'; - export { createIndexCode, readDirectory, validateTargetDirectory, writeIndex -}; - +} from './utilities'; diff --git a/src/createIndexCode.js b/src/utilities/createIndexCode.js similarity index 61% rename from src/createIndexCode.js rename to src/utilities/createIndexCode.js index 73812f1..f385f12 100644 --- a/src/createIndexCode.js +++ b/src/utilities/createIndexCode.js @@ -1,7 +1,6 @@ import _ from 'lodash'; let buildExportBlock, - buildImportBlock, safeVariableName; safeVariableName = (fileName) => { @@ -16,11 +15,11 @@ safeVariableName = (fileName) => { } }; -buildImportBlock = (files) => { +buildExportBlock = (files) => { let importBlock; importBlock = _.map(files, (fileName) => { - return 'import ' + safeVariableName(fileName) + ' from \'./' + fileName + '\';'; + return 'export ' + safeVariableName(fileName) + ' from \'./' + fileName + '\';'; }); importBlock = importBlock.join('\n'); @@ -28,18 +27,6 @@ buildImportBlock = (files) => { return importBlock; }; -buildExportBlock = (files) => { - let exportBlock; - - exportBlock = _.map(files, (fileName) => { - return ' ' + safeVariableName(fileName); - }); - - exportBlock = 'export {\n' + exportBlock.join(',\n') + '\n};'; - - return exportBlock; -}; - export default (filePaths) => { let code, sortedFilePaths; @@ -49,7 +36,7 @@ export default (filePaths) => { if (filePaths.length) { sortedFilePaths = filePaths.sort(); - code += buildImportBlock(sortedFilePaths) + '\n\n' + buildExportBlock(sortedFilePaths) + '\n\n'; + code += buildExportBlock(sortedFilePaths) + '\n\n'; } return code; diff --git a/src/utilities/index.js b/src/utilities/index.js new file mode 100644 index 0000000..355b256 --- /dev/null +++ b/src/utilities/index.js @@ -0,0 +1,8 @@ +'create index'; + +export createIndexCode from './createIndexCode.js'; +export readDirectory from './readDirectory.js'; +export sortByDepth from './sortByDepth.js'; +export validateTargetDirectory from './validateTargetDirectory.js'; +export writeIndex from './writeIndex.js'; + diff --git a/src/readDirectory.js b/src/utilities/readDirectory.js similarity index 100% rename from src/readDirectory.js rename to src/utilities/readDirectory.js diff --git a/src/sortByDepth.js b/src/utilities/sortByDepth.js similarity index 100% rename from src/sortByDepth.js rename to src/utilities/sortByDepth.js diff --git a/src/validateTargetDirectory.js b/src/utilities/validateTargetDirectory.js similarity index 100% rename from src/validateTargetDirectory.js rename to src/utilities/validateTargetDirectory.js diff --git a/src/writeIndex.js b/src/utilities/writeIndex.js similarity index 100% rename from src/writeIndex.js rename to src/utilities/writeIndex.js diff --git a/tests/createIndexCode.js b/tests/createIndexCode.js index 2e67e4b..af63a4f 100644 --- a/tests/createIndexCode.js +++ b/tests/createIndexCode.js @@ -4,7 +4,7 @@ import { expect } from 'chai'; -import createIndexCode from './../src/createIndexCode'; +import createIndexCode from './../src/utilities/createIndexCode'; import codeExample from './codeExample'; @@ -26,11 +26,7 @@ describe('createIndexCode()', () => { expect(indexCode).to.equal(codeExample(` 'create index'; -import foo from './foo'; - -export { - foo -}; +export foo from './foo'; `)); }); it('describes multiple children', () => { @@ -41,13 +37,8 @@ export { expect(indexCode).to.equal(codeExample(` 'create index'; -import bar from './bar'; -import foo from './foo'; - -export { - bar, - foo -}; +export bar from './bar'; +export foo from './foo'; `)); }); context('file with extension', () => { @@ -59,11 +50,7 @@ export { expect(indexCode).to.equal(codeExample(` 'create index'; -import foo from './foo.js'; - -export { - foo -}; +export foo from './foo.js'; `)); }); }); @@ -76,13 +63,8 @@ export { expect(indexCode).to.equal(codeExample(` 'create index'; -import bar from './bar'; -import foo from './foo'; - -export { - bar, - foo -}; +export bar from './bar'; +export foo from './foo'; `)); }); }); diff --git a/tests/readDirectory.js b/tests/readDirectory.js index 0a87dba..ef60de9 100644 --- a/tests/readDirectory.js +++ b/tests/readDirectory.js @@ -3,7 +3,7 @@ import { } from 'chai'; import path from 'path'; -import readDirectory from './../src/readDirectory'; +import readDirectory from './../src/utilities/readDirectory'; const fixturesPath = path.resolve(__dirname, './fixtures/read-directory'); diff --git a/tests/sortByDepth.js b/tests/sortByDepth.js index 60dfefc..cb654cd 100644 --- a/tests/sortByDepth.js +++ b/tests/sortByDepth.js @@ -1,7 +1,7 @@ import { expect } from 'chai'; -import sortByDepth from './../src/sortByDepth'; +import sortByDepth from './../src/utilities/sortByDepth'; describe('sortByDepth()', () => { it('sorts from deepest to the most shallow', () => { diff --git a/tests/validateTargetDirectory.js b/tests/validateTargetDirectory.js index c8e7699..427615a 100644 --- a/tests/validateTargetDirectory.js +++ b/tests/validateTargetDirectory.js @@ -4,7 +4,7 @@ import { expect } from 'chai'; import path from 'path'; -import validateTargetDirectory from './../src/validateTargetDirectory'; +import validateTargetDirectory from './../src/utilities/validateTargetDirectory'; const fixturesPath = path.resolve(__dirname, './fixtures/validate-target-directory'); diff --git a/tests/writeIndex.js b/tests/writeIndex.js index 2cfcfe6..0a0dba3 100644 --- a/tests/writeIndex.js +++ b/tests/writeIndex.js @@ -6,7 +6,7 @@ import { import fs from 'fs'; import path from 'path'; import codeExample from './codeExample'; -import writeIndex from './../src/writeIndex'; +import writeIndex from './../src/utilities/writeIndex'; const fixturesPath = path.resolve(__dirname, './fixtures/write-index'); @@ -30,13 +30,8 @@ describe('writeIndex()', () => { expect(indexCode).to.equal(codeExample(` 'create index'; -import bar from './bar'; -import foo from './foo.js'; - -export { - bar, - foo -}; +export bar from './bar'; +export foo from './foo.js'; `)); }); });