From 2232f18d3330c0a373523b2352febcd6bc35843f Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Sun, 3 May 2020 14:45:36 +0100 Subject: [PATCH] tweak file watching (#112) --- packages/tailwindcss-class-names/src/index.js | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/tailwindcss-class-names/src/index.js b/packages/tailwindcss-class-names/src/index.js index 27d2f94..82205d9 100644 --- a/packages/tailwindcss-class-names/src/index.js +++ b/packages/tailwindcss-class-names/src/index.js @@ -114,27 +114,34 @@ export default async function getClassNames( let watcher function watch(files = []) { - if (watcher) watcher.close() + unwatch() watcher = chokidar - .watch([CONFIG_GLOB, ...files], { cwd }) + .watch(files, { cwd }) .on('change', handleChange) .on('unlink', handleChange) } + function unwatch() { + if (watcher) { + watcher.close() + } + } async function handleChange() { - const prevDeps = result ? result.dependencies : [] + const prevDeps = result ? [result.configPath, ...result.dependencies] : [] try { result = await run() } catch (error) { if (error instanceof TailwindConfigError) { onChange({ error }) } else { + unwatch() onChange(null) } return } - if (!arraysEqual(prevDeps, result.dependencies)) { - watch(result.dependencies) + const newDeps = [result.configPath, ...result.dependencies] + if (!arraysEqual(prevDeps, newDeps)) { + watch(newDeps) } onChange(result) } @@ -143,11 +150,10 @@ export default async function getClassNames( try { result = await run() } catch (_) { - watch() return null } - watch(result.dependencies) + watch([result.configPath, ...result.dependencies]) return result }