barrel-maintainer
TypeScript icon, indicating that this package has built-in type declarations

1.5.3 • Public • Published

Barrel Maintainer

npm version

Automatically maintains barrels in real-time.

Automated real-time barrel maintenance

Video Overview

Installation

npm install -g barrel-maintainer

Usage

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:

/* barrel:ignore */
export function log(message: string) {
    console.log(message);
}

Exporting a Subset of a File's Exports

Given the following setup:

// 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:

// index.js
export {ClassA} from "./classes";

These kind of changes won't be overwritten by the code manipulation.

Api

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();

About

This project uses ts-morph to navigate and manipulate source code.

Disclaimer

This library will modify and delete source code. I am not responsible for any of its modifications or deletions!

Always use version control to verify and to be able to easily revert the changes it makes!

Package Sidebar

Install

npm i barrel-maintainer

Weekly Downloads

58

Version

1.5.3

License

MIT

Unpacked Size

43.2 kB

Total Files

39

Last publish

Collaborators

  • dsherret