write-index

A utility to help build index files in directories that imports and exports sibling files in ES6 format

Usage no npm install needed!

<script type="module">
  import writeIndex from 'https://cdn.skypack.dev/write-index';
</script>

README

write-index

npm Downloads

write-index creates and writes index.js files in specified directories that imports and exports sibling files in ES6 format.

Examples


Directory with sibling files

utils-/
    - bar.js
    - foo.js

Run command idx-compose (with no arguments)

Finds or creates index.js, then outputs the file exports as such

utils-/
    - bar.js
    - foo.js
    - index.js (newly created)

/* utils/index.js contents */
export { default as bar } from './bar.js';
export { default as foo } from './foo.js';

When you need to import from another directory

In this example we want to import all files from our utils into the root index.js

-/ (project root)
    - index.js
    - utils-/
        - bar.js
        - foo.js

Run command idx-compose fromDir toDir

In this case idx-compose ./utils/ ./

Updates this index.js file with

/* ./index.js contents */
export { default as baz } from './utils/baz.js';
export { default as barf } from './utils/barf.js';

Usage


Installation

npm install write-index

Cli options

Usage: idx-compose [options] [importFrom] [pathToIndex]

Example: idx-compose -e whatever.js ./utils ./

Creates index.js from sibling files or directory specified

Options:
  -v, --version           output the current version

  -c, --config            use config file arguments
                          - ignores cli arguments in favor of an .idxrc file

  -e, --entryFile <name>  specify entry file name
                          - default: "index.js"

  -h, --help              output usage information

Changing the entryFile


By default we create or update index.js, but you can override this behavior with the -e or --entryFile options
using the command idx-compose -e <name>.js

Config file


This allows you to specifiy multiple directories to update using
idx-compose -c or idx-compose --config

Create an .idxrc file in the root of your project

Note: This ignores any other arguments coming from the cli

Arguments

  • dirs: An array of specified directories to update on command
    • pathToIndex - where to create and/or update the index.js files
    • importFrom - the directory location we want to import files from
  • entryFile: name to call the entryFile if you want to override index.js

Example .idxrc file

{
    "dirs": [
        {
            "pathToIndex": "./",
            "importFrom": "./utils"
        },
        {
            "pathToIndex": "./utils",
            "importFrom": "./utils"
        }
    ],
    "entryFile": "index.js"
}

Dependencies