1.5.3 • Published 4 years ago

barrel-maintainer v1.5.3

Weekly downloads
10
License
MIT
Repository
github
Last release
4 years ago

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!

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

5 years ago

1.5.0

6 years ago

1.4.0

6 years ago

1.3.1

6 years ago

1.2.11

6 years ago

1.2.10

6 years ago

1.2.9

6 years ago

1.2.8

6 years ago

1.2.7

6 years ago

1.2.6

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago