introduce SettingsProviders

This commit is contained in:
Artur
2023-03-10 22:14:19 +01:00
parent 7ad54e0e3b
commit c57d094fe8
30 changed files with 256 additions and 413 deletions

View File

@@ -0,0 +1,15 @@
export enum SetupFields {
includePrerelease = 'includePrerelease',
versionSpec = 'versionSpec',
ignoreFailedSources = 'ignoreFailedSources'
}
export interface ISetupSettings {
[SetupFields.versionSpec]: string
[SetupFields.includePrerelease]: boolean
[SetupFields.ignoreFailedSources]: boolean
}
export interface ISettingsProvider {
getSetupSettings(): ISetupSettings
}

View File

@@ -0,0 +1,20 @@
import { injectable } from 'inversify'
import { ISettingsProvider, ISetupSettings, SetupFields } from './models'
import { IBuildAgent } from '../../core/models'
@injectable()
export class SettingsProvider implements ISettingsProvider {
constructor(protected buildAgent: IBuildAgent) {}
public getSetupSettings(): ISetupSettings {
const versionSpec = this.buildAgent.getInput(SetupFields.versionSpec)
const includePrerelease = this.buildAgent.getBooleanInput(SetupFields.includePrerelease)
const ignoreFailedSources = this.buildAgent.getBooleanInput(SetupFields.ignoreFailedSources)
return {
versionSpec,
includePrerelease,
ignoreFailedSources
}
}
}