Files
delete-package-versions/src/input.ts
T

57 lines
1.4 KiB
TypeScript
Raw Normal View History

2020-02-29 19:33:20 -06:00
export interface InputParams {
packageVersionIds?: string[]
owner?: string
repo?: string
packageName?: string
numOldVersionsToDelete?: number
2021-11-08 07:25:16 +00:00
minVersionsToKeep?: number
2021-11-12 03:46:59 +00:00
ignoreVersions?: RegExp
2020-02-29 19:33:20 -06:00
token?: string
}
const defaultParams = {
packageVersionIds: [],
owner: '',
repo: '',
packageName: '',
numOldVersionsToDelete: 0,
2021-11-08 07:25:16 +00:00
minVersionsToKeep: 0,
2021-11-12 03:46:59 +00:00
ignoreVersions: new RegExp(''),
2020-02-29 19:33:20 -06:00
token: ''
}
export class Input {
packageVersionIds: string[]
owner: string
repo: string
packageName: string
numOldVersionsToDelete: number
2021-11-08 07:25:16 +00:00
minVersionsToKeep: number
2021-11-12 03:46:59 +00:00
ignoreVersions: RegExp
2020-02-29 19:33:20 -06:00
token: string
constructor(params?: InputParams) {
const validatedParams: Required<InputParams> = {...defaultParams, ...params}
this.packageVersionIds = validatedParams.packageVersionIds
this.owner = validatedParams.owner
this.repo = validatedParams.repo
this.packageName = validatedParams.packageName
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete
2021-11-08 07:25:16 +00:00
this.minVersionsToKeep = validatedParams.minVersionsToKeep
2021-11-12 03:46:59 +00:00
this.ignoreVersions = validatedParams.ignoreVersions
2020-02-29 19:33:20 -06:00
this.token = validatedParams.token
}
hasOldestVersionQueryInfo(): boolean {
return !!(
this.owner &&
this.repo &&
this.packageName &&
this.numOldVersionsToDelete > 0 &&
2021-11-08 07:25:16 +00:00
this.minVersionsToKeep > 0 &&
2020-02-29 19:33:20 -06:00
this.token
)
}
}