當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript inversify.decorate函數代碼示例

本文整理匯總了TypeScript中inversify.decorate函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript decorate函數的具體用法?TypeScript decorate怎麽用?TypeScript decorate使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了decorate函數的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: function

    return function (target: any) {

        let currentMetadata: interfaces.ControllerMetadata = {
            middleware: middleware,
            path: path,
            target: target
        };

        decorate(injectable(), target);
        Reflect.defineMetadata(METADATA_KEY.controller, currentMetadata, target);

        // We need to create an array that contains the metadata of all
        // the controllers in the application, the metadata cannot be
        // attached to a controller. It needs to be attached to a global
        // We attach metadata to the Reflect object itself to avoid
        // declaring additonal globals. Also, the Reflect is avaiable
        // in both node and web browsers.
        const previousMetadata: interfaces.ControllerMetadata[] = Reflect.getMetadata(
            METADATA_KEY.controller,
            Reflect
        ) || [];

        const newMetadata = [currentMetadata, ...previousMetadata];

        Reflect.defineMetadata(
            METADATA_KEY.controller,
            newMetadata,
            Reflect
        );

    };
開發者ID:inversify,項目名稱:inversify-express-utils,代碼行數:31,代碼來源:decorators.ts

示例2: function

  return function (target: any) {

    const isAlreadyDecorated = Reflect.hasOwnMetadata(inversify_METADATA_KEY.PARAM_TYPES, target);
    const redecorateWithInject = force === true;

    if (redecorateWithInject === true && isAlreadyDecorated === false) {
      decorate(injectable(), target);
    } else if (redecorateWithInject === true && isAlreadyDecorated === true) {
      // Do nothing
    } else {
      try {
        decorate(injectable(), target);
      } catch (e) {
        throw new Error(
          "Cannot apply @provide decorator multiple times but is has been used " +
          `multiple times in ${target.name} ` +
          "Please use @provide(ID, true) if you are trying to declare multiple bindings!"
        );
      }
    }

    const currentMetadata: interfaces.ProvideSyntax = {
      constraint: (bind: inversifyInterfaces.Bind, bindTarget: any) => bind(serviceIdentifier).to(bindTarget),
      implementationType: target
    };

    const previousMetadata: interfaces.ProvideSyntax[] = Reflect.getMetadata(
      METADATA_KEY.provide,
      Reflect
    ) || [];

    const newMetadata = [currentMetadata, ...previousMetadata];

    Reflect.defineMetadata(
      METADATA_KEY.provide,
      newMetadata,
      Reflect
    );
    return target;

  };
開發者ID:inversify,項目名稱:inversify-binding-decorators,代碼行數:41,代碼來源:provide.ts

示例3: Container

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,代碼行數:30,代碼來源:ioc.ts

示例4: function

 return function (target: any) {
     decorate(injectable(), target);
     Reflect.defineMetadata("prettygoat:method", method, target);
     Reflect.defineMetadata("prettygoat:path", path, target);
     return target;
 };
開發者ID:tierratelematics,項目名稱:prettygoat,代碼行數:6,代碼來源:RouteDecorator.ts

示例5: decorate

} from './types';
import JsonConfigStore from './JsonConfigStore';
import QuoteAggregator from './QuoteAggregator';
import PositionService from './PositionService';
import BrokerAdapterRouter from './BrokerAdapterRouter';
import SpreadAnalyzer from './SpreadAnalyzer';
import ConfigValidator from './ConfigValidator';
import LimitCheckerFactory from './LimitCheckerFactory';
import { getActivePairStore } from './ActivePairLevelStore';
import { getChronoDB } from './chrono';
import OppotunitySearcher from './OpportunitySearcher';
import PairTrader from './PairTrader';
import SingleLegHandler from './SingleLegHandler';
import { EventEmitter } from 'events';

decorate(injectable(), EventEmitter);

const container = new Container();
container.bind<Arbitrager>(Arbitrager).toSelf();
container
  .bind<ConfigStore>(symbols.ConfigStore)
  .to(JsonConfigStore)
  .inSingletonScope();
container
  .bind<QuoteAggregator>(QuoteAggregator)
  .toSelf()
  .inSingletonScope();
container
  .bind<PositionService>(PositionService)
  .toSelf()
  .inSingletonScope();
開發者ID:HarryTmetic,項目名稱:r2,代碼行數:31,代碼來源:container.ts

示例6: function

 return function (target: any) {
     decorate(injectable(), target);
     Reflect.defineMetadata("ninjagoat:viewmodel", name, target);
     return target;
 };
開發者ID:tierratelematics,項目名稱:ninjagoat,代碼行數:5,代碼來源:ViewModelDecorator.ts

示例7: provide

 Object.keys(module).forEach((key) => {
   let entity = module[key];
   let decorator = provide(entity);
   decorate(decorator, entity);
 });
開發者ID:inversify,項目名稱:inversify-binding-decorators,代碼行數:5,代碼來源:auto_wire.ts


注:本文中的inversify.decorate函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。