@sustain/core
Version:
Sustain is a Framework that is barely used despedcies to make stable and sustainable apps
27 lines (26 loc) • 1.05 kB
TypeScript
import { Type } from './type';
export declare class InjectionToken {
injectionIdentifier: string;
constructor(injectionIdentifier: string);
}
export declare type Factory<T> = () => T;
export declare type Token<T> = Type<T> | any;
export interface BaseProvider<T> {
provide: Token<T>;
}
export interface ClassProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useClass: Type<T>;
}
export interface ValueProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useValue: T;
}
export interface FactoryProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useFactory: Factory<T>;
}
export declare type Provider<T> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T>;
export declare function isClassProvider<T>(provider: BaseProvider<T>): provider is ClassProvider<T>;
export declare function isValueProvider<T>(provider: BaseProvider<T>): provider is ValueProvider<T>;
export declare function isFactoryProvider<T>(provider: BaseProvider<T>): provider is FactoryProvider<T>;