import fs from "node:fs" import path from "node:path" import filterConfigs from "./filterConfigs.js" import { cache_path } from "@polymech/cache" //import { createLogger } from "@polymech/log" import { sync as dir } from "@polymech/fs/dir" //const logger = createLogger("imagetools") export const sharp = await (async () => { try { if (await import("sharp")) { return true; } } catch (error) { return false; } })(); export const supportedImageTypes = [ "avif", "jpeg", "jpg", "png", "webp", ...(sharp ? ["heic", "heif", "tiff", "gif"] : ["jxl", "wp2"]), ]; // prettier-ignore export const supportedConfigs = [ "src", "alt", "tag", "content", "sizes", "preload", "loading", "decoding", "attributes", "layout", "placeholder", "breakpoints", "objectFit", "objectPosition", "backgroundSize", "backgroundPosition", "format", "fallbackFormat", "includeSourceFormat", "formatOptions", "fadeInTransition", "artDirectives", "flip", "flop", "invert", "flatten", "normalize", "grayscale", "hue", "saturation", "brightness", "w", "h", "ar", "width", "height", "aspect", "background", "tint", "blur", "median", "rotate", "quality", "fit", "kernel", "position", "cacheDir", "assetFileNames", ]; /* const configFile = await findUp([ "astro-imagetools.config.js", "astro-imagetools.config.mjs", ]); */ /* const configFunction = configFile ? await import(configFile).catch(async () => await import("/" + configFile)) : null; */ const configFunction = null //const rawGlobalConfigOptions = configFunction?.default ?? {}; const rawGlobalConfigOptions = {} const NonGlobalConfigOptions = ["src", "alt", "content"] const GlobalConfigs = supportedConfigs.filter( (key) => !NonGlobalConfigOptions.includes(key) ) const GlobalConfigOptions = filterConfigs( "Global", rawGlobalConfigOptions, GlobalConfigs ) export { GlobalConfigOptions } export const cwd = process.cwd().split(path.sep).join(path.posix.sep) let fsCachePath = `${cache_path('imagetools')}/` dir(fsCachePath) export { fsCachePath }