@benev/slate
Version:
frontend web stuff
25 lines • 942 B
JavaScript
import { ob } from "../../../tools/ob.js";
export function history_actualize({ tree, blueprint, save_snapshot, proceed, }) {
let action_count = 1;
function recurse(specs, purpose) {
return ob(specs).map((spec, name) => ((typeof spec === "function")
? (...params) => {
const action = {
id: action_count++,
purpose: [...purpose, name],
params,
time: Date.now(),
};
tree.transmute(state => {
save_snapshot();
const setState = (newState) => { state = newState; };
spec(state, setState)(...params);
return state;
});
proceed(action);
}
: recurse(spec, [...purpose, name])));
}
return recurse(blueprint, []);
}
//# sourceMappingURL=actualize.js.map