diff options
Diffstat (limited to 'src/server/DashUploadUtils.ts')
-rw-r--r-- | src/server/DashUploadUtils.ts | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index b2616af1f..6cad49033 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -54,7 +54,7 @@ export namespace DashUploadUtils { } export const Sizes: { [size: string]: Size } = { - LARGE: { width: 900, suffix: SizeSuffix.Large }, + LARGE: { width: 800, suffix: SizeSuffix.Large }, MEDIUM: { width: 400, suffix: SizeSuffix.Medium }, SMALL: { width: 100, suffix: SizeSuffix.Small }, }; @@ -594,20 +594,17 @@ export namespace DashUploadUtils { * @param outputDirectory the directory to output to, usually Directory.Images * @returns a map with suffixes as keys and resized filenames as values. */ - export async function outputResizedImages(sourcePath: string, outputFileName: string, outputDirectory: string) { - return await new Promise<{ [suffix: string]: string }>(async resolve => { - Jimp.read(sourcePath).then(async img => { - const writtenFiles: { [suffix: string]: string } = {}; - for (const { width, suffix } of resizers(path.extname(outputFileName))) { + export function outputResizedImages(sourcePath: string, outputFileName: string, outputDirectory: string) { + const writtenFiles: { [suffix: string]: string } = {}; + return Jimp.read(sourcePath).then(async img => { + await Promise.all( + imageResampleSizes(path.extname(outputFileName)).map(({ width, suffix }) => { const outputPath = path.resolve(outputDirectory, (writtenFiles[suffix] = InjectSize(outputFileName, suffix))); - await new Promise<void>(async res => { - if (!width) createReadStream(sourcePath).pipe(createWriteStream(outputPath)).on('close', res); - else img = img.resize(width, Jimp.AUTO).write(outputPath); - res(); - }); - } - resolve(writtenFiles); - }); + if (!width) return new Promise<void>(res => createReadStream(sourcePath).pipe(createWriteStream(outputPath)).on('close', res)); + else img = img.resize(width, Jimp.AUTO).write(outputPath); + }) // prettier-ignore + ); + return writtenFiles; }); } @@ -616,10 +613,10 @@ export namespace DashUploadUtils { * @param ext the extension * @returns an array of resize descriptions */ - function resizers(ext: string): DashUploadUtils.ImageResizer[] { + export function imageResampleSizes(ext: string): DashUploadUtils.ImageResizer[] { return [ { suffix: SizeSuffix.Original }, - ...[...(AcceptableMedia.imageFormats.includes(ext) ? Object.values(DashUploadUtils.Sizes) : [])].map(({ suffix, width }) => ({ + ...[...(AcceptableMedia.imageFormats.includes(ext.toLowerCase()) ? Object.values(DashUploadUtils.Sizes) : [])].map(({ suffix, width }) => ({ width, suffix, })), |