UNPKG

@drop-in-gaming/barrelsby

Version:

Automatic TypeScript barrels for your entire code base

31 lines (28 loc) 1.17 kB
import fs from 'fs'; import { walkTree } from './fileTree'; import { Logger } from './options/logger'; import { Directory } from './interfaces/directory.interface'; import { FileTreeLocation } from './interfaces/location.interface'; export function purge(rootTree: Directory, shouldPurge: boolean, barrelName: string, logger: Logger) { // Delete any existing barrels. if (shouldPurge) { logger.debug(`Purging barrels for ${rootTree}`); walkTree(rootTree, (directory: Directory) => { directory.files .filter((file: FileTreeLocation) => { return file.name === barrelName; }) .filter(file => { const isGenerated = fs.readFileSync(file.path).includes('@file Automatically generated by barrelsby.'); return file.name === barrelName && isGenerated; }) .forEach((file: FileTreeLocation) => { logger.debug(`Deleting existing barrel @ ${file.path}`); // Delete barrel file and clean up tree model. fs.unlinkSync(file.path); directory.files.splice(directory.files.indexOf(file), 1); directory.barrel = undefined; }); }); } }