From b6050515afb9a44211c49f9a5cf16ef8679705bf Mon Sep 17 00:00:00 2001 From: Prizm Date: Thu, 6 Aug 2026 09:40:12 -0500 Subject: [PATCH] feat: add CanBeSource type --- docs/api/reactivity-utility.md | 4 +++- init.luau | 1 + src/init.luau | 1 + src/lib.luau | 1 + src/read.luau | 4 +++- 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/api/reactivity-utility.md b/docs/api/reactivity-utility.md index b8bff4d..4e8756c 100644 --- a/docs/api/reactivity-utility.md +++ b/docs/api/reactivity-utility.md @@ -74,7 +74,9 @@ Utility used to read a value that is either a primitive or a source. - **Type** ```luau - function read(value: T | () -> T): T + type CanBeSource = T | (() -> T) + + function read(value: CanBeSource): T ``` ## batch() diff --git a/init.luau b/init.luau index a9ae8e0..db8caab 100644 --- a/init.luau +++ b/init.luau @@ -2,6 +2,7 @@ local vide = require "@self/src/lib" export type source = vide.source export type Source = vide.Source +export type CanBeSource = read.CanBeSource export type context = vide.context export type Context = vide.Context export type Instances = vide.Instances diff --git a/src/init.luau b/src/init.luau index c0fbe0e..9c8cfe3 100644 --- a/src/init.luau +++ b/src/init.luau @@ -4,6 +4,7 @@ local vide = require("@self/lib") export type source = vide.source export type Source = vide.Source +export type CanBeSource = vide.CanBeSource export type context = vide.context export type Context = vide.Context export type Instances = vide.Instances diff --git a/src/lib.luau b/src/lib.luau index a8a3885..cfb0cb5 100644 --- a/src/lib.luau +++ b/src/lib.luau @@ -25,6 +25,7 @@ local flags = require "./flags" export type Source = source.Source export type source = Source +export type CanBeSource = read.CanBeSource export type Context = context.Context export type context = Context export type Instances = create.Instances diff --git a/src/read.luau b/src/read.luau index 3764315..cc918e7 100644 --- a/src/read.luau +++ b/src/read.luau @@ -1,4 +1,6 @@ -local function read(value: T | () -> T): T +export type CanBeSource = T | (() -> T) + +local function read(value: CanBeSource): T return if type(value) == "function" then value() else value end