UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 2.42 kB
{"version":3,"file":"href.js","names":[],"sources":["esm/link/href.js"],"sourcesContent":["const resolveHref = (href) => {\n if (typeof href === \"string\") {\n return resolveHref({ pathname: href });\n }\n const path = href.pathname ?? \"\";\n if (!href?.params) {\n return path;\n }\n const { pathname, params } = createQualifiedPathname(path, {\n ...href.params\n });\n const paramsString = createQueryParams(params);\n return pathname + (paramsString ? `?${paramsString}` : \"\");\n};\nfunction createQualifiedPathname(pathname, params) {\n for (const [key, value = \"\"] of Object.entries(params)) {\n const dynamicKey = `[${key}]`;\n const deepDynamicKey = `[...${key}]`;\n if (pathname.includes(dynamicKey)) {\n pathname = pathname.replace(dynamicKey, encodeParam(value));\n } else if (pathname.includes(deepDynamicKey)) {\n pathname = pathname.replace(deepDynamicKey, encodeParam(value));\n } else {\n continue;\n }\n delete params[key];\n }\n return { pathname, params };\n}\nfunction encodeParam(param) {\n return Array.isArray(param) ? param.map((p) => encodeParam(p)).join(\"/\") : encodeURIComponent(`${param}`);\n}\nfunction createQueryParams(params) {\n return Object.entries(params).filter(([, value]) => value != null).map(([key, value]) => `${key}=${encodeURIComponent(value.toString())}`).join(\"&\");\n}\nexport {\n resolveHref\n};\n//# sourceMappingURL=href.js.map\n"],"mappings":";AAAA,MAAM,eAAe,SAAS;CAC5B,IAAI,OAAO,SAAS,UAAU;EAC5B,OAAO,YAAY,EAAE,UAAU,KAAK,CAAC;CACvC;CACA,MAAM,OAAO,KAAK,YAAY;CAC9B,IAAI,CAAC,MAAM,QAAQ;EACjB,OAAO;CACT;CACA,MAAM,EAAE,UAAU,WAAW,wBAAwB,MAAM,EACzD,GAAG,KAAK,OACV,CAAC;CACD,MAAM,eAAe,kBAAkB,MAAM;CAC7C,OAAO,YAAY,eAAe,IAAI,iBAAiB;AACzD;AACA,SAAS,wBAAwB,UAAU,QAAQ;CACjD,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,OAAO,QAAQ,MAAM,GAAG;EACtD,MAAM,aAAa,IAAI,IAAI;EAC3B,MAAM,iBAAiB,OAAO,IAAI;EAClC,IAAI,SAAS,SAAS,UAAU,GAAG;GACjC,WAAW,SAAS,QAAQ,YAAY,YAAY,KAAK,CAAC;EAC5D,OAAO,IAAI,SAAS,SAAS,cAAc,GAAG;GAC5C,WAAW,SAAS,QAAQ,gBAAgB,YAAY,KAAK,CAAC;EAChE,OAAO;GACL;EACF;EACA,OAAO,OAAO;CAChB;CACA,OAAO;EAAE;EAAU;CAAO;AAC5B;AACA,SAAS,YAAY,OAAO;CAC1B,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,mBAAmB,GAAG,OAAO;AAC1G;AACA,SAAS,kBAAkB,QAAQ;CACjC,OAAO,OAAO,QAAQ,MAAM,CAAC,CAAC,QAAQ,GAAG,WAAW,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,mBAAmB,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;AACrJ"}