UNPKG

@bearstudio/lunalink

Version:

Lightweight TypeScript library to efficiently maintain and build URLs

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