import { Receipt } from "./interface.ts"; /** * Formats receipt to a string representation. */ export const toString = < Command extends NonNullable, Result extends NonNullable, Effect, >( receipt: Receipt, ) => JSON.stringify(receipt); /** * Parses receipt from a string representation. */ export const fromString = < Command extends NonNullable, Result extends NonNullable, Effect, >( source: string, ): Receipt => JSON.parse(source); export const fromStringStream = < Command extends NonNullable, Result extends NonNullable, Effect, >() => new TransformStream>({ transform(source, controller) { controller.enqueue(fromString(source)); }, }); export const toStringStream = < Command extends NonNullable, Result extends NonNullable, Effect, >() => new TransformStream, string>({ transform(source, controller) { controller.enqueue(toString(source)); }, });