assertJobDerived.ts 643 B

12345678910111213
  1. import Job from "@/Job";
  2. // eslint-disable-next-line @typescript-eslint/ban-types
  3. export default (JobClass: Function) => {
  4. // Make sure the provided JobClass has Job as the parent somewhere as a parent. Not Job itself, as that constructor requires an additional constructor parameter
  5. // So any class that extends Job, or that extends another class that extends Job, will be allowed.
  6. let classPrototype = Object.getPrototypeOf(JobClass);
  7. while (classPrototype) {
  8. if (classPrototype === Job) break;
  9. classPrototype = Object.getPrototypeOf(classPrototype);
  10. }
  11. if (!classPrototype) throw new Error("Provided job class is not a job.");
  12. };