Skip to content

Commit

Permalink
Merge pull request #1418 from jozsefsallai/refactor/reflect-non-objects
Browse files Browse the repository at this point in the history
refactor: ignore non-objects in metadata accessor
  • Loading branch information
kamilmysliwiec committed Sep 21, 2023
2 parents 3c85e0e + 4282b0a commit f37c728
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 f37c728

Please sign in to comment.