38 lines
825 B
TypeScript
38 lines
825 B
TypeScript
import type { Id } from "../_generated/dataModel"
|
|
|
|
export type DirectoryPathComponent = {
|
|
handle: DirectoryHandle
|
|
name: string
|
|
}
|
|
|
|
export type FilePathComponent = {
|
|
handle: FileHandle
|
|
name: string
|
|
}
|
|
|
|
export type PathComponent = FilePathComponent | DirectoryPathComponent
|
|
|
|
export type FilePath = [...DirectoryPathComponent[], PathComponent]
|
|
|
|
export type ReverseFilePath = [PathComponent, ...DirectoryPathComponent[]]
|
|
|
|
export type FileHandle = {
|
|
kind: "file"
|
|
id: Id<"files">
|
|
}
|
|
|
|
export type DirectoryHandle = {
|
|
kind: "directory"
|
|
id: Id<"directories">
|
|
}
|
|
|
|
export type FileSystemHandle = DirectoryHandle | FileHandle
|
|
|
|
export function newDirectoryHandle(id: Id<"directories">): DirectoryHandle {
|
|
return { kind: "directory", id }
|
|
}
|
|
|
|
export function newFileHandle(id: Id<"files">): FileHandle {
|
|
return { kind: "file", id }
|
|
}
|