import http from '@/api/http'; import { rawDataToFileObject } from '@/api/transformers'; export interface FileObject { key: string; name: string; mode: string; modeBits: string, size: number; isFile: boolean; isSymlink: boolean; mimetype: string; createdAt: Date; modifiedAt: Date; isArchiveType: () => boolean; isEditable: () => boolean; } export default async (uuid: string, directory?: string): Promise => { const { data } = await http.get(`/api/client/servers/${uuid}/files/list`, { // At this point the directory is still encoded so we need to decode it since axios // will automatically re-encode this value before sending it along in the request. params: { directory: directory ?? '/' }, }); return (data.data || []).map(rawDataToFileObject); };