typescript-assistant
Version:
Combines and integrates professional Typescript tools into your project
46 lines • 1.91 kB
JavaScript
;
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