@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
62 lines (48 loc) • 1.24 kB
text/typescript
import {DateISO, FileId} from './model.ts';
export interface CommonFileData {
title: string;
id: FileId;
modifiedTime?: DateISO;
fileName: string;
mimeType?: string;
version?: number;
}
export interface ConflictData {
realFileName: string;
id: FileId;
title: string;
}
export interface ConflictFile extends CommonFileData {
type: 'conflict';
conflicting: ConflictData[];
}
export interface RedirFile extends CommonFileData {
type: 'redir';
redirectTo: FileId;
}
export interface MdFile extends CommonFileData {
lastAuthor: string;
type: 'md';
}
export interface DrawingFile extends CommonFileData {
type: 'drawing';
}
export interface BinaryFile extends CommonFileData { // TODO md5?
type: 'binary';
}
export interface ShortcutFile extends CommonFileData {
type: 'shortcut';
}
export interface Directory extends CommonFileData {
type: 'directory';
}
export type LocalFile = MdFile | RedirFile | ConflictFile | Directory | DrawingFile | BinaryFile | ShortcutFile;
export function isRedirect(file: LocalFile) {
return file.type === 'redir';
}
export function isConflict(file: LocalFile) {
return file.type === 'conflict';
}
export interface LocalFileMap {
[id: string]: LocalFile;
}