From b95c6a3de43121c061457039a4c926d5d34f2737 Mon Sep 17 00:00:00 2001 From: jsteuer <jan.steuer.htw@gmail.com> Date: Mon, 16 Dec 2019 13:28:22 +0100 Subject: [PATCH] better docs, helpers namespace --- src/index.ts | 67 --------------------------------- 1 files changed, 1 insertions(+), 66 deletions(-) diff --git a/src/index.ts b/src/index.ts index 3d8644f..4afae24 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,66 +1 @@ -/// <reference path="../mathcoach-api.d.ts"/> - -/** - * Offline MathCoach-API falls notwendig bereitstellen. Dabei wird das Dateisystem durch den - * LocalStorage des Browsers implementiert - einige Features der IDE (beispielsweise - * der Navigator) sind nicht verfügbar und führen keine Aktionen durch. - * - * **Hinweis**: Wenn die echte MathCoach-API der IDE verfügbar ist, hat der Aufruf - * dieser Funktion keinen Seiteneffekt. - * - * @param contextFileExtension Datei-Erweiterung der Kontext-Datei - * - */ -export function enableOfflineUsageIfNecessary(contextFileExtension: string = "dummy.json"): boolean { - - const fileIdentifier = (file: MathCoach.File) => `mock-file://${file.owner}@${file.part}/${file.path}`; - const traceMethod = (method: string, args?: any[]) => console.log(["[MC MOCK API]", " ", method, "(", (args ? args : [""]).join(","), ")"].join("")); - - class MockAPI implements MathCoach.Api { - - public ide: MathCoach.IdeApi = { - async getContextFile(): Promise<MathCoach.File> { - traceMethod("MC.ide.getContextFile"); - return { - owner: "jdoe", - path: `/file.${contextFileExtension}`, - part: "vfs" - } - }, - async getUserName(): Promise<string> { - traceMethod("MC.ide.getUserName"); - return "jdoe" - }, - fs: { - async readFile(file: MathCoach.File) { - traceMethod("MC.ide.fs.readFile", [JSON.stringify(file)]); - return localStorage.getItem(fileIdentifier(file)) || ""; - }, - async writeFile(file: MathCoach.File, text: string) { - traceMethod("MC.ide.fs.writeFile", [JSON.stringify(file), JSON.stringify(`...${text.length} chars...`)]); - return localStorage.setItem(fileIdentifier(file), text); - } - }, - navigator: { - async navigateTo(link: string, forceOpen?: boolean) { - traceMethod("MC.ide.navigator.navigateTo", [JSON.stringify(link), JSON.stringify(forceOpen ? true : false)]); - }, - async navigateToExercise(file: MathCoach.File, forceOpen?: boolean) { - traceMethod("MC.ide.navigator.navigateToExercise", [JSON.stringify(file), JSON.stringify(forceOpen ? true : false)]); - } - } - }; - public async isReady(): Promise<boolean> { - traceMethod("MC.isReady()"); - return true; - } - } - if (typeof MC === "undefined") { - console.warn("you are offline - offline api is used"); - (window as any).MC = new MockAPI(); // fake the MathCoach-API - return true; - } else { - return false; - } -} - +export * from "./Helpers" \ No newline at end of file -- Gitblit v1.10.0-SNAPSHOT