Bump welshman, rename stripExifData

This commit is contained in:
Jon Staab
2025-09-18 12:17:31 -07:00
parent 7dcaa0e8d7
commit a0301d599b
7 changed files with 118 additions and 124 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
<script lang="ts">
import {randomId} from "@welshman/lib"
import {preventDefault, stopPropagation, stripExifData} from "@lib/html"
import {preventDefault, stopPropagation, compressFile} from "@lib/html"
import CloseCircle from "@assets/icons/close-circle.svg?dataurl"
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
import GallerySend from "@assets/icons/gallery-send.svg?dataurl"
@@ -30,11 +30,11 @@
const onDrop = async (e: any) => {
active = false
file = await stripExifData(e.dataTransfer.files[0])
file = await compressFile(e.dataTransfer.files[0])
}
const onChange = async (e: any) => {
file = await stripExifData(e.target.files[0])
file = await compressFile(e.target.files[0])
}
const onClear = () => {
@@ -1,6 +1,6 @@
<script lang="ts">
import {randomId} from "@welshman/lib"
import {preventDefault, stopPropagation, stripExifData} from "@lib/html"
import {preventDefault, stopPropagation, compressFile} from "@lib/html"
import CloseCircle from "@assets/icons/close-circle.svg?dataurl"
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
import GallerySend from "@assets/icons/gallery-send.svg?dataurl"
@@ -30,11 +30,11 @@
const onDrop = async (e: any) => {
active = false
file = await stripExifData(e.dataTransfer.files[0])
file = await compressFile(e.dataTransfer.files[0])
}
const onChange = async (e: any) => {
file = await stripExifData(e.target.files[0])
file = await compressFile(e.target.files[0])
}
const onClear = () => {
+12 -18
View File
@@ -1,4 +1,4 @@
import {sleep, last} from "@welshman/lib"
import {sleep, last, randomId} from "@welshman/lib"
export {preventDefault, stopPropagation} from "svelte/legacy"
export const copyToClipboard = (text: string) => {
@@ -136,29 +136,23 @@ export const scrollToEvent = async (id: string, attempts = 3): Promise<boolean>
return false
}
export const stripExifData = async (file, {maxWidth = null, maxHeight = null} = {}) => {
if (window.DataTransferItem && file instanceof DataTransferItem) {
file = file.getAsFile()
}
if (!file) {
return file
}
export const compressFile = async (file: File | Blob): Promise<File> => {
const {default: Compressor} = await import("compressorjs")
/* eslint no-new: 0 */
return new Promise((resolve, _reject) => {
return new Promise<File>((resolve, _reject) => {
new Compressor(file, {
maxWidth: maxWidth || 2048,
maxHeight: maxHeight || 2048,
maxWidth: 2048,
maxHeight: 2048,
convertSize: 10 * 1024 * 1024,
success: resolve,
success: result => resolve(result as File),
error: e => {
// Non-images break compressor
// Non-images break compressor, return the original file
if (e.toString().includes("File or Blob")) {
return resolve(file)
if (file instanceof Blob) {
file = new File([file], `${randomId()}.${file.type}`, {type: file.type})
}
return resolve(file as File)
}
_reject(e)