本文整理汇总了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
);
};
示例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;
};
示例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 }
示例4: function
return function (target: any) {
decorate(injectable(), target);
Reflect.defineMetadata("prettygoat:method", method, target);
Reflect.defineMetadata("prettygoat:path", path, target);
return target;
};
示例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();
示例6: function
return function (target: any) {
decorate(injectable(), target);
Reflect.defineMetadata("ninjagoat:viewmodel", name, target);
return target;
};
示例7: provide
Object.keys(module).forEach((key) => {
let entity = module[key];
let decorator = provide(entity);
decorate(decorator, entity);
});