@xstate/inspect
Version:
XState inspection utilities
38 lines (33 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _tslib = require('./_virtual/_tslib.js');
var utils = require('./utils.js');
function selectivelyStringify(value, keys, replacer) {
var e_1, _a;
var selected = {};
try {
for (var keys_1 = _tslib.__values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
var key = keys_1_1.value;
selected[key] = value[key];
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
}
finally { if (e_1) throw e_1.error; }
}
var serialized = JSON.parse(utils.stringify(selected, replacer));
return utils.stringify(_tslib.__assign(_tslib.__assign({}, value), serialized));
}
function stringifyState(state, replacer) {
state.machine; state.configuration; state.history; var stateToStringify = _tslib.__rest(state, ["machine", "configuration", "history"]);
return selectivelyStringify(stateToStringify, ['context', 'event', '_event'], replacer);
}
function stringifyMachine(machine, replacer) {
return selectivelyStringify(machine.definition, ['context'], replacer);
}
exports.selectivelyStringify = selectivelyStringify;
exports.stringifyMachine = stringifyMachine;
exports.stringifyState = stringifyState;