From 0c344d845c1b6d51c7194675949527fd3278a47d Mon Sep 17 00:00:00 2001 From: Pedro Nauck Date: Fri, 7 Sep 2018 02:04:32 -0300 Subject: [PATCH] fix(docz-core): chokidar performance improvements --- packages/docz-core/src/DataServer.ts | 5 ++++- packages/docz-core/src/states/config.ts | 5 ++++- packages/docz-core/src/states/entries.ts | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/docz-core/src/DataServer.ts b/packages/docz-core/src/DataServer.ts index 7dce81331..3fa30d0ef 100644 --- a/packages/docz-core/src/DataServer.ts +++ b/packages/docz-core/src/DataServer.ts @@ -67,7 +67,10 @@ export class DataServer { if (this.server) { this.server.on('connection', socket => { const close = this.handleConnection(socket) - this.server && this.server.on('close', async () => close()) + + this.server!.on('close', async () => { + await close() + }) }) } } diff --git a/packages/docz-core/src/states/config.ts b/packages/docz-core/src/states/config.ts index 03b146a5d..516a7f3e1 100644 --- a/packages/docz-core/src/states/config.ts +++ b/packages/docz-core/src/states/config.ts @@ -44,8 +44,11 @@ const updateConfig = (config: Config) => async (p: Params) => { export const state = (config: Config): State => ({ init: updateConfig(config), update: async params => { - const watcher = chokidar.watch(finds('docz')) const update = updateConfig(config) + const watcher = chokidar.watch(finds('docz'), { + cwd: paths.root, + persistent: true, + }) watcher.on('add', async () => update(params)) watcher.on('change', async () => update(params)) diff --git a/packages/docz-core/src/states/entries.ts b/packages/docz-core/src/states/entries.ts index ed5449351..94d64fb08 100644 --- a/packages/docz-core/src/states/entries.ts +++ b/packages/docz-core/src/states/entries.ts @@ -27,8 +27,12 @@ const updateEntries = (entries: Entries) => async (p: Params) => { export const state = (config: Config): State => { const entries = new Entries(config) - const watcher = chokidar.watch(config.files, { + const src = path.relative(paths.root, config.src) + const files = path.join(src, config.files) + const watcher = chokidar.watch(files, { + cwd: paths.root, ignored: /(^|[\/\\])\../, + persistent: true, }) return {