2019-03-11 05:23:29 -06:00
|
|
|
import * as fs from 'fs';
|
|
|
|
import * as util from 'util';
|
|
|
|
import Logger from '../services/logger';
|
2019-03-20 13:50:44 -06:00
|
|
|
import { createTemp } from './create-temp';
|
2020-04-11 04:49:25 -06:00
|
|
|
import { downloadUrl } from './download-url';
|
2019-03-11 05:23:29 -06:00
|
|
|
|
|
|
|
const logger = new Logger('download-text-file');
|
|
|
|
|
|
|
|
export async function downloadTextFile(url: string): Promise<string> {
|
|
|
|
// Create temp file
|
2019-03-20 13:50:44 -06:00
|
|
|
const [path, cleanup] = await createTemp();
|
2019-03-11 05:23:29 -06:00
|
|
|
|
|
|
|
logger.info(`Temp file is ${path}`);
|
|
|
|
|
2019-03-20 13:50:44 -06:00
|
|
|
try {
|
|
|
|
// write content at URL to temp file
|
|
|
|
await downloadUrl(url, path);
|
2019-03-11 05:23:29 -06:00
|
|
|
|
2019-03-20 13:50:44 -06:00
|
|
|
const text = await util.promisify(fs.readFile)(path, 'utf8');
|
2019-03-11 05:23:29 -06:00
|
|
|
|
2019-03-20 13:50:44 -06:00
|
|
|
return text;
|
|
|
|
} finally {
|
|
|
|
cleanup();
|
|
|
|
}
|
2019-03-11 05:23:29 -06:00
|
|
|
}
|