UNPKG

typia

Version:

Superfast runtime validators with only one line

35 lines (34 loc) 1.17 kB
import { _randomInteger } from "./_randomInteger.mjs"; import { _randomLengthPick, _randomLengthWindow } from "./_randomStringLength.mjs"; import { __randomNumeric } from "./private/__randomComposition.mjs"; //#region src/internal/_randomFormatDuration.ts const _randomFormatDuration = (props) => { if (props?.minLength === void 0 && props?.maxLength === void 0) { const period = durate([ ["Y", random(0, 100)], ["M", random(0, 12)], ["D", random(0, 31)] ]); const time = durate([ ["H", random(0, 24)], ["M", random(0, 60)], ["S", random(0, 60)] ]); if (period.length + time.length === 0) return "PT0S"; return `P${period}${time.length ? "T" : ""}${time}`; } return `P${__randomNumeric(_randomLengthPick(_randomLengthWindow(props, { minimum: MINIMUM, spread: 6 })) - MINIMUM + 1)}Y`; }; const MINIMUM = 3; const durate = (elements) => elements.filter(([_unit, value]) => value !== 0).map(([unit, value]) => `${value}${unit}`).join(""); const random = (minimum, maximum) => _randomInteger({ type: "integer", minimum, maximum }); //#endregion export { _randomFormatDuration }; //# sourceMappingURL=_randomFormatDuration.mjs.map