本文整理汇总了TypeScript中inversify-binding-decorators.makeProvideDecorator函数的典型用法代码示例。如果您正苦于以下问题:TypeScript makeProvideDecorator函数的具体用法?TypeScript makeProvideDecorator怎么用?TypeScript makeProvideDecorator使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了makeProvideDecorator函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: getDecorators
function getDecorators(kernel: inversify.interfaces.Kernel, store: Redux.Store<any>) {
// TODO: Should binding be declared by user?
let storeId = Symbol("Redux.Store");
kernel.bind<Redux.Store<any>>(storeId).toConstantValue(store);
let {
lazyInject,
lazyInjectNamed,
lazyInjectTagged,
lazyMultiInject
} = getInjectDecorators(kernel);
let provide = makeProvideDecorator(kernel);
let provideFluent = makeFluentProvideDecorator(kernel);
let provideSingleton = function(identifier: inversify.interfaces.ServiceIdentifier<any>) {
return provideFluent(identifier).inSingletonScope().done();
};
let provideNamed = function(identifier: inversify.interfaces.ServiceIdentifier<any>, name: string) {
return provideFluent(identifier).whenTargetNamed(name).done();
};
let provideTagged = function(identifier: inversify.interfaces.ServiceIdentifier<any>, key: string, value: any) {
return provideFluent(identifier).whenTargetTagged(key, value).done();
};
// Decorator used to inject props mapped from the state into a class property
let injectProps = (mapStateToProps: (state: any) => any) => {
return function(proto: any, key: string): void {
let state = store.getState();
// todo subscribe to changes
let props = mapStateToProps(state);
let resolve = () => { return props; };
proxyGetter(proto, key, resolve);
};
};
// Decorator used to bind action creators and inject them into a class property
let injectActions = (actionCreatorsIdentifier: inversify.interfaces.ServiceIdentifier<any>) => {
return function(proto: any, key: string): void {
let dispatch = store.dispatch;
let actionCreators = kernel.get(actionCreatorsIdentifier);
let boundActionCreators = Redux.bindActionCreators(actionCreators, dispatch);
let resolve = () => { return kernel.get(actionCreatorsIdentifier); };
proxyGetter(proto, key, resolve);
};
};
return {
provide,
provideNamed,
provideTagged,
provideSingleton,
provideFluent,
injectProps,
injectActions,
lazyInject,
lazyInjectNamed,
lazyInjectTagged,
lazyMultiInject
};
}
开发者ID:redux-bootstrap,项目名称:libertad,代码行数:65,代码来源:factory.ts
示例2: Container
import 'reflect-metadata'
import { Container, interfaces, decorate, injectable } from 'inversify'
import { autoProvide, makeFluentProvideDecorator, makeProvideDecorator } from 'inversify-binding-decorators'
import { Controller } from 'tsoa'
const iocContainer = new Container()
const provide = makeProvideDecorator(iocContainer)
const fluentProvider = makeFluentProvideDecorator(iocContainer)
const provideNamed = (
identifier: string | symbol | interfaces.Newable<any> | interfaces.Abstract<any>,
name: string,
) => {
return fluentProvider(identifier)
.whenTargetNamed(name)
.done()
}
const provideSingleton = (
identifier: string | symbol | interfaces.Newable<any> | interfaces.Abstract<any>,
) => {
return fluentProvider(identifier)
.inSingletonScope()
.done()
}
// Needed to make controller injectable for extended Singleton class
decorate(injectable(), Controller)
export { iocContainer, autoProvide, provide, provideSingleton, provideNamed }
开发者ID:stevenalexander,项目名称:generator-node-tsoa-api,代码行数:31,代码来源:ioc.ts
示例3: Container
import { Container, inject } from 'inversify';
import { autoProvide, makeProvideDecorator, makeFluentProvideDecorator } from 'inversify-binding-decorators';
let container = new Container();
let provide = makeProvideDecorator(container);
let fluentProvider = makeFluentProvideDecorator(container);
let provideNamed = function(identifier, name) {
return fluentProvider(identifier)
.whenTargetNamed(name)
.done();
};
export { container, autoProvide, provide, provideNamed, inject };
开发者ID:inversify,项目名称:inversify-express-example,代码行数:14,代码来源:ioc.ts
示例4: Kernel
/// <reference path="../interfaces.d.ts" />
import "reflect-metadata";
import { Kernel } from "inversify";
import { makeProvideDecorator, makeFluentProvideDecorator } from "inversify-binding-decorators";
import makeLoggerMiddleware from "inversify-logger-middleware";
let kernel = new Kernel();
let logger = makeLoggerMiddleware();
kernel.applyMiddleware(logger);
let provide = makeProvideDecorator(kernel);
let fluentProvide = makeFluentProvideDecorator(kernel);
function provideNamed(serviceIdentifier: string, named: string) {
return fluentProvide(serviceIdentifier).whenTargetNamed(named).done();
}
export { kernel, provide, fluentProvide, provideNamed };
开发者ID:haydenbbickerton,项目名称:inversify-code-samples,代码行数:19,代码来源:kernel.ts
注:本文中的inversify-binding-decorators.makeProvideDecorator函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论