UNPKG

@mieweb/wikigdrive

Version:

Google Drive to MarkDown synchronization

62 lines (48 loc) 1.24 kB
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; }