@sigi/di
Version:
Dependencies injection library for sigi framework
72 lines • 2.79 kB
JavaScript
import { __values } from "tslib";
import { rootInjector } from './root-injector';
var Test = (function () {
function Test(providers, TestModule) {
var e_1, _a;
var _b;
this.TestModule = TestModule;
this.providersMap = new Map();
try {
for (var providers_1 = __values(providers), providers_1_1 = providers_1.next(); !providers_1_1.done; providers_1_1 = providers_1.next()) {
var provider = providers_1_1.value;
this.providersMap.set((_b = provider.provide) !== null && _b !== void 0 ? _b : provider, provider);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (providers_1_1 && !providers_1_1.done && (_a = providers_1.return)) _a.call(providers_1);
}
finally { if (e_1) throw e_1.error; }
}
}
Test.createTestingModule = function (overrideConfig) {
return new Test((overrideConfig === null || overrideConfig === void 0 ? void 0 : overrideConfig.providers) ? overrideConfig.providers : [], (overrideConfig === null || overrideConfig === void 0 ? void 0 : overrideConfig.TestModule) ? overrideConfig.TestModule : TestModule);
};
Test.prototype.overrideProvider = function (token) {
return new MockProvider(this, token);
};
Test.prototype.compile = function () {
var childInjector = rootInjector.createChild(Array.from(this.providersMap.values()));
return new this.TestModule(childInjector);
};
return Test;
}());
export { Test };
var MockProvider = (function () {
function MockProvider(test, token) {
this.test = test;
this.token = token;
}
MockProvider.prototype.useClass = function (value) {
this.test.providersMap.set(this.token, { provide: this.token, useClass: value });
return this.test;
};
MockProvider.prototype.useValue = function (value) {
this.test.providersMap.set(this.token, { provide: this.token, useValue: value });
return this.test;
};
MockProvider.prototype.useFactory = function (value) {
this.test.providersMap.set(this.token, { provide: this.token, useFactory: value });
return this.test;
};
return MockProvider;
}());
export { MockProvider };
var AbstractTestModule = (function () {
function AbstractTestModule() {
}
return AbstractTestModule;
}());
export { AbstractTestModule };
var TestModule = (function () {
function TestModule(injector) {
this.injector = injector;
}
TestModule.prototype.getInstance = function (token) {
return this.injector.getInstance(token);
};
return TestModule;
}());
export { TestModule };
//# sourceMappingURL=testbed.js.map