2016-01-06 23:08:10 +00:00
2016-01-06 17:55:09 +00:00
2016-01-06 17:55:09 +00:00
2016-01-06 13:53:54 +00:00
2016-01-06 13:53:54 +00:00
2016-01-06 13:53:54 +00:00
2016-01-06 13:53:54 +00:00
2016-01-06 17:59:14 +00:00
2016-01-06 23:08:10 +00:00

create-index

NPM version Travis build status js-canonical-style

create-index program creates (and maintains) ES6 ./index.js file in target directories that imports and exports sibling files and directories.

Implementation

create-index program will look into the target directory.

If there is no ./index.js, it will create a new file, e.g.

'create index';

Created index file must start with 'create index';\n\n. This is used to make sure that create-index does not accidentally overwrite your local files.

If there are sibling files, index file will import them and export, e.g.

children-directories-and-files git:(master) ✗ ls -lah
total 0
drwxr-xr-x   5 gajus  staff   170B  6 Jan 15:39 .
drwxr-xr-x  10 gajus  staff   340B  6 Jan 15:53 ..
drwxr-xr-x   2 gajus  staff    68B  6 Jan 15:29 bar
drwxr-xr-x   2 gajus  staff    68B  6 Jan 15:29 foo
-rw-r--r--   1 gajus  staff     0B  6 Jan 15:29 foo.js

Given the above directory contents, ./index.js will be:

'create index';

import bar from './bar';
import foo from './foo.js';

export {
    bar,
    foo
};

When file has the same name as a sibling directory, file import takes precedence.

Directories that do not have ./index.js in themselves will be excluded.

When run again, create-index will update existing ./index.js if it starts with 'create index';\n\n.

If create-index is executed against a directory that contains ./index.js, which does not start with 'create index';\n\n, an error will be thrown.

Usage

Using CLI Program

npm install create-index

create-index ./directory1 ./directory2 ./directory3 ...

Using create-index Programmatically

import {
    writeIndex
} from 'create-index';

/**
 * @type {Function}
 * @param {Array<string>} directoryPaths
 * @throws {Error} Directory "..." does not exist.
 * @throws {Error} "..." is not a directory.
 * @throws {Error} "..." unsafe index.
 * @returns {boolean}
 */
writeIndex;

Note that the writeIndex function is synchronous.

Gulp

Since gulp can ran arbitrary JavaScript code, there is no need for a separate plugin. See Using create-index Programmatically.

import {
    writeIndex
} from 'create-index';

gulp.task('create-index', () => {
    writeIndex(['./target_directory']);
});

Note that the writeIndex function is synchronous.

S
Description
No description provided
Readme BSD-3-Clause
148 KiB
Languages
JavaScript 100%