UNPKG

one

Version:

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

1 lines • 4.7 kB
{"version":3,"file":"path.js","names":[],"sources":["esm/link/path.js"],"sourcesContent":["function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n}\nfunction normalizeStringPosix(path, allowAboveRoot) {\n let res = \"\";\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let code;\n for (let i = 0; i <= path.length; ++i) {\n if (i < path.length) {\n code = path.charCodeAt(i);\n } else if (code === 47) {\n break;\n } else {\n code = 47;\n }\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n const lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";\n else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);\n else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\nfunction resolve(...segments) {\n let resolvedPath = \"\";\n let resolvedAbsolute = false;\n for (let i = segments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n let path;\n if (i >= 0) {\n path = segments[i];\n } else {\n path = \"/\";\n }\n assertPath(path);\n if (path.length === 0) {\n continue;\n }\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) {\n return \"/\" + resolvedPath;\n }\n return \"/\";\n }\n if (resolvedPath.length > 0) {\n return resolvedPath;\n }\n return \".\";\n}\nexport {\n resolve\n};\n//# sourceMappingURL=path.js.map\n"],"mappings":";AAAA,SAAS,WAAW,MAAM;CACxB,IAAI,OAAO,SAAS,UAAU;EAC5B,MAAM,IAAI,UAAU,qCAAqC,KAAK,UAAU,IAAI,CAAC;CAC/E;AACF;AACA,SAAS,qBAAqB,MAAM,gBAAgB;CAClD,IAAI,MAAM;CACV,IAAI,oBAAoB;CACxB,IAAI,YAAY,CAAC;CACjB,IAAI,OAAO;CACX,IAAI;CACJ,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,QAAQ,EAAE,GAAG;EACrC,IAAI,IAAI,KAAK,QAAQ;GACnB,OAAO,KAAK,WAAW,CAAC;EAC1B,OAAO,IAAI,SAAS,IAAI;GACtB;EACF,OAAO;GACL,OAAO;EACT;EACA,IAAI,SAAS,IAAI;GACf,IAAI,cAAc,IAAI,KAAK,SAAS,GAAG,CACvC,OAAO,IAAI,cAAc,IAAI,KAAK,SAAS,GAAG;IAC5C,IAAI,IAAI,SAAS,KAAK,sBAAsB,KAAK,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,MAAM,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,IAAI;KAC/H,IAAI,IAAI,SAAS,GAAG;MAClB,MAAM,iBAAiB,IAAI,YAAY,GAAG;MAC1C,IAAI,mBAAmB,IAAI,SAAS,GAAG;OACrC,IAAI,mBAAmB,CAAC,GAAG;QACzB,MAAM;QACN,oBAAoB;OACtB,OAAO;QACL,MAAM,IAAI,MAAM,GAAG,cAAc;QACjC,oBAAoB,IAAI,SAAS,IAAI,IAAI,YAAY,GAAG;OAC1D;OACA,YAAY;OACZ,OAAO;OACP;MACF;KACF,OAAO,IAAI,IAAI,WAAW,KAAK,IAAI,WAAW,GAAG;MAC/C,MAAM;MACN,oBAAoB;MACpB,YAAY;MACZ,OAAO;MACP;KACF;IACF;IACA,IAAI,gBAAgB;KAClB,IAAI,IAAI,SAAS,GAAG,OAAO;UACtB,MAAM;KACX,oBAAoB;IACtB;GACF,OAAO;IACL,IAAI,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,MAAM,YAAY,GAAG,CAAC;SACvD,MAAM,KAAK,MAAM,YAAY,GAAG,CAAC;IACtC,oBAAoB,IAAI,YAAY;GACtC;GACA,YAAY;GACZ,OAAO;EACT,OAAO,IAAI,SAAS,MAAM,SAAS,CAAC,GAAG;GACrC,EAAE;EACJ,OAAO;GACL,OAAO,CAAC;EACV;CACF;CACA,OAAO;AACT;AACA,SAAS,QAAQ,GAAG,UAAU;CAC5B,IAAI,eAAe;CACnB,IAAI,mBAAmB;CACvB,KAAK,IAAI,IAAI,SAAS,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,KAAK;EACnE,IAAI;EACJ,IAAI,KAAK,GAAG;GACV,OAAO,SAAS;EAClB,OAAO;GACL,OAAO;EACT;EACA,WAAW,IAAI;EACf,IAAI,KAAK,WAAW,GAAG;GACrB;EACF;EACA,eAAe,OAAO,MAAM;EAC5B,mBAAmB,KAAK,WAAW,CAAC,MAAM;CAC5C;CACA,eAAe,qBAAqB,cAAc,CAAC,gBAAgB;CACnE,IAAI,kBAAkB;EACpB,IAAI,aAAa,SAAS,GAAG;GAC3B,OAAO,MAAM;EACf;EACA,OAAO;CACT;CACA,IAAI,aAAa,SAAS,GAAG;EAC3B,OAAO;CACT;CACA,OAAO;AACT"}