diff --git a/packages/core/src/internal/observer.ts b/packages/core/src/internal/observer.ts index 07e03bb..e27f23f 100644 --- a/packages/core/src/internal/observer.ts +++ b/packages/core/src/internal/observer.ts @@ -1,11 +1,12 @@ import { compile } from '../index' import { CompileResult, CompileOptions } from '../compiler' -import { TokenValue } from '../types' +import { RawToken, TokenValue } from '../types' export type Watcher = (payload: CompileResult) => void type Compile = typeof compile export class ThemekitObserver { + private originalTokens: RawToken[] private options: CompileOptions private compile: Compile private watchers: Set = new Set() @@ -13,6 +14,7 @@ export class ThemekitObserver { constructor(options: CompileOptions, _compile: Compile = compile) { this.compile = _compile this.options = options + this.originalTokens = options.tokens this.run(options) } @@ -29,6 +31,11 @@ export class ThemekitObserver { this.run(this.options) } + reset() { + this.options.tokens = this.originalTokens + this.run(this.options) + } + private run(options: CompileOptions) { setImmediate(() => { this.emit(this.compile(options))