feat: add option to exclude directories from index.js (#50)

* Add option to exclude directories from index.js
* Update readDirectory.js
* Update writeIndexCli.js
* Update readDirectory.js
* Update README
This commit is contained in:
Joe Whittles
2019-01-25 17:49:18 +00:00
committed by Gajus Kuizinas
parent 1efd1c6c7b
commit 6aac149a8b
6 changed files with 63 additions and 24 deletions
+21 -3
View File
@@ -23,6 +23,14 @@ const argv = yargs
type: 'boolean'
}
})
.options({
ignoreDirectories: {
alias: 'd',
default: false,
description: 'Ignores importing directories into the index file, even if they have a safe "index.js".',
type: 'boolean'
}
})
.options({
update: {
alias: 'u',
@@ -45,14 +53,24 @@ const argv = yargs
type: 'array'
}
})
.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.')
.example('create-index ./src --extensions js jsx', 'Creates or updates an existing create-index index file in the target (./src) directory for both .js and .jsx extensions.')
.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.'
)
.example(
'create-index ./src --extensions js jsx',
'Creates or updates an existing create-index index file in the target (./src) directory for both .js and .jsx extensions.'
)
.argv;
writeIndexCli(argv._, {
banner: argv.banner,
extensions: argv.extensions,
ignoreDirectories: argv.ignoreDirectories,
ignoreUnsafe: argv.ignoreUnsafe,
recursive: argv.recursive,
updateIndex: argv.update
+8 -8
View File
@@ -1,10 +1,10 @@
// @create-index
export createIndexCode from './createIndexCode.js';
export findIndexFiles from './findIndexFiles.js';
export log from './log.js';
export readDirectory from './readDirectory.js';
export sortByDepth from './sortByDepth.js';
export validateTargetDirectory from './validateTargetDirectory.js';
export writeIndex from './writeIndex.js';
export writeIndexCli from './writeIndexCli.js';
export createIndexCode from './createIndexCode';
export findIndexFiles from './findIndexFiles';
export log from './log';
export readDirectory from './readDirectory';
export sortByDepth from './sortByDepth';
export validateTargetDirectory from './validateTargetDirectory';
export writeIndex from './writeIndex';
export writeIndexCli from './writeIndexCli';
+3 -2
View File
@@ -78,7 +78,8 @@ export default (directoryPath, options = {}) => {
const {
extensions = ['js'],
config = {}
config = {},
ignoreDirectories = false
} = options;
let children;
@@ -111,7 +112,7 @@ export default (directoryPath, options = {}) => {
return false;
}
if (isDirectory && !hasIndex(absolutePath)) {
if (isDirectory && (!hasIndex(absolutePath) || ignoreDirectories)) {
return false;
}
+1
View File
@@ -50,6 +50,7 @@ export default (directoryPaths, options = {}) => {
const siblings = readDirectory(directoryPath, {
config,
extensions: options.extensions,
ignoreDirectories: options.ignoreDirectories,
silent: options.ignoreUnsafe
});