mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
Eliminates boilerplate across 7 wrapper classes (GetContainerIp, GetHostInfo, GetOutboundGateway, GetServiceManifest, GetSslCertificate, GetStatus, GetSystemSmtp) by moving shared const/once/watch/onChange/ waitFor logic into an abstract Watchable<T> base class.
21 lines
482 B
TypeScript
21 lines
482 B
TypeScript
import { Effects } from '../Effects'
|
|
import { Watchable } from './Watchable'
|
|
|
|
export class GetSslCertificate extends Watchable<[string, string, string]> {
|
|
protected readonly label = 'GetSslCertificate'
|
|
|
|
constructor(
|
|
effects: Effects,
|
|
readonly opts: {
|
|
hostnames: string[]
|
|
algorithm?: 'ecdsa' | 'ed25519'
|
|
},
|
|
) {
|
|
super(effects)
|
|
}
|
|
|
|
protected call(callback?: () => void) {
|
|
return this.effects.getSslCertificate({ ...this.opts, callback })
|
|
}
|
|
}
|