import FileService, { IFolderStructure } from "./FileService"; import FileModel from "../model/FileModel"; import IContentModel from "../model/IContentModel"; import Logger from "./Logger"; /** * Downloads and manages source code in the browser * this also saves source code snapshot in the browser */ export default class SourceService { root: FileModel; folder: IFolderStructure; isCompiling: boolean; get dirty(): boolean; errors: monaco.languages.typescript.Diagnostic[]; warnings: monaco.languages.typescript.Diagnostic[]; messages: FileModel[]; position: { lineNumber: number; column: number; }; fileService: FileService; logger: Logger; private app; private fileUploadService; private editorIDService; private disposableList; private watchList; private tsWorker; /** * Updates the current model by downloading * all files from the given source location * @param url url */ updateModel(url: string): Promise; save(url: string): Promise; generateTemplate(template: IContentModel): Promise; createFile(name: string, { content, tempUrl, remoteUrl, snapshot }: { content?: string; tempUrl?: string; remoteUrl?: string; snapshot?: string; }, watch?: boolean): void; deleteFile(file: FileModel, broadcast?: boolean): Promise; renameFile(file: FileModel, name: string): Promise; expandTemplate(template: IContentModel, templateRoot: string, srcFolder?: string, name?: string): Promise; private downloadFiles; private watchFiles; private watchModel; private getWorker; private updateFileModel; private updateMessages; private openView; }