UNPKG

typia

Version:

Superfast runtime validators with only one line

20 lines (19 loc) 829 B
import RandExp from "randexp"; //#region src/internal/_randomPattern.ts const _randomPattern = (regex, props) => { const r = new RandExp(regex); const min = props?.minLength; const max = props?.maxLength; if (max !== void 0) r.max = max; else if (min !== void 0 && min * 2 > r.max) r.max = min * 2; const bounded = min !== void 0 || max !== void 0; const limit = bounded ? 1024 : 10; for (let i = 0; i < limit; ++i) { const str = r.gen(); if (regex.test(str) && (min === void 0 || str.length >= min) && (max === void 0 || str.length <= max)) return str; } throw new Error(bounded ? "unable to generate a random string matching the pattern within the length range." : "unable to generate a random string matching the pattern."); }; //#endregion export { _randomPattern }; //# sourceMappingURL=_randomPattern.mjs.map