Refactoring round one: HttpFontStore/HttpSoundStore/HttpTextureStore collapse into a generic HttpFileStore over a FileStore contract; fontImport/soundImport/textureImport share assetImport with an ImportKind per sort; ImagePicker/FontPicker/SoundPicker sit on FilePicker and describe only their row. The group/comment drag logic leaves GraphCanvas for annotationDrag.ts (with its own unit test), declaredRows.ts replaces the duplicated row build in particles.ts and shaders.ts, and dead code in font/sound/compile/emission/transform/actions is gone. README: asset list, check count 958, the two-job CI, the Scenes wiki page. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
10 lines
387 B
TypeScript
10 lines
387 B
TypeScript
import type { FileStore, StoredFile, UploadedFile } from './FileStore';
|
|
|
|
/**
|
|
* Stored in `data/fonts/` as `{sha256}.{ttf|otf|woff|woff2}`. Unlike an image a font is never
|
|
* re-encoded on the way, so what the server stores is what was picked.
|
|
*/
|
|
export type UploadedFont = UploadedFile;
|
|
export type StoredFont = StoredFile;
|
|
export type FontStore = FileStore<UploadedFont, StoredFont>;
|