5e29723b05
Bump `squoosh` to the latest version, currently commit [cad09160](cad09160b6
).
Ideally, we would use the version published to npm but it hasn't been published in [two months](https://www.npmjs.com/package/@squoosh/lib?activeTab=versions) and we have a patch (#23565) that isn't available upstream.
This also is a precursor to getting support for AVIF.
- Fixes #27092
- Fixes #26527
- Reapplies the patch from #23565
26 lines
794 B
TypeScript
26 lines
794 B
TypeScript
import { fileURLToPath } from 'url'
|
|
|
|
export function pathify(path: string): string {
|
|
if (path.startsWith('file://')) {
|
|
path = fileURLToPath(path)
|
|
}
|
|
return path
|
|
}
|
|
|
|
export function instantiateEmscriptenWasm<T extends EmscriptenWasm.Module>(
|
|
factory: EmscriptenWasm.ModuleFactory<T>,
|
|
path: string,
|
|
workerJS: string = ''
|
|
): Promise<T> {
|
|
return factory({
|
|
locateFile(requestPath) {
|
|
// The glue code generated by emscripten uses the original
|
|
// file names of the worker file and the wasm binary.
|
|
// These will have changed in the bundling process and
|
|
// we need to inject them here.
|
|
if (requestPath.endsWith('.wasm')) return pathify(path)
|
|
if (requestPath.endsWith('.worker.js')) return pathify(workerJS)
|
|
return requestPath
|
|
},
|
|
})
|
|
}
|