cidstructurable con los tests

master
dev 12 months ago
parent 9254730291
commit d452ecdb2b

@ -6,13 +6,14 @@
export type Value = string | number | boolean; export type Value = string | number | boolean;
export type Provider = Value | (() => Value); export type Provider <T> = T| (() => T);
export type AsyncProvider = Provider | Promise<Value>; export type AsyncProvider <T> = Provider<T> | Promise<T>;
// ===================== // =====================
// Providers específicos // Providers específicos
// ===================== // =====================
export type ValueProvider = Provider<Value>
export type BooleanProvider = Provider<boolean>; export type BooleanProvider = Provider<boolean>;
export type StringProvider = Provider<string>; export type StringProvider = Provider<string>;
export type NumberProvider = Provider<number>; export type NumberProvider = Provider<number>;
@ -22,7 +23,7 @@ export type NumberProvider = Provider<number>;
// Helper sincrónico // Helper sincrónico
// ===================== // =====================
export const provide = { export const provide = {
value(p: Provider): Value { value (p: ValueProvider): Value {
return typeof p === 'function' ? (p as () => Value)() : p; return typeof p === 'function' ? (p as () => Value)() : p;
}, },
string: (p: ValueProvider) => String(provide.value(p)), string: (p: ValueProvider) => String(provide.value(p)),
@ -35,9 +36,9 @@ export const provide = {
// Helper asíncrono // Helper asíncrono
// ===================== // =====================
export const provideAsync = { export const provideAsync = {
async value(p: AsyncValueProvider): Promise<Value> { async value<T>(p: AsyncProvider<T>): Promise<T> {
if (typeof p === 'function') { if (typeof p === 'function') {
return (p as () => Value | Promise<Value>)(); return (p as () => T | Promise<T>)();
} }
return p; return p;
}, },

Loading…
Cancel
Save

Powered by TurnKey Linux.