forked from Crockan/MercuryToolbox
22 lines
419 B
TypeScript
22 lines
419 B
TypeScript
interface Runner {
|
|
run(): Promise<string>;
|
|
}
|
|
|
|
type WorkerOptions = {
|
|
name: string;
|
|
};
|
|
|
|
class Worker implements Runner {
|
|
constructor(private readonly options: WorkerOptions) {}
|
|
|
|
async run(): Promise<string> {
|
|
return this.options.name;
|
|
}
|
|
}
|
|
|
|
export function createWorker(options: WorkerOptions): Runner {
|
|
return new Worker(options);
|
|
}
|
|
|
|
export const defaultWorker = () => createWorker({ name: "default" });
|