UNPKG

@jrmc/adonis-attachment

Version:

Turn any field on your Lucid model to an attachment data type

33 lines (32 loc) 986 B
/** * @jrmc/adonis-attachment * * @license MIT * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr> */ import { fileTypeFromBuffer, fileTypeFromFile } from 'file-type'; import Converter from './converter.js'; import ImageConverter from './image_converter.js'; import VideoThumnailConverter from './video_thumbnail_converter.js'; export default class AutodetectConverter extends Converter { async handle({ input, options }) { let converter; let fileType; if (Buffer.isBuffer(input)) { fileType = await fileTypeFromBuffer(input); } else { fileType = await fileTypeFromFile(input); } if (fileType?.mime.includes('video')) { converter = new VideoThumnailConverter(options, this.binPaths); } else { converter = new ImageConverter(options, this.binPaths); } return converter.handle({ input, options, }); } }