UNPKG

typescript-assistant

Version:

Combines and integrates professional Typescript tools into your project

41 lines 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const watcher_1 = require("./watcher"); const nyc_1 = require("./testing/nyc"); const linter_1 = require("./code-style/linter"); const formatter_1 = require("./code-style/formatter"); const git_1 = require("./git"); const compiler_1 = require("./compiler"); const injector_1 = require("./injector"); const bus_1 = require("./bus"); const taskrunner_1 = require("./taskrunner"); const path_1 = require("path"); const logger_1 = require("./logger"); exports.createDependencyInjector = () => { let logger = logger_1.createConsoleLogger(); let taskRunner = path_1.sep === '\\' ? taskrunner_1.createWindowsTaskRunner() : taskrunner_1.createDefaultTaskRunner(); let bus = bus_1.createBus(); let dependencies = { bus, logger, taskRunner }; let { inject } = 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) { server = inject(require('./server').createServer); } return server; } }); return dependencies.inject; }; //# sourceMappingURL=dependency-injector.js.map