diff --git a/packages/docz-core/src/DataServer.ts b/packages/docz-core/src/DataServer.ts index 3fa30d0ef..982b074a4 100644 --- a/packages/docz-core/src/DataServer.ts +++ b/packages/docz-core/src/DataServer.ts @@ -60,7 +60,7 @@ export class DataServer { ) ) - await touch(paths.db, JSON.stringify(this.state, null, 2)) + this.updateStateFile() } public async listen(): Promise { @@ -97,6 +97,11 @@ export class DataServer { return (key: string, val: any): void => { this.state[key] = val send(`state.${key}`, val) + this.updateStateFile() } } + + private async updateStateFile(): Promise { + await touch(paths.db, JSON.stringify(this.state, null, 2)) + } } diff --git a/packages/docz-core/src/states/config.ts b/packages/docz-core/src/states/config.ts index 01fd8a4ef..6f4c2a3ed 100644 --- a/packages/docz-core/src/states/config.ts +++ b/packages/docz-core/src/states/config.ts @@ -1,7 +1,6 @@ import * as fs from 'fs-extra' import { load, finds } from 'load-cfg' import chokidar from 'chokidar' -import equal from 'fast-deep-equal' import get from 'lodash.get' import { Params, State } from '../DataServer' @@ -36,18 +35,13 @@ const getInitialConfig = (config: Config): Payload => { } } -const updateConfig = (config: Config) => async (p: Params) => { - const old = p.state.config - const newConfig = load('docz', getInitialConfig(config), true, false) - - if (newConfig && !equal(old, newConfig)) { - p.setState('config', newConfig) - } -} +const updateConfig = (config: Config) => async ({ setState }: Params) => + setState('config', load('docz', getInitialConfig(config), true, false)) export const state = (config: Config): State => { const watcher = chokidar.watch(finds('docz'), { cwd: paths.root, + ignored: /(^|[\/\\])\../, persistent: true, }) @@ -55,10 +49,11 @@ export const state = (config: Config): State => { init: updateConfig(config), update: async params => { const update = updateConfig(config) + const fn = async () => update(params) - watcher.on('add', async () => update(params)) - watcher.on('change', async () => update(params)) - watcher.on('unlink', async () => update(params)) + watcher.on('add', fn) + watcher.on('change', fn) + watcher.on('unlink', fn) return () => watcher.close() }, diff --git a/packages/rehype-docz/package.json b/packages/rehype-docz/package.json index 00d325ea7..799923bd8 100644 --- a/packages/rehype-docz/package.json +++ b/packages/rehype-docz/package.json @@ -22,7 +22,7 @@ "tslint": "tslint --project ." }, "dependencies": { - "@babel/generator": "^7.1.0", + "@babel/generator": "^7.0.0", "@babel/parser": "^7.1.0", "@babel/traverse": "^7.1.0", "codesandboxer-fs": "^0.3.1", diff --git a/yarn.lock b/yarn.lock index 8c0538019..50d329dac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -27,7 +27,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.1.0": +"@babel/generator@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" dependencies: