From dd58148a2d47de9942c3266a8cdfd8dead32c528 Mon Sep 17 00:00:00 2001 From: Shinigami Date: Wed, 9 Nov 2022 19:47:22 +0100 Subject: fix(date): don't allow parameters <= 0 (#1536) --- src/modules/date/index.ts | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/modules/date/index.ts b/src/modules/date/index.ts index 111fc4ba..ea9d15d7 100644 --- a/src/modules/date/index.ts +++ b/src/modules/date/index.ts @@ -47,10 +47,14 @@ export class DateModule { * @since 2.0.1 */ past(years?: number, refDate?: string | Date | number): Date { + if (years <= 0) { + throw new FakerError('Years must be greater than 0.'); + } + const date = toDate(refDate); const range = { min: 1000, - max: (years || 1) * 365 * 24 * 3600 * 1000, + max: (years ?? 1) * 365 * 24 * 3600 * 1000, }; let past = date.getTime(); @@ -76,10 +80,14 @@ export class DateModule { * @since 2.0.1 */ future(years?: number, refDate?: string | Date | number): Date { + if (years <= 0) { + throw new FakerError('Years must be greater than 0.'); + } + const date = toDate(refDate); const range = { min: 1000, - max: (years || 1) * 365 * 24 * 3600 * 1000, + max: (years ?? 1) * 365 * 24 * 3600 * 1000, }; let future = date.getTime(); @@ -157,10 +165,14 @@ export class DateModule { * @since 2.0.1 */ recent(days?: number, refDate?: string | Date | number): Date { + if (days <= 0) { + throw new FakerError('Days must be greater than 0.'); + } + const date = toDate(refDate); const range = { min: 1000, - max: (days || 1) * 24 * 3600 * 1000, + max: (days ?? 1) * 24 * 3600 * 1000, }; let future = date.getTime(); @@ -186,10 +198,14 @@ export class DateModule { * @since 5.0.0 */ soon(days?: number, refDate?: string | Date | number): Date { + if (days <= 0) { + throw new FakerError('Days must be greater than 0.'); + } + const date = toDate(refDate); const range = { min: 1000, - max: (days || 1) * 24 * 3600 * 1000, + max: (days ?? 1) * 24 * 3600 * 1000, }; let future = date.getTime(); -- cgit v1.2.3