webpack-image-resize-loader
Version:
Webpack loader to resize imported images
29 lines (28 loc) • 1.73 kB
TypeScript
import fileLoader from "file-loader";
import sharp from "sharp";
import { loader } from "webpack";
export interface Options {
readonly width?: number;
readonly height?: number;
readonly fit?: "cover" | "contain" | "fill" | "inside" | "outside";
readonly position?: "top" | "right top" | "right" | "right bottom" | "bottom" | "left bottom" | "left" | "left top" | "north" | "northeast" | "east" | "southeast" | "south" | "southwest" | "west" | "northwest" | "center" | "centre" | "entropy" | "attention";
readonly background?: sharp.Color;
readonly scale?: number;
readonly format?: "jpeg" | "png" | "webp" | "avif" | "tiff";
readonly quality?: number;
readonly scaleUp?: boolean;
readonly sharpOptions?: {
readonly resize?: Partial<sharp.ResizeOptions>;
readonly png?: Partial<sharp.PngOptions>;
readonly jpeg?: Partial<sharp.JpegOptions>;
readonly webp?: Partial<sharp.WebpOptions>;
readonly avif?: Partial<sharp.AvifOptions>;
readonly tiff?: Partial<sharp.TiffOptions>;
};
readonly fileLoader?: string;
readonly fileLoaderOptionsGenerator?: string | ((options: Omit<FullOptions, "optionsGenerator">, existingOptions: Record<string, any> | undefined) => Record<string, any>);
}
export declare type FullOptions = Options & Required<Pick<Options, "scaleUp" | "format" | "sharpOptions" | "fileLoader" | "fileLoaderOptionsGenerator">>;
export declare const raw = true;
export default function (this: loader.LoaderContext, content: ArrayBuffer): void;
export declare function defaultFileLoaderOptionsGenerator({ format }: Omit<FullOptions, "optionsGenerator">, existingOptions: fileLoader.Options | undefined): fileLoader.Options;