UNPKG

@virtualstate/examples

Version:
54 lines 1.61 kB
import { DoneSymbol } from "./source.interface.js"; export const SourceURLSymbol = Symbol("Source URL"); export const SourceInterfaceURLSymbol = Symbol("SourceInterface URL"); export const SourceInterfaceSymbol = Symbol("Source Interface"); export const SourceSymbol = Symbol("Source"); export const StateSymbol = Symbol("State"); export { DoneSymbol }; export function isStateVNode(value) { return value?.reference === StateSymbol; } function createState(source) { return { reference: StateSymbol, source }; } export async function* Transform(context, container) { // console.log({ // context, // state: container?.source, // }); if (!container) { // console.log("Yielding!"); return yield createState(container?.source ?? { currentThing: 1, step: "default state", updatedAt: Date.now() }); } const { source: state } = container; const timeSince = Date.now() - container.source.updatedAt; if (timeSince > 1000) { yield createState({ currentThing: state.currentThing + 1, step: "time since changed past 1000", updatedAt: Date.now() }); await new Promise(resolve => setTimeout(resolve, 800)); } if (state.currentThing > 3) { yield createState({ ...state, step: "done", [DoneSymbol]: true }); } // // console.log({ // context, // state: container?.source, // }); // console.log("Done!"); } //# sourceMappingURL=source.transform.js.map