UNPKG

scriptable-testlab

Version:

A lightweight, efficient tool designed to manage and update scripts for Scriptable.

62 lines 1.98 kB
import { EventEmitter } from "events"; const STATE_CHANGE_EVENT = "stateChange"; var SystemState; ((SystemState2) => { const emitter = new EventEmitter(); let state = {}; function getState() { return { ...state }; } SystemState2.getState = getState; function setState(newState) { state = { ...state, ...newState }; emitter.emit(STATE_CHANGE_EVENT, getState()); } SystemState2.setState = setState; function reset() { state = {}; emitter.emit(STATE_CHANGE_EVENT, getState()); } SystemState2.reset = reset; function getAlertResponse() { return state.alertResponse; } SystemState2.getAlertResponse = getAlertResponse; function setAlertResponse(response) { setState({ alertResponse: response }); } SystemState2.setAlertResponse = setAlertResponse; function getTextFieldValue(fieldId) { return state.textFieldValues?.[fieldId]; } SystemState2.getTextFieldValue = getTextFieldValue; function setTextFieldValue(fieldId, value) { const textFieldValues = { ...state.textFieldValues || {} }; textFieldValues[fieldId] = value; setState({ textFieldValues }); } SystemState2.setTextFieldValue = setTextFieldValue; function addEventListener(event, listener) { if (event !== STATE_CHANGE_EVENT) { throw new Error(`Invalid event: ${event}`); } emitter.addListener(event, listener); } SystemState2.addEventListener = addEventListener; function removeEventListener(event, listener) { if (event !== STATE_CHANGE_EVENT) { throw new Error(`Invalid event: ${event}`); } emitter.removeListener(event, listener); } SystemState2.removeEventListener = removeEventListener; function subscribe(handler) { addEventListener(STATE_CHANGE_EVENT, handler); return () => removeEventListener(STATE_CHANGE_EVENT, handler); } SystemState2.subscribe = subscribe; })(SystemState || (SystemState = {})); export { SystemState }; //# sourceMappingURL=system.js.map