UNPKG

tsioc

Version:

tsioc is AOP, Ioc container, via typescript decorator

31 lines (30 loc) 1.07 kB
import 'reflect-metadata'; import { ClassMetadata } from '../metadatas/index'; import { Type } from '../../types'; import { MetadataAdapter, MetadataExtends } from './DecoratorFactory'; import { Registration } from '../../Registration'; /** * class decorator. * * @export * @interface IClassDecorator */ export interface IClassDecorator<T extends ClassMetadata> { (provide: Registration<any> | symbol | string, alias?: string, singlton?: boolean, cache?: number): ClassDecorator; (metadata?: T): ClassDecorator; /** * not allow abstract to decorator with out metadata. */ (target: Type<any>): void; } /** * create class decorator * * @export * @template T metadata type. * @param {string} name decorator name. * @param {MetadataAdapter} [adapter] metadata adapter * @param {MetadataExtends<T>} [metadataExtends] add extents for metadata. * @returns {*} */ export declare function createClassDecorator<T extends ClassMetadata>(name: string, adapter?: MetadataAdapter, metadataExtends?: MetadataExtends<T>): IClassDecorator<T>;