@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
1 lines • 2.72 kB
Source Map (JSON)
{"version":3,"file":"querystring.mjs","names":[],"sources":["../../../src/internal/clerk-js/querystring.ts"],"sourcesContent":["export const getQueryParams = (queryString: string) => {\n const queryParamsObject: { [key: string]: string | string[] } = {};\n const queryParams = new URLSearchParams(queryString);\n queryParams.forEach((value, key) => {\n if (key in queryParamsObject) {\n // If the key already exists, we need to handle it as an array\n const existingValue = queryParamsObject[key];\n if (Array.isArray(existingValue)) {\n existingValue.push(value);\n } else {\n queryParamsObject[key] = [existingValue, value];\n }\n } else {\n queryParamsObject[key] = value;\n }\n });\n return queryParamsObject as Record<string, string>;\n};\n\ntype StringifyQueryParamsOptions = {\n keyEncoder?: (key: string) => string;\n};\n\n// TODO @userland-errors:\nexport const stringifyQueryParams = (\n params:\n | Record<string, string | undefined | null | object | boolean | Array<string | undefined | null>>\n | null\n | undefined\n | string,\n opts: StringifyQueryParamsOptions = {},\n) => {\n if (params === null || params === undefined) {\n return '';\n }\n if (!params || typeof params !== 'object') {\n return '';\n }\n\n const queryParams = new URLSearchParams();\n\n Object.keys(params).forEach(key => {\n const encodedKey = opts.keyEncoder ? opts.keyEncoder(key) : key;\n const value = params[key];\n if (Array.isArray(value)) {\n value.forEach(v => v !== undefined && queryParams.append(encodedKey, v || ''));\n } else if (value === undefined) {\n return;\n } else if (typeof value === 'object' && value !== null) {\n queryParams.append(encodedKey, JSON.stringify(value));\n } else {\n queryParams.append(encodedKey, String(value ?? ''));\n }\n });\n\n return queryParams.toString();\n};\n"],"mappings":";AAAA,MAAa,kBAAkB,gBAAwB;CACrD,MAAM,oBAA0D,CAAC;CAEjE,IADwB,gBAAgB,WAC9B,CAAC,CAAC,SAAS,OAAO,QAAQ;EAClC,IAAI,OAAO,mBAAmB;GAE5B,MAAM,gBAAgB,kBAAkB;GACxC,IAAI,MAAM,QAAQ,aAAa,GAC7B,cAAc,KAAK,KAAK;QAExB,kBAAkB,OAAO,CAAC,eAAe,KAAK;EAElD,OACE,kBAAkB,OAAO;CAE7B,CAAC;CACD,OAAO;AACT;AAOA,MAAa,wBACX,QAKA,OAAoC,CAAC,MAClC;CACH,IAAI,WAAW,QAAQ,WAAW,QAChC,OAAO;CAET,IAAI,CAAC,UAAU,OAAO,WAAW,UAC/B,OAAO;CAGT,MAAM,cAAc,IAAI,gBAAgB;CAExC,OAAO,KAAK,MAAM,CAAC,CAAC,SAAQ,QAAO;EACjC,MAAM,aAAa,KAAK,aAAa,KAAK,WAAW,GAAG,IAAI;EAC5D,MAAM,QAAQ,OAAO;EACrB,IAAI,MAAM,QAAQ,KAAK,GACrB,MAAM,SAAQ,MAAK,MAAM,UAAa,YAAY,OAAO,YAAY,KAAK,EAAE,CAAC;OACxE,IAAI,UAAU,QACnB;OACK,IAAI,OAAO,UAAU,YAAY,UAAU,MAChD,YAAY,OAAO,YAAY,KAAK,UAAU,KAAK,CAAC;OAEpD,YAAY,OAAO,YAAY,OAAO,SAAS,EAAE,CAAC;CAEtD,CAAC;CAED,OAAO,YAAY,SAAS;AAC9B"}