mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-24 05:06:02 +08:00
# Conflicts: # amcharts/AmCharts.d.ts # angular-gettext/angular-gettext.d.ts # angular-jwt/angular-jwt.d.ts # angular-material/angular-material.d.ts # angularjs/angular.d.ts # auth0-js/auth0-js.d.ts # aws-lambda/aws-lambda.d.ts # aws-sdk/aws-sdk.d.ts # azure-mobile-apps/azure-mobile-apps.d.ts # azure-mobile-services-client/AzureMobileServicesClient.d.ts # blessed/blessed-tests.ts # blessed/blessed.d.ts # bootbox/bootbox.d.ts # bowser/bowser.d.ts # cache-manager/cache-manager.d.ts # chai-things/chai-things.d.ts # colors/colors.d.ts # cordova/cordova-tests.ts # cordova/plugins/Contacts.d.ts # cordova/plugins/FileSystem.d.ts # couchbase/couchbase.d.ts # cucumber/cucumber-tests.ts # cucumber/cucumber.d.ts # d3/d3.d.ts # dojo/dojo.d.ts # dustjs-linkedin/dustjs-linkedin.d.ts # esprima/esprima.d.ts # express-serve-static-core/express-serve-static-core.d.ts # express-session/express-session.d.ts # fetch-mock/fetch-mock.d.ts # fs-extra/fs-extra.d.ts # fullCalendar/fullCalendar.d.ts # github-electron/github-electron.d.ts # gulp-uglify/gulp-uglify.d.ts # gulp/gulp.d.ts # highcharts/highcharts.d.ts # imap/imap.d.ts # incremental-dom/incremental-dom.d.ts # inversify/inversify.d.ts # ionic/ionic.d.ts # ioredis/ioredis.d.ts # isomorphic-fetch/isomorphic-fetch-tests.ts # jake/jake.d.ts # joi/joi.d.ts # jquery-mockjax/jquery-mockjax.d.ts # jquery/jquery.d.ts # js-data-http/js-data-http-tests.ts # js-data-http/js-data-http.d.ts # js-data/js-data.d.ts # jsdom/jsdom.d.ts # jsts/jsts-tests.ts # knex/knex.d.ts # koa-favicon/koa-favicon.d.ts # koa-router/koa-router-tests.ts # koa-router/koa-router.d.ts # lodash/lodash.d.ts # mailparser/mailparser.d.ts # maquette/maquette.d.ts # material-ui/material-ui.d.ts # matter-js/matter-js.d.ts # moment/moment.d.ts # mongoose-promise/mongoose-promise-tests.ts # mongoose/mongoose-tests.ts # mongoose/mongoose.d.ts # multer/multer.d.ts # ncp/ncp.d.ts # nock/nock.d.ts # node/node-tests.ts # node/node.d.ts # nvd3/nvd3.d.ts # object-assign/object-assign.d.ts # openlayers/openlayers.d.ts # parse/parse.d.ts # pdf/pdf.d.ts # pdfkit/pdfkit.d.ts # pg/pg.d.ts # pixi.js/pixi.js.d.ts # progress/progress.d.ts # pusher-js/pusher-js.d.ts # quill/quill-tests.ts # quill/quill.d.ts # radium/radium.d.ts # ravenjs/ravenjs-tests.ts # react-dropzone/react-dropzone.d.ts # react-mdl/react-mdl.d.ts # react-native/react-native.d.ts # react-notification-system/react-notification-system.d.ts # react-router/history-tests.ts # react-router/react-router-tests.tsx # react-router/react-router.d.ts # react-select/react-select-tests.tsx # react-select/react-select.d.ts # react/react.d.ts # redux-form/redux-form.d.ts # request-promise/request-promise.d.ts # resolve-from/resolve-from.d.ts # riot-api-nodejs/riot-api-nodejs.d.ts # sanitize-html/sanitize-html.d.ts # segment-analytics/segment-analytics.d.ts # simple-assign/simple-assign-tests.ts # simple-assign/simple-assign.d.ts # slate-irc/slate-irc.d.ts # soap/soap.d.ts # socket.io/socket.io.d.ts # sql.js/sql.js-tests.ts # sql.js/sql.js.d.ts # steam/steam.d.ts # stylus/stylus.d.ts # swiper/swiper.d.ts # tedious/tedious.d.ts # threejs/three.d.ts # twilio/twilio.d.ts # underscore/underscore.d.ts # ws/ws.d.ts # yeoman-generator/yeoman-generator.d.ts
274 lines
11 KiB
TypeScript
274 lines
11 KiB
TypeScript
// Type definitions for inversify 2.0.0-rc.12
|
|
// Project: https://github.com/inversify/InversifyJS
|
|
// Definitions by: inversify <https://github.com/inversify>
|
|
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
|
|
/// <reference types="bluebird" />
|
|
|
|
interface Symbol {
|
|
toString(): string;
|
|
valueOf(): Object;
|
|
}
|
|
|
|
interface SymbolConstructor {
|
|
(description?: string | number): Symbol;
|
|
}
|
|
|
|
declare var Symbol: SymbolConstructor;
|
|
|
|
declare namespace inversify {
|
|
|
|
namespace interfaces {
|
|
|
|
export interface KernelConstructor {
|
|
new (): Kernel;
|
|
}
|
|
|
|
export interface KernelModuleConstructor {
|
|
new (registry: (bind: Bind) => void): KernelModule;
|
|
}
|
|
|
|
export interface Newable<T> {
|
|
new (...args: any[]): T;
|
|
}
|
|
|
|
export type ServiceIdentifier<T> = (string | Symbol | Newable<T>);
|
|
|
|
export interface Binding<T> extends Clonable<Binding<T>> {
|
|
guid: string;
|
|
moduleId: string;
|
|
activated: boolean;
|
|
serviceIdentifier: ServiceIdentifier<T>;
|
|
implementationType: Newable<T>;
|
|
factory: FactoryCreator<any>;
|
|
provider: ProviderCreator<any>;
|
|
constraint: (request: Request) => boolean;
|
|
onActivation: (context: Context, injectable: T) => T;
|
|
cache: T;
|
|
dynamicValue: (context: Context) => T;
|
|
scope: number; // BindingScope
|
|
type: number; // BindingType
|
|
}
|
|
|
|
export interface Factory<T> extends Function {
|
|
(...args: any[]): (((...args: any[]) => T) | T);
|
|
}
|
|
|
|
export interface FactoryCreator<T> extends Function {
|
|
(context: Context): Factory<T>;
|
|
}
|
|
|
|
export interface Provider<T> extends Function {
|
|
(): Promise<T>;
|
|
}
|
|
|
|
export interface ProviderCreator<T> extends Function {
|
|
(context: Context): Provider<T>;
|
|
}
|
|
|
|
export interface PlanAndResolve<T> {
|
|
(args: PlanAndResolveArgs): T[];
|
|
}
|
|
|
|
export interface PlanAndResolveArgs {
|
|
multiInject: boolean;
|
|
serviceIdentifier: ServiceIdentifier<any>;
|
|
target: Target;
|
|
contextInterceptor: (contexts: Context) => Context;
|
|
}
|
|
|
|
export interface Middleware extends Function {
|
|
(next: PlanAndResolve<any>): PlanAndResolve<any>;
|
|
}
|
|
|
|
export interface Context {
|
|
guid: string;
|
|
kernel: Kernel;
|
|
plan: Plan;
|
|
addPlan(plan: Plan): void;
|
|
}
|
|
|
|
export interface ReflectResult {
|
|
[key: string]: Metadata[];
|
|
}
|
|
|
|
export interface Metadata {
|
|
key: string;
|
|
value: any;
|
|
}
|
|
|
|
export interface Plan {
|
|
parentContext: Context;
|
|
rootRequest: Request;
|
|
}
|
|
|
|
export interface Planner {
|
|
createContext(kernel: Kernel): Context;
|
|
createPlan(parentContext: Context, binding: Binding<any>, target: Target): Plan;
|
|
getBindings<T>(kernel: Kernel, serviceIdentifier: ServiceIdentifier<T>): Binding<T>[];
|
|
getActiveBindings(parentRequest: Request, target: Target): Binding<any>[];
|
|
}
|
|
|
|
export interface QueryableString {
|
|
startsWith(searchString: string): boolean;
|
|
endsWith(searchString: string): boolean;
|
|
contains(searchString: string): boolean;
|
|
equals(compareString: string): boolean;
|
|
value(): string;
|
|
}
|
|
|
|
export interface Request {
|
|
guid: string;
|
|
serviceIdentifier: ServiceIdentifier<any>;
|
|
parentContext: Context;
|
|
parentRequest: Request;
|
|
childRequests: Request[];
|
|
target: Target;
|
|
bindings: Binding<any>[];
|
|
addChildRequest(
|
|
serviceIdentifier: ServiceIdentifier<any>,
|
|
bindings: (Binding<any> | Binding<any>[]),
|
|
target: Target
|
|
): Request;
|
|
}
|
|
|
|
export interface Target {
|
|
guid: string;
|
|
serviceIdentifier: ServiceIdentifier<any>;
|
|
type: number; // TargetType
|
|
name: QueryableString;
|
|
metadata: Array<Metadata>;
|
|
hasTag(key: string): boolean;
|
|
isArray(): boolean;
|
|
matchesArray(name: string | Symbol | Newable<any>): boolean;
|
|
isNamed(): boolean;
|
|
isTagged(): boolean;
|
|
matchesNamedTag(name: string): boolean;
|
|
matchesTag(key: string): (value: any) => boolean;
|
|
}
|
|
|
|
export interface Resolver {
|
|
resolve<T>(context: Context): T;
|
|
}
|
|
|
|
export interface Kernel {
|
|
guid: string;
|
|
parent: Kernel;
|
|
bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;
|
|
unbind(serviceIdentifier: ServiceIdentifier<any>): void;
|
|
unbindAll(): void;
|
|
isBound(serviceIdentifier: ServiceIdentifier<any>): boolean;
|
|
get<T>(serviceIdentifier: ServiceIdentifier<T>): T;
|
|
getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string): T;
|
|
getTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string, value: any): T;
|
|
getAll<T>(serviceIdentifier: ServiceIdentifier<T>): T[];
|
|
getAllNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string): T[];
|
|
getAllTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string, value: any): T[];
|
|
load(...modules: KernelModule[]): void;
|
|
unload(...modules: KernelModule[]): void;
|
|
applyMiddleware(...middleware: Middleware[]): void;
|
|
getServiceIdentifierAsString(serviceIdentifier: ServiceIdentifier<any>): string;
|
|
snapshot(): void;
|
|
restore(): void;
|
|
}
|
|
|
|
export interface Bind extends Function {
|
|
<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;
|
|
}
|
|
|
|
export interface KernelModule {
|
|
guid: string;
|
|
registry: (bind: Bind) => void;
|
|
}
|
|
|
|
export interface KernelSnapshot {
|
|
bindings: Lookup<Binding<any>>;
|
|
middleware: PlanAndResolve<any>;
|
|
}
|
|
|
|
export interface Clonable<T> {
|
|
clone(): T;
|
|
}
|
|
|
|
export interface Lookup<T> extends Clonable<Lookup<T>> {
|
|
add(serviceIdentifier: ServiceIdentifier<any>, value: T): void;
|
|
get(serviceIdentifier: ServiceIdentifier<any>): Array<T>;
|
|
remove(serviceIdentifier: ServiceIdentifier<any>): void;
|
|
removeByModuleId(moduleId: string): void;
|
|
hasKey(serviceIdentifier: ServiceIdentifier<any>): boolean;
|
|
}
|
|
|
|
export interface KeyValuePair<T> {
|
|
serviceIdentifier: ServiceIdentifier<any>;
|
|
value: Array<T>;
|
|
guid: string;
|
|
}
|
|
|
|
export interface BindingInSyntax<T> {
|
|
inSingletonScope(): BindingWhenOnSyntax<T>;
|
|
inTransientScope(): BindingWhenOnSyntax<T>;
|
|
}
|
|
|
|
export interface BindingInWhenOnSyntax<T> extends BindingInSyntax<T>, BindingWhenOnSyntax<T> { }
|
|
|
|
export interface BindingOnSyntax<T> {
|
|
onActivation(fn: (context: Context, injectable: T) => T): BindingWhenSyntax<T>;
|
|
}
|
|
|
|
export interface BindingToSyntax<T> {
|
|
to(constructor: { new (...args: any[]): T; }): BindingInWhenOnSyntax<T>;
|
|
toSelf(): BindingInWhenOnSyntax<T>;
|
|
toConstantValue(value: T): BindingWhenOnSyntax<T>;
|
|
toDynamicValue(func: (context: Context) => T): BindingWhenOnSyntax<T>;
|
|
toConstructor<T2>(constructor: Newable<T2>): BindingWhenOnSyntax<T>;
|
|
toFactory<T2>(factory: FactoryCreator<T2>): BindingWhenOnSyntax<T>;
|
|
toFunction(func: T): BindingWhenOnSyntax<T>;
|
|
toAutoFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
|
|
toProvider<T2>(provider: ProviderCreator<T2>): BindingWhenOnSyntax<T>;
|
|
}
|
|
|
|
export interface BindingWhenOnSyntax<T> extends BindingWhenSyntax<T>, BindingOnSyntax<T> { }
|
|
|
|
export interface BindingWhenSyntax<T> {
|
|
when(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
|
|
whenTargetNamed(name: string): BindingOnSyntax<T>;
|
|
whenTargetTagged(tag: string, value: any): BindingOnSyntax<T>;
|
|
whenInjectedInto(parent: (Function | string)): BindingOnSyntax<T>;
|
|
whenParentNamed(name: string): BindingOnSyntax<T>;
|
|
whenParentTagged(tag: string, value: any): BindingOnSyntax<T>;
|
|
whenAnyAncestorIs(ancestor: (Function | string)): BindingOnSyntax<T>;
|
|
whenNoAncestorIs(ancestor: (Function | string)): BindingOnSyntax<T>;
|
|
whenAnyAncestorNamed(name: string): BindingOnSyntax<T>;
|
|
whenAnyAncestorTagged(tag: string, value: any): BindingOnSyntax<T>;
|
|
whenNoAncestorNamed(name: string): BindingOnSyntax<T>;
|
|
whenNoAncestorTagged(tag: string, value: any): BindingOnSyntax<T>;
|
|
whenAnyAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
|
|
whenNoAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
|
|
}
|
|
|
|
}
|
|
|
|
export var Kernel: interfaces.KernelConstructor;
|
|
export var KernelModule: interfaces.KernelModuleConstructor;
|
|
export var decorate: (decorator: (ClassDecorator | ParameterDecorator), target: any, parameterIndex?: number) => void;
|
|
export function injectable(): (typeConstructor: any) => void;
|
|
export function tagged(metadataKey: string, metadataValue: any): (target: any, targetKey: string, index?: number) => any;
|
|
export function named(name: string): (target: any, targetKey: string, index?: number) => any;
|
|
export function targetName(name: string): (target: any, targetKey: string, index: number) => any;
|
|
export function unmanaged(): (target: any, targetKey: string, index: number) => any;
|
|
export function inject(serviceIdentifier: interfaces.ServiceIdentifier<any>): (target: any, targetKey: string, index?: number) => any;
|
|
export function guid(): string;
|
|
|
|
export function multiInject(
|
|
serviceIdentifier: interfaces.ServiceIdentifier<any>
|
|
): (target: any, targetKey: string, index?: number) => any;
|
|
|
|
// constraint helpers
|
|
export var traverseAncerstors: (request: interfaces.Request, constraint: (request: interfaces.Request) => boolean) => boolean;
|
|
export var taggedConstraint: (tag: string) => (value: any) => (request: interfaces.Request) => boolean;
|
|
export var namedConstraint: (value: any) => (request: interfaces.Request) => boolean;
|
|
export var typeConstraint: (type: (Function | string)) => (request: interfaces.Request) => boolean;
|
|
}
|
|
|
|
export = inversify;
|