UNPKG

ts-bakery

Version:

Baked dependency injection for Typescript.

39 lines 1.64 kB
"use strict"; 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