mirror of
https://github.com/community-scripts/ProxmoxVE-Local.git
synced 2026-07-22 05:33:03 -04:00
* fix: use optional chaining for WebSocket state checks and improve error handling in remote command execution * chore(deps): update Next.js, Vitest, and ESLint dependencies; clean up eslint-disable comments * chore: add vite as a dependency in package.json --------- Co-authored-by: ProxmoxVE Developer <dev@localhost>
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
/**
|
|
* Build-time script: fetch all logos from PocketBase and cache them to public/logos/.
|
|
* Called as part of `npm run build` so the app starts with logos pre-cached.
|
|
*/
|
|
|
|
import { getPb } from '../src/server/services/pbService';
|
|
import { cacheLogos } from '../src/server/services/logoCacheService';
|
|
|
|
async function main() {
|
|
console.log('[cache-logos] Fetching script list from PocketBase...');
|
|
const pb = getPb();
|
|
const records = await pb.collection('script_scripts').getFullList({
|
|
fields: 'slug,logo',
|
|
batch: 500,
|
|
});
|
|
|
|
const entries = records
|
|
|
|
.filter((r) => r.logo)
|
|
.map((r) => ({ slug: r.slug, url: r.logo }));
|
|
|
|
console.log(`[cache-logos] Caching ${entries.length} logos...`);
|
|
|
|
const result = await cacheLogos(entries);
|
|
console.log(
|
|
`[cache-logos] Done: ${result.downloaded} downloaded, ${result.skipped} already cached, ${result.errors} errors`,
|
|
);
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error('[cache-logos] Failed:', err);
|
|
// Non-fatal — build should continue even if logo caching fails
|
|
process.exit(0);
|
|
});
|