Mirror: 🎩 A tiny but capable push & pull stream library for TypeScript and Flow

chore: Update data structure (#155)

Changed files
+13 -6
.changeset
src
+5
.changeset/orange-melons-tease.md
···
+
---
+
'wonka': patch
+
---
+
+
Convert `Push<T>` and `Start<T>` signals to `{ tag, 0: value }` objects, which are sufficiently backwards compatible and result in slightly faster execution in v8.
+8 -6
src/helpers.ts
···
* @internal
*/
export function start<T>(talkback: TalkbackFn): Start<T> {
-
const box: any = [talkback];
-
box.tag = SignalKind.Start;
-
return box;
+
return {
+
tag: SignalKind.Start,
+
0: talkback,
+
} as Start<T>;
}
/** Wraps the passed value in a {@link Push | Push signal}.
* @internal
*/
export function push<T>(value: T): Push<T> {
-
const box: any = [value];
-
box.tag = SignalKind.Push;
-
return box;
+
return {
+
tag: SignalKind.Push,
+
0: value,
+
} as Push<T>;
}