Files
klz-cables.com/.pnpm-store/v10/files/19/1d7a0dfd8cff44a8bc421bd65ed077833c3584c72d2146f96591429f30c7a791438ffb4051a019a8b36f29a29aab694bf25580d3505fc1b0eba096b0623d03
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

41 lines
1.4 KiB
Plaintext

"use strict";
exports.interval = interval;
var _index = require("./toDate.js");
/**
* The {@link interval} function options.
*/
/**
* @name interval
* @category Interval Helpers
* @summary Creates an interval object and validates its values.
*
* @description
* Creates a normalized interval object and validates its values. If the interval is invalid, an exception is thrown.
*
* @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
*
* @param start - The start of the interval.
* @param end - The end of the interval.
* @param options - The options object.
*
* @throws `Start date is invalid` when `start` is invalid.
* @throws `End date is invalid` when `end` is invalid.
* @throws `End date must be after start date` when end is before `start` and `options.assertPositive` is true.
*
* @returns The normalized and validated interval object.
*/
function interval(start, end, options) {
const _start = (0, _index.toDate)(start);
if (isNaN(+_start)) throw new TypeError("Start date is invalid");
const _end = (0, _index.toDate)(end);
if (isNaN(+_end)) throw new TypeError("End date is invalid");
if (options?.assertPositive && +_start > +_end)
throw new TypeError("End date must be after start date");
return { start: _start, end: _end };
}