import * as fs from 'fs'; import * as util from 'util'; import Logger from '@/services/logger'; import { createTemp } from './create-temp'; import { downloadUrl } from './download-url'; const logger = new Logger('download-text-file'); export async function downloadTextFile(url: string): Promise { // Create temp file const [path, cleanup] = await createTemp(); logger.info(`Temp file is ${path}`); try { // write content at URL to temp file await downloadUrl(url, path); const text = await util.promisify(fs.readFile)(path, 'utf8'); return text; } finally { cleanup(); } }