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 Provider = Value | (() => Value);
export type AsyncProvider = Provider | Promise<Value>;
export type Provider <T> = T| (() => T);
export type AsyncProvider <T> = Provider<T> | Promise<T>;
// =====================
// Providers específicos
// =====================
export type ValueProvider = Provider<Value>
export type BooleanProvider = Provider<boolean>;
export type StringProvider = Provider<string>;
export type NumberProvider = Provider<number>;
@ -22,7 +23,7 @@ export type NumberProvider = Provider<number>;
// 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<Value> {
async value<T>(p: AsyncProvider<T>): Promise<T> {
if (typeof p === 'function') {
return (p as () => Value | Promise<Value>)();
return (p as () => T | Promise<T>)();
}
return p;
},

Loading…
Cancel
Save

Powered by TurnKey Linux.