@tsdi/unit
Version:
unit testing framework, base on AOP, Ioc container
64 lines (62 loc) • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UnitSetup = void 0;
var tslib_1 = require("tslib");
var core_1 = require("@tsdi/core");
var decorators_1 = require("./decorators");
var ioc_1 = require("@tsdi/ioc");
var boot_1 = require("@tsdi/boot");
/**
* Bootstrap ext for ioc. auto run setup after registered.
* with @IocExt('setup') decorator.
* @export
* @class BootModule
*/
var UnitSetup = /** @class */ (function () {
function UnitSetup() {
}
/**
* register aop for container.
*
* @memberof AopModule
*/
UnitSetup.prototype.setup = function (container) {
var actInjector = container.getActionInjector();
actInjector.getInstance(ioc_1.DesignRegisterer)
.register(decorators_1.Suite, 'Class', boot_1.AnnoationAction);
actInjector.getInstance(ioc_1.RuntimeRegisterer)
.register(decorators_1.Suite, 'Class', ioc_1.RegSingletionAction);
actInjector.getInstance(ioc_1.DecoratorProvider)
.bindProviders(decorators_1.Suite, {
provide: boot_1.BootContext,
deps: [core_1.ContainerToken],
useFactory: function (container) {
var providers = [];
for (var _i = 1; _i < arguments.length; _i++) {
providers[_i - 1] = arguments[_i];
}
var ref = new ioc_1.InjectReference(boot_1.BootContext, decorators_1.Suite.toString());
if (container.has(ref)) {
return container.get.apply(container, tslib_1.__spreadArrays([ref], providers));
}
return null;
}
});
};
UnitSetup.ρAnn = function () {
return { "name": "UnitSetup", "params": { "setup": ["container"] } };
};
tslib_1.__decorate([
tslib_1.__param(0, ioc_1.Inject(core_1.ContainerToken)),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object]),
tslib_1.__metadata("design:returntype", void 0)
], UnitSetup.prototype, "setup", null);
UnitSetup = tslib_1.__decorate([
ioc_1.IocExt(),
tslib_1.__metadata("design:paramtypes", [])
], UnitSetup);
return UnitSetup;
}());
exports.UnitSetup = UnitSetup;
//# sourceMappingURL=sourcemaps/UnitSetup.js.map