UNPKG

5.45 kBSource Map (JSON)View Raw
1{"version":3,"sources":["util.ts"],"names":["once","create","called","value","trimDotSlash","path","replace","pathRelativeBase","start","nocase","p","toLowerCase","s","startsWith","substr","length","pathRelativeBaseMatch","trimExtension","ext","e","endsWith","bufferToArrayBuffer","buffer","byteOffset","byteLength","slice","launcher","id","b64","Error","Promise","resolve","reject","zlib","inflateRaw","Buffer","from","err","data"],"mappings":"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","sourcesContent":["import zlib from 'zlib';\n\nimport {launchers} from './launchers';\n\n/**\n * Create return value once.\n *\n * @param create Create function.\n * @returns Returned value.\n */\nexport function once<T>(create: () => T): () => T {\n\tlet called = false;\n\tlet value: T;\n\treturn () => {\n\t\tif (!called) {\n\t\t\tvalue = create();\n\t\t\tcalled = true;\n\t\t}\n\t\treturn value;\n\t};\n}\n\n/**\n * Trim dot slash from head of path.\n *\n * @param path Path string.\n * @returns Trimmed path.\n */\nexport function trimDotSlash(path: string) {\n\treturn path.replace(/^(\\.\\/)+/, '');\n}\n\n/**\n * Find path relative from base, if base matches.\n *\n * @param path Path to match against.\n * @param start Search start.\n * @param nocase Match case-insensitive.\n * @returns Returns path, or null.\n */\nexport function pathRelativeBase(\n\tpath: string,\n\tstart: string,\n\tnocase = false\n) {\n\tconst p = trimDotSlash(nocase ? path.toLowerCase() : path);\n\tconst s = trimDotSlash(nocase ? start.toLowerCase() : start);\n\tif (p === s) {\n\t\treturn '';\n\t}\n\tif (p.startsWith(`${s}/`)) {\n\t\treturn path.substr(s.length + 1);\n\t}\n\treturn null;\n}\n\n/**\n * Same as pathRelativeBase, but retuns true on a match, else false.\n *\n * @param path Path to match against.\n * @param start Search start.\n * @param nocase Match case-insensitive.\n * @returns Returns true on match, else false.\n */\nexport function pathRelativeBaseMatch(\n\tpath: string,\n\tstart: string,\n\tnocase = false\n) {\n\treturn pathRelativeBase(path, start, nocase) !== null;\n}\n\n/**\n * Trim a file extenion.\n *\n * @param path File path.\n * @param ext File extension.\n * @param nocase Match case-insensitive.\n * @returns Path without file extension.\n */\nexport function trimExtension(\n\tpath: string,\n\text: string,\n\tnocase = false\n) {\n\tconst p = nocase ? path.toLowerCase() : path;\n\tconst e = nocase ? ext.toLowerCase() : ext;\n\treturn p.endsWith(e) ? path.substr(0, p.length - e.length) : path;\n}\n\n/**\n * Get ArrayBuffer from Buffer.\n *\n * @param buffer Buffer instance.\n * @returns ArrayBuffer copy.\n */\nexport function bufferToArrayBuffer(buffer: Readonly<Buffer>) {\n\tconst {byteOffset, byteLength} = buffer;\n\treturn buffer.buffer.slice(byteOffset, byteOffset + byteLength);\n}\n\n/**\n * Get launcher data for an ID.\n *\n * @param id Laucher ID.\n * @returns Launcher data.\n */\nexport async function launcher(id: string) {\n\tconst b64 = launchers()[id];\n\tif (typeof b64 !== 'string') {\n\t\tthrow new Error(`Invalid launcher id: ${id}`);\n\t}\n\n\treturn new Promise<Buffer>((resolve, reject) => {\n\t\tzlib.inflateRaw(Buffer.from(b64, 'base64'), (err, data) => {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolve(data);\n\t\t});\n\t});\n}\n"],"file":"util.js","sourceRoot":"../src"}
\No newline at end of file