UNPKG

react-cosmos

Version:

Sandbox for developing and testing UI components in isolation

21 lines (20 loc) 758 B
import { watch } from 'chokidar'; import { debounce } from 'lodash-es'; import { getDecoratorPatterns, getFixturePatterns } from './shared.js'; const DEBOUNCE_INTERVAL = 50; export async function startFixtureWatcher(config, event, callback) { const { fixturesDir, fixtureFileSuffix, ignore } = config; const FILE_PATTERNS = [ ...getFixturePatterns(fixturesDir, fixtureFileSuffix), ...getDecoratorPatterns(), ]; return new Promise(resolve => { const watcher = watch(FILE_PATTERNS, { ignored: ignore, ignoreInitial: true, cwd: config.rootDir, }) .on('ready', () => resolve(watcher)) .on(event, debounce(() => callback(), DEBOUNCE_INTERVAL)); }); }