mirror of
https://github.com/Start9Labs/start-sdk.git
synced 2026-03-26 18:31:54 +00:00
38 lines
911 B
TypeScript
38 lines
911 B
TypeScript
import { Effects } from "../types"
|
|
|
|
export class GetSystemSmtp {
|
|
constructor(readonly effects: Effects) {}
|
|
|
|
/**
|
|
* Returns the system SMTP credentials. Restarts the service if the credentials change
|
|
*/
|
|
const() {
|
|
return this.effects.getSystemSmtp({
|
|
callback: this.effects.restart,
|
|
})
|
|
}
|
|
/**
|
|
* Returns the system SMTP credentials. Does nothing if the credentials change
|
|
*/
|
|
once() {
|
|
return this.effects.getSystemSmtp({
|
|
callback: () => {},
|
|
})
|
|
}
|
|
/**
|
|
* Watches the system SMTP credentials. Takes a custom callback function to run whenever the credentials change
|
|
*/
|
|
async *watch() {
|
|
while (true) {
|
|
let callback: () => void
|
|
const waitForNext = new Promise<void>((resolve) => {
|
|
callback = resolve
|
|
})
|
|
yield await this.effects.getSystemSmtp({
|
|
callback: () => callback(),
|
|
})
|
|
await waitForNext
|
|
}
|
|
}
|
|
}
|