/* This file is part of the Notesnook project (https://notesnook.com/) * * Copyright (C) 2022 Streetwriters (Private) Limited * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ import RNFetchBlob from "rn-fetch-blob"; export const cacheDir = RNFetchBlob.fs.dirs.CacheDir; export function getRandomId(prefix) { return Math.random() .toString(36) .replace("0.", prefix || ""); } export function extractValueFromXmlTag(code, xml) { if (!xml.includes(code)) return `Unknown ${code}`; return xml.slice( xml.indexOf(`<${code}>`) + code.length + 2, xml.indexOf(``) ); } export async function fileCheck(response, totalSize) { if (totalSize < 1000) { let text = await response.text(); if (text.startsWith(" {} }; return (filename, { url, headers }) => { return { execute: () => operation(filename, { url, headers }, cancelToken), cancel: async () => { await cancelToken.cancel(); RNFetchBlob.fs.unlink(`${cacheDir}/${filename}`).catch(console.log); } }; }; }