UNPKG

@bearstudio/lunalink

Version:

Lightweight TypeScript library to efficiently maintain and build URLs

2 lines (1 loc) 1.39 kB
"use strict";var l=Object.create;var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var y=(t,n)=>{for(var e in n)a(t,e,{get:n[e],enumerable:!0})},P=(t,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of R(n))!p.call(t,s)&&s!==e&&a(t,s,{get:()=>n[s],enumerable:!(r=x(n,s))||r.enumerable});return t};var E=(t,n,e)=>(e=t!=null?l(d(t)):{},P(n||!t||!t.__esModule?a(e,"default",{value:t,enumerable:!0}):e,t)),b=t=>P(a({},"__esModule",{value:!0}),t);var A={};y(A,{join:()=>f,lunalink:()=>U});module.exports=b(A);var m=E(require("query-string"),1);function U(t,n,e){let r=C(t,n,e);return e?.baseURL?f(e.baseURL.toString(),r,"/"):r}var w=/:[_A-Za-z]+\w*/g;function C(t,n,e){let r=new Map(Object.entries(n)),s=new Set,u=e?.encodeURIComponent??encodeURIComponent,c=t.replace(w,o=>{let i=o.slice(1);if(!r.has(i))throw new Error(`Missing parameter ${i}`);return s.add(i),u(n[i])}),g=[...r].filter(([o])=>!s.has(o));if(g.length===0)return c;let $=m.default.stringify(Object.fromEntries(g));return`${h(c)}?${$}`}function h(t){return t.endsWith("?")?t.slice(0,-1):t}function f(t,n,e="/"){return/^https?:\/\//.test(n)&&!/^https?:\/\//.test(t)&&([t,n]=[n,t]),t=t.replace(new RegExp(`${e}+$`),""),n=n.replace(new RegExp(`^${e}+`),""),`${t}${e}${n}`}0&&(module.exports={join,lunalink});