1 | import { createInjector } from 'typed-inject';
|
2 | import { RestClient } from 'typed-rest-client';
|
3 |
|
4 | import { provideLogger } from '../di/index.js';
|
5 |
|
6 | import * as initializerTokens from './initializer-tokens.js';
|
7 | import { NpmClient } from './npm-client.js';
|
8 | import { StrykerConfigWriter } from './stryker-config-writer.js';
|
9 | import { StrykerInitializer } from './stryker-initializer.js';
|
10 | import { StrykerInquirer } from './stryker-inquirer.js';
|
11 | import { strykerPresets } from './stryker-presets.js';
|
12 | import { GitignoreWriter } from './gitignore-writer.js';
|
13 |
|
14 | const BASE_NPM_SEARCH = 'https://api.npms.io';
|
15 | const BASE_NPM_PACKAGE = 'https://www.unpkg.com';
|
16 |
|
17 | export 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 |
|
30 | export { initializerTokens };
|