UNPKG

rehype-image-optim

Version:

rehype plugin to change the `src` (and `srcset`/`sizes`) of images to optimized versions from your image CDN/optimization provider

30 lines 1.9 kB
import type { Root } from "hast"; import transformers from "./link-transformer/index.js"; type TransformerTypes = keyof typeof transformers; type TransformerFunction<T = any> = (original: string, options: T) => string; type OptimizeOptions<Provider extends TransformerTypes | TransformerFunction<any>> = Provider extends TransformerTypes ? (typeof transformers)[Provider] extends (originalLink: string, options: infer Options) => string ? Options : never : Provider extends TransformerFunction<infer T> ? T : never; type Options<Provider extends TransformerTypes | TransformerFunction<any>, OptOptions extends OptimizeOptions<Provider>> = { provider: Provider; originValidation?: string | RegExp | ((arg0: string) => boolean); /** * Options for the image optimization. Used to replace the image `src` property. * * If set to undefined, will not replace the `src` property. * * Else, this value is passed to the transformer function. */ optimizeSrcOptions?: OptOptions; /** * Options for the image optimization. Used to replace the image `srcset` property. * The `descriptor` is a string that describes the size of the image or density. * * @see https://developers.cloudflare.com/images/transform-images/make-responsive-images/ */ srcsetOptionsList?: [OptOptions, string][]; sizesOptionsList?: string[] | string; style?: string; }; export default function rehypeImageOptimization<Provider extends TransformerTypes | TransformerFunction<any>, OptOptions extends OptimizeOptions<Provider>>(options: Options<Provider, OptOptions>): (tree: Root) => void; export declare function defineOptions<Provider extends TransformerTypes | TransformerFunction<any>, OptOptions extends OptimizeOptions<Provider>>(options: Options<Provider, OptOptions>): Options<Provider, OptOptions>; export {}; //# sourceMappingURL=index.d.ts.map