Skip to content

Commit

Permalink
refactor: ignore non-objects in metadata accessor
Browse files Browse the repository at this point in the history
  • Loading branch information
jozsefsallai committed Sep 21, 2023
1 parent bfb8ec1 commit 4282b0a
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions lib/schedule-metadata.accessor.ts
Expand Up @@ -17,24 +17,33 @@ export class SchedulerMetadataAccessor {
constructor(private readonly reflector: Reflector) {}

getSchedulerType(target: Function): SchedulerType | undefined {
return this.reflector.get(SCHEDULER_TYPE, target);
return this.getMetadata(SCHEDULER_TYPE, target);
}

getSchedulerName(target: Function): string | undefined {
return this.reflector.get(SCHEDULER_NAME, target);
return this.getMetadata(SCHEDULER_NAME, target);
}

getTimeoutMetadata(target: Function): TimeoutMetadata | undefined {
return this.reflector.get(SCHEDULE_TIMEOUT_OPTIONS, target);
return this.getMetadata(SCHEDULE_TIMEOUT_OPTIONS, target);
}

getIntervalMetadata(target: Function): IntervalMetadata | undefined {
return this.reflector.get(SCHEDULE_INTERVAL_OPTIONS, target);
return this.getMetadata(SCHEDULE_INTERVAL_OPTIONS, target);
}

getCronMetadata(
target: Function,
): (CronOptions & Record<'cronTime', string | Date | any>) | undefined {
return this.reflector.get(SCHEDULE_CRON_OPTIONS, target);
return this.getMetadata(SCHEDULE_CRON_OPTIONS, target);
}

private getMetadata<T>(key: string, target: Function): T | undefined {
const isObject =
typeof target === 'object'
? target !== null
: typeof target === 'function';

return isObject ? this.reflector.get(key, target) : undefined;
}
}

0 comments on commit 4282b0a

Please sign in to comment.