##// END OF EJS Templates
Initial work on typescript support for the container configuration
Initial work on typescript support for the container configuration

File last commit:

r65:0c74a0572161 v1.2.13 default
r107:3725cefc8f98 ioc ts support
Show More
interfaces.ts
75 lines | 1.7 KiB | video/mp2t | TypeScriptLexer
/ src / main / ts / di / interfaces.ts
cin
changed the project structure
r49 import { isNull, isPrimitive } from "../safe";
import { ActivationContext } from "./ActivationContext";
import { Constructor, Factory } from "../interfaces";
export interface Descriptor {
activate(context: ActivationContext, name?: string);
}
export function isDescriptor(x): x is Descriptor {
return (!isPrimitive(x)) &&
(x.activate instanceof Function);
}
export interface ServiceMap {
[s: string]: Descriptor;
}
export enum ActivationType {
cin
fixed "singleton" activation type handling in container configuration...
r65 Singleton = 1,
cin
changed the project structure
r49 Container,
Hierarchy,
Context,
Call
}
export interface RegistrationWithServices {
services?: object;
}
export interface ServiceRegistration extends RegistrationWithServices {
activation?: "singleton" | "container" | "hierarchy" | "context" | "call";
params?;
inject?: object | object[];
cleanup?: (instance) => void | string;
}
export interface TypeRegistration extends ServiceRegistration {
$type: string | Constructor;
}
export interface FactoryRegistration extends ServiceRegistration {
$factory: string | Factory;
}
export interface ValueRegistration {
$value;
parse?: boolean;
}
export interface DependencyRegistration extends RegistrationWithServices {
$dependency: string;
lazy?: boolean;
optional?: boolean;
default?;
}
export function isTypeRegistration(x): x is TypeRegistration {
cin
fixed "singleton" activation type handling in container configuration...
r65 return (!isPrimitive(x)) && ("$type" in x);
cin
changed the project structure
r49 }
export function isFactoryRegistration(x): x is FactoryRegistration {
cin
fixed "singleton" activation type handling in container configuration...
r65 return (!isPrimitive(x)) && ("$factory" in x);
cin
changed the project structure
r49 }
export function isValueRegistration(x): x is ValueRegistration {
return (!isPrimitive(x)) && ("$value" in x);
}
export function isDependencyRegistration(x): x is DependencyRegistration {
return (!isPrimitive(x)) && ("$dependency" in x);
}