36 lines
824 B
TypeScript
36 lines
824 B
TypeScript
import { remove } from 'fs-extra'
|
|
import { join } from 'path'
|
|
import { processImage } from '@server/helpers/image-utils'
|
|
import { doRequestAndSaveToFile } from '@server/helpers/requests'
|
|
import { CONFIG } from '@server/initializers/config'
|
|
|
|
async function downloadImage (options: {
|
|
url: string
|
|
destDir: string
|
|
destName: string
|
|
size: { width: number, height: number }
|
|
}) {
|
|
const { url, destDir, destName, size } = options
|
|
|
|
const tmpPath = join(CONFIG.STORAGE.TMP_DIR, 'pending-' + destName)
|
|
await doRequestAndSaveToFile(url, tmpPath)
|
|
|
|
const destPath = join(destDir, destName)
|
|
|
|
try {
|
|
await processImage({ path: tmpPath, destination: destPath, newSize: size })
|
|
} catch (err) {
|
|
await remove(tmpPath)
|
|
|
|
throw err
|
|
}
|
|
|
|
return destPath
|
|
}
|
|
|
|
module.exports = downloadImage
|
|
|
|
export {
|
|
downloadImage
|
|
}
|