export class ReleaseValidator { constructor(private updateOnlyUnreleased: boolean) {} validateReleaseUpdate(releaseResponse: ReleaseStageArguments) { if (!this.updateOnlyUnreleased) { return } if (!releaseResponse.draft && !releaseResponse.prerelease) { throw new Error( `Tried to update "${releaseResponse.name ?? "release"}" which is neither a draft or prerelease. (updateOnlyUnreleased is on)` ) } } } export type ReleaseStageArguments = { draft: boolean name: string | null prerelease: boolean }