ts-bakery
Version:
Baked dependency injection for Typescript.
39 lines • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const Paths_1 = require("../Util/Paths");
const DependencyBinding_1 = require("./DependencyBinding");
const DependencyConfiguration_1 = require("./DependencyConfiguration");
const DependencyMapping_1 = require("./DependencyMapping");
class DependencyConfigurationProvider {
getConfiguration() {
if (this.configuration == null) {
this.configuration = this.loadConfiguration();
}
return this.configuration;
}
loadConfiguration() {
const fileRaw = fs.readFileSync(Paths_1.default.BakeryConfig, 'utf-8');
const fileJson = JSON.parse(fileRaw);
const configuration = new DependencyConfiguration_1.default();
const bindings = fileJson.bindings;
for (const b of bindings) {
const binding = new DependencyBinding_1.default();
configuration.bindings.push(binding);
binding.abstraction = b.abstraction;
binding.implementation = b.implementation;
}
const mappings = fileJson.mappings;
for (const m of mappings) {
const dependencyMapping = new DependencyMapping_1.default();
configuration.mappings.push(dependencyMapping);
dependencyMapping.implementation = m.implementation;
for (const d of m.dependencies) {
dependencyMapping.dependencies.push(d);
}
}
return configuration;
}
}
exports.default = DependencyConfigurationProvider;
//# sourceMappingURL=DependencyConfigurationProvider.js.map