• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript inversify-binding-decorators.makeProvideDecorator函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap