diff --git a/src/lib/types/cfg/provider.ts b/src/lib/types/cfg/provider.ts index 5f35f55..0eccc9a 100644 --- a/src/lib/types/cfg/provider.ts +++ b/src/lib/types/cfg/provider.ts @@ -6,13 +6,14 @@ export type Value = string | number | boolean; -export type Provider = Value | (() => Value); -export type AsyncProvider = Provider | Promise; +export type Provider = T| (() => T); +export type AsyncProvider = Provider | Promise; // ===================== // Providers específicos // ===================== +export type ValueProvider = Provider export type BooleanProvider = Provider; export type StringProvider = Provider; export type NumberProvider = Provider; @@ -22,7 +23,7 @@ export type NumberProvider = Provider; // Helper sincrónico // ===================== export const provide = { - value(p: Provider): Value { + value (p: ValueProvider): Value { return typeof p === 'function' ? (p as () => Value)() : p; }, string: (p: ValueProvider) => String(provide.value(p)), @@ -35,9 +36,9 @@ export const provide = { // Helper asíncrono // ===================== export const provideAsync = { - async value(p: AsyncValueProvider): Promise { + async value(p: AsyncProvider): Promise { if (typeof p === 'function') { - return (p as () => Value | Promise)(); + return (p as () => T | Promise)(); } return p; },