UNPKG

typia

Version:

Superfast runtime validators with only one line

1 lines 1.67 kB
{"version":3,"file":"_randomFormatRelativeJsonPointer.mjs","names":[],"sources":["../../src/internal/_randomFormatRelativeJsonPointer.ts"],"sourcesContent":["import { _randomInteger } from \"./_randomInteger\";\nimport { _randomString } from \"./_randomString\";\nimport {\n _ILengthProps,\n _randomLengthPick,\n _randomLengthWindow,\n} from \"./_randomStringLength\";\nimport { __randomNumeric } from \"./private/__randomComposition\";\n\nexport const _randomFormatRelativeJsonPointer = (\n props?: _ILengthProps,\n): string => {\n if (props?.minLength === undefined && props?.maxLength === undefined)\n return `${_randomInteger({ type: \"integer\", minimum: 0, maximum: 10 })}#`;\n // The leading non-negative integer stands alone as a pointer, so a single\n // digit is the shortest form; `#` names the key and a `/`-prefixed token names\n // a member, which absorbs any remaining length.\n const length: number = _randomLengthPick(\n _randomLengthWindow(props, { minimum: 1, spread: 6 }),\n );\n if (length === 1) return __randomNumeric(1);\n if (length === 2) return `${__randomNumeric(1)}#`;\n return `${__randomNumeric(1)}/${_randomString({\n type: \"string\",\n minLength: length - 2,\n maxLength: length - 2,\n })}`;\n};\n"],"mappings":";;;;;AASA,MAAa,oCACX,UACW;CACX,IAAI,OAAO,cAAc,KAAA,KAAa,OAAO,cAAc,KAAA,GACzD,OAAO,GAAG,eAAe;EAAE,MAAM;EAAW,SAAS;EAAG,SAAS;CAAG,CAAC,EAAE;CAIzE,MAAM,SAAiB,kBACrB,oBAAoB,OAAO;EAAE,SAAS;EAAG,QAAQ;CAAE,CAAC,CACtD;CACA,IAAI,WAAW,GAAG,OAAO,gBAAgB,CAAC;CAC1C,IAAI,WAAW,GAAG,OAAO,GAAG,gBAAgB,CAAC,EAAE;CAC/C,OAAO,GAAG,gBAAgB,CAAC,EAAE,GAAG,cAAc;EAC5C,MAAM;EACN,WAAW,SAAS;EACpB,WAAW,SAAS;CACtB,CAAC;AACH"}