Files
klz-cables.com/.pnpm-store/v10/files/4b/6e3902dfbdcff0379ecbacaeffafbb36a99a92c5ef2354495f62606cc40e839c550b4c61b846a124844a04d5547f73a6f0afa2800a21c7afb584e35bb4e4fb
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

49 lines
1.6 KiB
Plaintext

"use strict";
exports.interval = interval;
var _index = require("./_lib/normalizeDates.cjs");
/**
* The {@link interval} function options.
*/
/**
* The {@link interval} function result type. It resolves the proper data type.
* It uses the first argument date object type, starting from the start argument,
* then the end interval date. If a context function is passed, it uses the context
* function return type.
*/
/**
* @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 StartDate - Start date type.
* @typeParam EndDate - End date type.
* @typeParam Options - Options type.
*
* @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, _end] = (0, _index.normalizeDates)(options?.in, start, end);
if (isNaN(+_start)) throw new TypeError("Start date is invalid");
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 };
}