Xenova's picture
Xenova HF Staff
Upload 65 files
ea7122c verified
Raw History Blame Contribute Delete
1.28 kB
import { cp, mkdir, readFile, rm, stat } from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import path from 'node:path';
const root = fileURLToPath(new URL('../', import.meta.url));
const output = path.join(root, 'dist');
const directories = ['assets', 'src', 'runtime', 'vendor', 'file-icons', 'library-icons', 'licenses'];
const files = ['index.html', 'favicon.svg', 'empty-cat-v1.png', 'modal-cat-v1.png',
'openbmb-avatar.webp', 'cat-meow-v1.mp3', 'social-thumbnail-v3.png', 'LICENSE', 'NOTICE'];
// Catch missing LFS downloads before packaging what would look like broken images.
for (const name of ['empty-cat-v1.png', 'modal-cat-v1.png', 'social-thumbnail-v3.png']) {
const file = await readFile(path.join(root, name));
if (file.subarray(0, 42).toString().startsWith('version https://git-lfs.github.com/spec/')) {
throw new Error(`${name} is a Git LFS pointer. Run git lfs pull before building.`);
}
}
await rm(output, { recursive: true, force: true });
await mkdir(output);
for (const item of [...directories, ...files]) {
await stat(path.join(root, item));
await cp(path.join(root, item), path.join(output, item), { recursive: true });
}
console.log('Built dist/ — static files ready for localhost or a Hugging Face static Space.');