From 0b26f4df39a177316359651762436095ee3c0d73 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 30 Mar 2024 20:06:02 -0700 Subject: [PATCH] snapshot: avoid internal api --- plugins/snapshot/package-lock.json | 4 ++-- plugins/snapshot/package.json | 2 +- plugins/snapshot/src/image-reader.ts | 12 ++++-------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/plugins/snapshot/package-lock.json b/plugins/snapshot/package-lock.json index 41b5cbc7c..e94d9583e 100644 --- a/plugins/snapshot/package-lock.json +++ b/plugins/snapshot/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/snapshot", - "version": "0.2.42", + "version": "0.2.43", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/snapshot", - "version": "0.2.42", + "version": "0.2.43", "dependencies": { "@types/node": "^20.10.6", "sharp": "^0.33.1", diff --git a/plugins/snapshot/package.json b/plugins/snapshot/package.json index 4be62fd03..81ebf9b5e 100644 --- a/plugins/snapshot/package.json +++ b/plugins/snapshot/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/snapshot", - "version": "0.2.42", + "version": "0.2.43", "description": "Snapshot Plugin for Scrypted", "scripts": { "scrypted-setup-project": "scrypted-setup-project", diff --git a/plugins/snapshot/src/image-reader.ts b/plugins/snapshot/src/image-reader.ts index 6f7e24baa..59352f1e3 100644 --- a/plugins/snapshot/src/image-reader.ts +++ b/plugins/snapshot/src/image-reader.ts @@ -1,5 +1,6 @@ import sdk, { BufferConverter, Image, ImageOptions, MediaObject, MediaObjectOptions, ScryptedDeviceBase, ScryptedMimeTypes } from "@scrypted/sdk"; import type sharp from 'sharp'; +import type { KernelEnum } from "sharp"; let hasLoadedSharp = false; let sharpInstance: typeof sharp; @@ -8,8 +9,6 @@ export function loadSharp() { hasLoadedSharp = true; try { sharpInstance = require('sharp'); - // not exposed by sharp but it exists. - (sharpInstance.kernel as any).linear = 'linear'; console.log('sharp loaded'); } catch (e) { @@ -60,11 +59,8 @@ export class VipsImage implements Image { }); } if (options?.resize) { - let kernel: string; + let kernel: keyof KernelEnum; switch (options?.resize.filter) { - case 'bilinear': - kernel = 'linear'; - break; case 'lanczos': kernel = 'lanczos2'; break; @@ -75,12 +71,12 @@ export class VipsImage implements Image { kernel = 'nearest'; break; default: - kernel = 'linear'; + kernel = 'cubic'; break } transformed.resize(typeof options.resize.width === 'number' ? Math.floor(options.resize.width) : undefined, typeof options.resize.height === 'number' ? Math.floor(options.resize.height) : undefined, { fit: "cover", - kernel: kernel as any, + kernel: kernel, }); }