in packages/cloudquery-usage/src/date.ts [28:65]
export function getDateRange(): DateRange {
const startEnv = process.env['START_DATE'];
const endEnv = process.env['END_DATE'];
if (!checkBothPresentOrAbsent(startEnv, endEnv)) {
throw new Error(
`When using environment variables, both START_DATE (${startEnv}) and END_DATE (${endEnv}) must be provided.`,
);
}
if (!bothPresent(startEnv, endEnv)) {
return { start: yesterdayAtMidnight(), end: atMidnight(new Date()) };
}
// This `if` is only needed to satisfy the type checker, as is the final `throw` statement.
if (startEnv && endEnv) {
const startDate = new Date(startEnv);
if (startDate.toString() === 'Invalid Date') {
throw new Error(`Invalid START_DATE: ${startEnv}`);
}
const endDate = new Date(endEnv);
if (endDate.toString() === 'Invalid Date') {
throw new Error(`Invalid END_DATE: ${endEnv}`);
}
if (startDate > endDate) {
throw new Error('START_DATE must be before END_DATE');
}
return {
start: atMidnight(startDate),
end: atMidnight(endDate),
};
}
throw new Error('Unreachable code');
}