UNPKG

megajs-extra

Version:
86 lines 3.03 kB
"use strict"; /** * Created by user on 2020/5/24. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.applyProxySettingsCore = exports.applyProxySettings = exports.filterFileList = exports.megaFileList = exports.megaLinkFromFile = exports.megaKeyFromFile = exports.megaKeyBufferFromFile = exports.SymCryptoKey = void 0; const mega_nz_key_1 = require("mega-nz-key"); exports.SymCryptoKey = Symbol.for('root_key'); function megaKeyBufferFromFile(file) { var _a; return (_a = file[exports.SymCryptoKey]) !== null && _a !== void 0 ? _a : file.key; } exports.megaKeyBufferFromFile = megaKeyBufferFromFile; function megaKeyFromFile(file) { return mega_nz_key_1.stringify(megaKeyBufferFromFile(file)); } exports.megaKeyFromFile = megaKeyFromFile; function megaLinkFromFile(file, rootFile, options) { var _a; const topkey = megaKeyFromFile(rootFile); let downloadId; if (typeof file.downloadId === 'string') { downloadId = file.downloadId; } else { // @ts-ignore downloadId = file.downloadId[file.downloadId.length - 1]; } return new URL(`${(_a = options === null || options === void 0 ? void 0 : options.gateway) !== null && _a !== void 0 ? _a : `https://mega.nz/`}${(rootFile.directory ? `folder` : `file`)}/${rootFile.downloadId}#${topkey}/${(file.directory ? `folder` : `file`)}/${downloadId}`).href; } exports.megaLinkFromFile = megaLinkFromFile; function megaFileList(file, options) { var _a; let map = (options === null || options === void 0 ? void 0 : options.map) || {}; let rootPath = ((_a = options === null || options === void 0 ? void 0 : options.rootPath) !== null && _a !== void 0 ? _a : '') + file.name; if (!file.directory) { // @ts-ignore map[rootPath] = file; } else { if (options === null || options === void 0 ? void 0 : options.children) { rootPath += '/'; } else { rootPath = ''; } map[rootPath + (rootPath.endsWith('/') ? '' : '/')] = file; file .children .forEach((file) => { megaFileList(file, { rootPath, map, children: true, }); }); } return map; } exports.megaFileList = megaFileList; function filterFileList(listMap, cb) { return Object.entries(listMap) .reduce((map, [filename, file]) => { if (cb(filename, file)) { map.push([filename, file]); } return map; }, []); } exports.filterFileList = filterFileList; function applyProxySettings(file, proxy) { // @ts-ignore applyProxySettingsCore(file.api); return file; } exports.applyProxySettings = applyProxySettings; function applyProxySettingsCore(api, proxy) { if (proxy) { api.requestModule = api.requestModule.defaults({ proxy }); } return api; } exports.applyProxySettingsCore = applyProxySettingsCore; //# sourceMappingURL=util.js.map