UNPKG

@tsdi/unit

Version:

unit testing framework, base on AOP, Ioc container

56 lines (54 loc) 1.89 kB
import { __decorate, __metadata, __param } from "tslib"; import { ContainerToken } from '@tsdi/core'; import { Suite } from './decorators'; import { Inject, IocExt, RegSingletionAction, InjectReference, DesignRegisterer, RuntimeRegisterer, DecoratorProvider } from '@tsdi/ioc'; import { BootContext, AnnoationAction } from '@tsdi/boot'; /** * Bootstrap ext for ioc. auto run setup after registered. * with @IocExt('setup') decorator. * @export * @class BootModule */ let UnitSetup = class UnitSetup { constructor() { } /** * register aop for container. * * @memberof AopModule */ setup(container) { let actInjector = container.getActionInjector(); actInjector.getInstance(DesignRegisterer) .register(Suite, 'Class', AnnoationAction); actInjector.getInstance(RuntimeRegisterer) .register(Suite, 'Class', RegSingletionAction); actInjector.getInstance(DecoratorProvider) .bindProviders(Suite, { provide: BootContext, deps: [ContainerToken], useFactory: (container, ...providers) => { let ref = new InjectReference(BootContext, Suite.toString()); if (container.has(ref)) { return container.get(ref, ...providers); } return null; } }); } static ρAnn() { return { "name": "UnitSetup", "params": { "setup": ["container"] } }; } }; __decorate([ __param(0, Inject(ContainerToken)), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0) ], UnitSetup.prototype, "setup", null); UnitSetup = __decorate([ IocExt(), __metadata("design:paramtypes", []) ], UnitSetup); export { UnitSetup }; //# sourceMappingURL=sourcemaps/UnitSetup.js.map