UNPKG

typia

Version:

Superfast runtime validators with only one line

1 lines 1.96 kB
{"version":3,"file":"_httpQueryParseURLSearchParams.mjs","names":[],"sources":["../../src/internal/_httpQueryParseURLSearchParams.ts"],"sourcesContent":["import { IReadableURLSearchParams } from \"@typia/interface\";\n\nexport const _httpQueryParseURLSearchParams = (\n input: string | IReadableURLSearchParams,\n): IReadableURLSearchParams => {\n if (typeof input === \"string\") {\n let url: boolean = false;\n if (input.startsWith(\"?\")) {\n input = input.substring(1);\n url = true;\n } else {\n const index: number = input.indexOf(\"?\");\n if (index !== -1 && isUrlPrefix(input.substring(0, index))) {\n input = input.substring(index + 1);\n url = true;\n } else if (index === -1 && isExplicitUrlPrefix(input)) {\n input = \"\";\n url = true;\n }\n }\n if (url) {\n const fragment: number = input.indexOf(\"#\");\n if (fragment !== -1) input = input.substring(0, fragment);\n }\n return new URLSearchParams(input);\n }\n return input;\n};\n\nconst isUrlPrefix = (prefix: string): boolean =>\n isExplicitUrlPrefix(prefix) || (prefix.length !== 0 && !/[=&]/.test(prefix));\n\nconst isExplicitUrlPrefix = (prefix: string): boolean =>\n /^[a-z][a-z\\d+.-]*:/i.test(prefix) || /^(?:\\/\\/|\\/|\\.{1,2}\\/)/.test(prefix);\n"],"mappings":";AAEA,MAAa,kCACX,UAC6B;CAC7B,IAAI,OAAO,UAAU,UAAU;EAC7B,IAAI,MAAe;EACnB,IAAI,MAAM,WAAW,GAAG,GAAG;GACzB,QAAQ,MAAM,UAAU,CAAC;GACzB,MAAM;EACR,OAAO;GACL,MAAM,QAAgB,MAAM,QAAQ,GAAG;GACvC,IAAI,UAAU,MAAM,YAAY,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG;IAC1D,QAAQ,MAAM,UAAU,QAAQ,CAAC;IACjC,MAAM;GACR,OAAO,IAAI,UAAU,MAAM,oBAAoB,KAAK,GAAG;IACrD,QAAQ;IACR,MAAM;GACR;EACF;EACA,IAAI,KAAK;GACP,MAAM,WAAmB,MAAM,QAAQ,GAAG;GAC1C,IAAI,aAAa,IAAI,QAAQ,MAAM,UAAU,GAAG,QAAQ;EAC1D;EACA,OAAO,IAAI,gBAAgB,KAAK;CAClC;CACA,OAAO;AACT;AAEA,MAAM,eAAe,WACnB,oBAAoB,MAAM,KAAM,OAAO,WAAW,KAAK,CAAC,OAAO,KAAK,MAAM;AAE5E,MAAM,uBAAuB,WAC3B,sBAAsB,KAAK,MAAM,KAAK,yBAAyB,KAAK,MAAM"}