Automated real-time maintenance of barrels in ES2015.
npm install barrel-maintainerbash
npm install -g barrel-maintainer
`
Usage
`bash
barrel-maintainer [options] [path]
`
Options:
* --includeRootDir - Create a barrel in the root directory.
* Quote type (specify one)
* Defaults to the quote type used in the first found import declaration in your project.
* --singleQuotes - Use single quotes.
* --doubleQuotes - Use double quotes.
* File extension for barrel (specify one)
* Defaults to whichever file type your project has more of.
* --ts - Create index.ts files.
* --js - Create index.js files.
* New lines (specify one)
* --crlf - Use carriage return line feed newlines (default on windows)
* --lf - Use line feed newlines (default elsewhere)
Ignoring Files
Add a / barrel:ignore / statement to the file:
`ts
/ barrel:ignore /
export function log(message: string) {
console.log(message);
}
`
Exporting a Subset of a File's Exports
Given the following setup:
`js
// classes.js
export ClassA {}
export ClassB {}
// index.js
export * from "./classes";
`
If you want the barrel to export a subset of the exports from classes.js, then edit the barrel to say so:
`js
// index.js
export {ClassA} from "./classes";
`
These kind of changes won't be overwritten by the code manipulation.
Api
`ts
import BarrelMaintainer from "barrel-maintainer";
const maintainer = new BarrelMaintainer("myProject/src/", {
includeRootDir: false,
fileExtension: "js", // or "ts" (extension for barrel)
quoteType: "'", // or "\""
newLineType: "\r\n" // or "\n"
});
await maintainer.updateDirectory("myProject/src/subdir");
const watcher = maintainer.watchDirectory("myProject/src");
// then later (if necessary)
watcher.stop();
``