feat: pre-generate Directus image previews
Bundle extension (upload hook + API endpoint + admin module) that warms
Directus image transform cache in-process with an explicit acceptFormat,
so the generated file matches the browser's cache key byte-for-byte.
- resumable, window-aware backfill with progress + cancel
- system + custom presets, effective-format reporting, shadow warnings
- storage breakdown (previews vs originals), human-readable API fields
- diagnostics: resolve-plan prediction, per-file generate, ops ring buffer
- isolated dev/staging compose stack + deploy/rollback scripts
Verified on Directus 11.17.4: 40/40 tests, hash-match gate passed,
idempotent backfill, custom fixed-format presets, error surfacing.
2026-10-25 11:19:54 +03:00
{
2026-10-25 12:28:09 +03:00
"name" : "directus-extension-generate-image-previews" ,
"description" : "Pre-generate Directus image transforms: on upload, on demand, and via a scheduled resumable backfill, with an admin UI (progress, storage, maintenance window, diagnostics)" ,
"author" : {
"name" : "Rawman Grey" ,
"email" : "rawman@locus.im" ,
"url" : "https://locus.im"
} ,
"repository" : {
"type" : "git" ,
"url" : "https://code.at.locus.im/Rawman/directus-extension-generate-image-previews.git"
} ,
"homepage" : "https://code.at.locus.im/Rawman/directus-extension-generate-image-previews" ,
"bugs" : {
"url" : "https://code.at.locus.im/Rawman/directus-extension-generate-image-previews/issues"
} ,
"icon" : "extension" ,
2026-10-30 10:27:11 +03:00
"version" : "0.2.0" ,
2026-10-25 12:28:09 +03:00
"keywords" : [
"directus" ,
"directus-extension" ,
"directus-extension-bundle" ,
"images" ,
"thumbnails" ,
"previews" ,
"transformations"
] ,
"type" : "module" ,
"files" : [
"dist"
] ,
"directus:extension" : {
"type" : "bundle" ,
"path" : {
"app" : "dist/app.js" ,
"api" : "dist/api.js"
} ,
"entries" : [
{
"type" : "module" ,
"name" : "image-previews" ,
"source" : "src/module/index.ts"
} ,
{
"type" : "hook" ,
"name" : "image-previews-hook" ,
"source" : "src/hook/index.ts"
} ,
{
"type" : "endpoint" ,
"name" : "image-previews-endpoint" ,
"source" : "src/endpoint/index.ts"
}
] ,
"host" : "^11.0.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"scripts" : {
"build" : "directus-extension build" ,
"dev" : "directus-extension build -w --no-minify" ,
"link" : "directus-extension link" ,
"typecheck" : "tsc --noEmit" ,
"test" : "node --import tsx --test src/lib/*.test.ts"
} ,
"devDependencies" : {
"@directus/extensions-sdk" : "13.0.1" ,
"@types/node" : "^22.13.5" ,
"tsx" : "^4.19.2" ,
"typescript" : "^5.7.3" ,
"vue" : "^3.5.13"
} ,
"dependencies" : {
"object-hash" : "^3.0.0"
} ,
"license" : "MIT"
feat: pre-generate Directus image previews
Bundle extension (upload hook + API endpoint + admin module) that warms
Directus image transform cache in-process with an explicit acceptFormat,
so the generated file matches the browser's cache key byte-for-byte.
- resumable, window-aware backfill with progress + cancel
- system + custom presets, effective-format reporting, shadow warnings
- storage breakdown (previews vs originals), human-readable API fields
- diagnostics: resolve-plan prediction, per-file generate, ops ring buffer
- isolated dev/staging compose stack + deploy/rollback scripts
Verified on Directus 11.17.4: 40/40 tests, hash-match gate passed,
idempotent backfill, custom fixed-format presets, error surfacing.
2026-10-25 11:19:54 +03:00
}