diff --git a/README.md b/README.md index e587530..d8cdc35 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/src/bin/create-index.js b/src/bin/create-index.js index 2ae6ebc..190ae6b 100644 --- a/src/bin/create-index.js +++ b/src/bin/create-index.js @@ -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 }); diff --git a/src/utilities/createIndexCode.js b/src/utilities/createIndexCode.js index 2a4b9e8..8b84a51 100644 --- a/src/utilities/createIndexCode.js +++ b/src/utilities/createIndexCode.js @@ -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(); diff --git a/src/utilities/writeIndexCli.js b/src/utilities/writeIndexCli.js index be82404..9fd56b3 100644 --- a/src/utilities/writeIndexCli.js +++ b/src/utilities/writeIndexCli.js @@ -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');