UNPKG

1.4 kBPlain TextView Raw
1import { createInjector } from 'typed-inject';
2import { RestClient } from 'typed-rest-client';
3
4import { provideLogger } from '../di/index.js';
5
6import * as initializerTokens from './initializer-tokens.js';
7import { NpmClient } from './npm-client.js';
8import { StrykerConfigWriter } from './stryker-config-writer.js';
9import { StrykerInitializer } from './stryker-initializer.js';
10import { StrykerInquirer } from './stryker-inquirer.js';
11import { strykerPresets } from './stryker-presets.js';
12import { GitignoreWriter } from './gitignore-writer.js';
13
14const BASE_NPM_SEARCH = 'https://api.npms.io';
15const BASE_NPM_PACKAGE = 'https://www.unpkg.com';
16
17export function initializerFactory(): StrykerInitializer {
18 return provideLogger(createInjector())
19 .provideValue(initializerTokens.out, console.log)
20 .provideValue(initializerTokens.strykerPresets, strykerPresets)
21 .provideValue(initializerTokens.restClientNpmSearch, new RestClient('npmSearch', BASE_NPM_SEARCH))
22 .provideValue(initializerTokens.restClientNpm, new RestClient('npm', BASE_NPM_PACKAGE))
23 .provideClass(initializerTokens.npmClient, NpmClient)
24 .provideClass(initializerTokens.configWriter, StrykerConfigWriter)
25 .provideClass(initializerTokens.gitignoreWriter, GitignoreWriter)
26 .provideClass(initializerTokens.inquirer, StrykerInquirer)
27 .injectClass(StrykerInitializer);
28}
29
30export { initializerTokens };