UNPKG

typescript-assistant

Version:

Combines and integrates professional Typescript tools into your project

46 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDependencyInjector = void 0; const path_1 = require("path"); const bus_1 = require("./bus"); const formatter_1 = require("./code-style/formatter"); const linter_1 = require("./code-style/linter"); const compiler_1 = require("./compiler"); const git_1 = require("./git"); const injector_1 = require("./injector"); const logger_1 = require("./logger"); const taskrunner_1 = require("./taskrunner"); const nyc_1 = require("./testing/nyc"); const watcher_1 = require("./watcher"); let createDependencyInjector = () => { let logger = (0, logger_1.createConsoleLogger)(); let taskRunner = path_1.sep === "\\" ? (0, taskrunner_1.createWindowsTaskRunner)() : (0, taskrunner_1.createDefaultTaskRunner)(); let bus = (0, bus_1.createBus)(); let dependencies = { bus, logger, taskRunner, }; let { inject } = (0, injector_1.createInjector)(dependencies); dependencies.inject = inject; dependencies.compiler = inject(compiler_1.createCompiler); dependencies.git = inject(git_1.createGit); dependencies.formatter = inject(formatter_1.createFormatter); dependencies.linter = inject(linter_1.createLinter); dependencies.nyc = inject(nyc_1.createNyc); dependencies.watcher = inject(watcher_1.createWatcher); // Server is created lazily, because not all of its dependencies may be present let server; Object.defineProperty(dependencies, "server", { get: () => { if (!server) { // eslint-disable-next-line @typescript-eslint/no-require-imports server = inject(require("./server").createServer); } return server; }, }); return dependencies.inject; }; exports.createDependencyInjector = createDependencyInjector; //# sourceMappingURL=dependency-injector.js.map