UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

39 lines (34 loc) 980 B
import {NodeEvent} from '../../../poly/NodeEvent'; import {NodeBaseState} from './Base'; import {Poly} from '../../../Poly'; import {NodeContext} from '../../../poly/NodeContext'; export class NodeErrorState<NC extends NodeContext> extends NodeBaseState<NC> { private _message: string | undefined; set(message: string | undefined) { if (this._message != message) { if (message) { Poly.error(`[${this.node.path()}] error: '${message}' (from '${this._message}')`); } else { Poly.warn(`[${this.node.path()}] clear error`); } this._message = message; this.onUpdate(); } } message() { return this._message; } clear() { this.set(undefined); } active(): boolean { return this._message != null; } protected onUpdate() { if (this._message != null) { // console.warn("new error", message, this.self.path()) this.node._setContainer(null as any /*, `from error '${this._message}'`*/); } this.node.emit(NodeEvent.ERROR_UPDATED); } }