Files
twenty_crm/server/src/utils/image.ts
Jérémy M 58530be78b feat: upload profile picture from google (#964)
* feat: upload profile picture from google

* fix: only add profile picture if user don't have any
2023-07-27 09:06:50 -07:00

32 lines
694 B
TypeScript

import axios from 'axios';
const cropRegex = /([w|h])([0-9]+)/;
export type ShortCropSize = `${'w' | 'h'}${number}` | 'original';
export interface CropSize {
type: 'width' | 'height';
value: number;
}
export const getCropSize = (value: ShortCropSize): CropSize | null => {
const match = value.match(cropRegex);
if (value === 'original' || match === null) {
return null;
}
return {
type: match[1] === 'w' ? 'width' : 'height',
value: +match[2],
};
};
export const getImageBufferFromUrl = async (url: string): Promise<Buffer> => {
const response = await axios.get(url, {
responseType: 'arraybuffer',
});
return Buffer.from(response.data, 'binary');
};