cliffordfajardo / turbo-stream

A streaming data transport format that aims to support built-in features such as Promises, Dates, RegExps, Maps, Sets and more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Turbo Stream
turbo-stream's badge

A streaming data transport format that aims to support built-in features such as Promises, Dates, RegExps, Maps, Sets and more.

Shout Out!

Shout out to Rich Harris and his https://github.com/rich-harris/devalue project. Devalue has heavily influenced this project and portions of the code have been directly lifted from it. I highly recommend checking it out if you need something more cusomizable or without streaming support.

Installation

npm install turbo-stream

Usage

import { decode, encode } from "turbo-stream";

const encodedStream = encode({ answer: Promise.resolve(42) });
const decoded = await decode(encodedStream);
console.log(decoded.value.answer); // a Promise
console.log(await decoded.value.answer); // 42
await decoded.done; // wait for the stream to finish

Stackblitz: https://stackblitz.com/edit/stackblitz-starters-2wm7dh?file=index.js

About

A streaming data transport format that aims to support built-in features such as Promises, Dates, RegExps, Maps, Sets and more.


Languages

Language:TypeScript 100.0%