Files
upload-gltf/lib/constants.ts
T
Tom Boullay 8bbc0dc0eb fix: push files via Git LFS instead of raw blobs
Binary files (.glb, .gltf, .png, .jpg, .jpeg, .webp) were pushed as raw
Git blobs via Octokit, bypassing Git LFS. This caused LFS-tracked repos
to see all files as modified after git pull, requiring spurious commits.

Now the bot uploads binaries to the LFS server via the Batch API and
stores LFS pointer files in the Git tree. Also fixes getRemoteFolder()
to read the real file size from LFS pointers instead of the pointer size.
2026-04-15 09:38:05 +02:00

33 lines
1.3 KiB
TypeScript

// ---------------------------------------------------------------------------
// Shared constants — used by both client and server
// ---------------------------------------------------------------------------
export const MODEL_EXTENSIONS = new Set(['.glb', '.gltf'])
export const TEXTURE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.webp'])
export const ALL_ALLOWED_EXTENSIONS = new Set([...MODEL_EXTENSIONS, ...TEXTURE_EXTENSIONS])
/** Extensions tracked by Git LFS (must match .gitattributes) */
export const LFS_EXTENSIONS = new Set(['.glb', '.gltf', '.png', '.jpg', '.jpeg', '.webp'])
export const REQUIRED_TEXTURES = ['roughness', 'normal', 'metalness', 'color', 'displace'] as const
export const VALID_DESTINATIONS = new Set<string>([
'farm', 'map', 'powergrid', 'workshop', 'general', 'environment',
])
export const DESTINATIONS = [
{ value: 'farm', label: 'Farm' },
{ value: 'map', label: 'Map' },
{ value: 'powergrid', label: 'Powergrid' },
{ value: 'workshop', label: 'Workshop' },
{ value: 'general', label: 'General' },
{ value: 'environment', label: 'Environment' },
] as const
export type Destination = typeof DESTINATIONS[number]['value']
export const TMP_DIR = '/tmp/assets'
/** Maximum file size in bytes (100 MB) */
export const MAX_FILE_SIZE = 100 * 1024 * 1024