scriptable-testlab
Version:
A lightweight, efficient tool designed to manage and update scripts for Scriptable.
85 lines • 2.99 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var system_exports = {};
__export(system_exports, {
SystemState: () => SystemState
});
module.exports = __toCommonJS(system_exports);
var import_events = require("events");
const STATE_CHANGE_EVENT = "stateChange";
var SystemState;
((SystemState2) => {
const emitter = new import_events.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 = {}));
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
SystemState
});
//# sourceMappingURL=system.js.map