Skip to content

Commit

Permalink
feat: ability to add banner (#20)
Browse files Browse the repository at this point in the history
Lets you add a custom banner.

```sh
create-index src -u --banner "/* eslint-disable */"
```
```js
/* eslint-disable */

// @create-index

import xxx ...
```
  • Loading branch information
laggingreflex authored and gajus committed Nov 29, 2016
1 parent d7e2528 commit fdb17d0
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 4 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ Options:
files that start with "'create index';\n" (create-index index
file). Updates found index files. Does not create new index
files. [boolean] [default: false]
--banner Add a custom banner at the top of the index file [string]

Examples:
create-index ./src ./src/utilities Creates or updates an existing
Expand Down
9 changes: 8 additions & 1 deletion src/bin/create-index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,17 @@ const argv = yargs
type: 'boolean'
}
})
.options({
'banner': {
description: 'Add a custom banner at the top of the index file',
type: 'string'
}
})
.example('create-index ./src ./src/utilities', 'Creates or updates an existing create-index index file in the target (./src, ./src/utilities) directories.')
.example('create-index --update ./src ./tests', 'Finds all create-index index files in the target directories and descending directories. Updates found index files.')
.argv;

writeIndexCli(argv._, {
updateIndex: argv.update
updateIndex: argv.update,
banner: argv.banner
});
16 changes: 14 additions & 2 deletions src/utilities/createIndexCode.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,22 @@ const buildExportBlock = (files) => {
return importBlock;
};

export default (filePaths) => {
export default (filePaths, options = {}) => {
let code;

code = '// @create-index\n\n';
code = '';

if (options.banner) {
const banners = _.isArray(options.banner) ? options.banner : [options.banner];

banners.forEach((banner) => {
code += banner + '\n';
});

code += '\n';
}

code += '// @create-index\n\n';

if (filePaths.length) {
const sortedFilePaths = filePaths.sort();
Expand Down
4 changes: 3 additions & 1 deletion src/utilities/writeIndexCli.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ export default (directoryPaths, options = {}) => {

const siblings = readDirectory(directoryPath);

const indexCode = createIndexCode(siblings);
const indexCode = createIndexCode(siblings, {
banner: options.banner
});

const indexFilePath = path.resolve(directoryPath, 'index.js');

Expand Down

0 comments on commit fdb17d0

Please sign in to comment.