fragment File on File {
    name
    size
}

fragment TorrentDir on TorrentFS {
    name
    torrent {
        name
        infohash
        bytesCompleted
        torrentFilePath
        bytesMissing
    }
}


fragment ArchiveDir on ArchiveFS {
    name
    size
}

fragment DirEntry on FsEntry {
    name

    ...TorrentDir
    ...ArchiveDir
    ...File
}


query ListDir($path: String!) {
    fsEntry(path: $path) {
        name
        
        ... on Dir {
            entries {
               ...DirEntry
            }
        }

        ...TorrentDir
        ...ArchiveDir
    }
}