...
jsteuer
2019-12-11 94c5dbd06ea1f662ceaafede992d1f931420e70c
1
{"version":3,"file":"ide-tool-utils.js","sources":["../es6/index.js"],"sourcesContent":["/// <reference path=\"./mathcoach-api.d.ts\"/>\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\n/**\n * Offline MathCoach-API falls notwendig bereitstellen. Dabei wird das Dateisystem durch den\n * LocalStorage des Browsers implementiert - einige Features der IDE (beispielsweise\n * der Navigator) sind nicht verfügbar und führen keine Aktionen durch.\n *\n * **Hinweis**: Wenn die echte MathCoach-API der IDE verfügbar ist, hat der Aufruf\n * dieser Funktion keinen Seiteneffekt.\n *\n * @param contextFileExtension Datei-Erweiterung der Kontext-Datei\n *\n */\nexport function enableOfflineUsageIfNecessary(contextFileExtension = \"dummy.json\") {\n    const fileIdentifier = (file) => `mock-file://${file.owner}@${file.part}/${file.path}`;\n    const traceMethod = (method, args) => console.log([\"[MC MOCK API]\", \" \", method, \"(\", (args ? args : [\"\"]).join(\",\"), \")\"].join(\"\"));\n    class MockAPI {\n        constructor() {\n            this.ide = {\n                getContextFile() {\n                    return __awaiter(this, void 0, void 0, function* () {\n                        traceMethod(\"MC.ide.getContextFile\");\n                        return {\n                            owner: \"jdoe\",\n                            path: `/file.${contextFileExtension}`,\n                            part: \"vfs\"\n                        };\n                    });\n                },\n                getUserName() {\n                    return __awaiter(this, void 0, void 0, function* () {\n                        traceMethod(\"MC.ide.getUserName\");\n                        return \"jdoe\";\n                    });\n                },\n                fs: {\n                    readFile(file) {\n                        return __awaiter(this, void 0, void 0, function* () {\n                            traceMethod(\"MC.ide.fs.readFile\", [JSON.stringify(file)]);\n                            return localStorage.getItem(fileIdentifier(file)) || \"\";\n                        });\n                    },\n                    writeFile(file, text) {\n                        return __awaiter(this, void 0, void 0, function* () {\n                            traceMethod(\"MC.ide.fs.writeFile\", [JSON.stringify(file), JSON.stringify(`...${text.length} chars...`)]);\n                            return localStorage.setItem(fileIdentifier(file), text);\n                        });\n                    }\n                },\n                navigator: {\n                    navigateTo(link, forceOpen) {\n                        return __awaiter(this, void 0, void 0, function* () {\n                            traceMethod(\"MC.ide.navigator.navigateTo\", [JSON.stringify(link), JSON.stringify(forceOpen ? true : false)]);\n                        });\n                    },\n                    navigateToExercise(file, forceOpen) {\n                        return __awaiter(this, void 0, void 0, function* () {\n                            traceMethod(\"MC.ide.navigator.navigateToExercise\", [JSON.stringify(file), JSON.stringify(forceOpen ? true : false)]);\n                        });\n                    }\n                }\n            };\n        }\n        isReady() {\n            return __awaiter(this, void 0, void 0, function* () {\n                traceMethod(\"MC.isReady()\");\n                return true;\n            });\n        }\n    }\n    if (typeof MC === \"undefined\") {\n        console.warn(\"you are offline - offline api is used\");\n        window.MC = new MockAPI(); // fake the MathCoach-API\n        return true;\n    }\n    else {\n        return false;\n    }\n}\n/**\n * Kontext-Datei auf Aufgaben-Datei abbilden.\n * Beispiel: \"/path/to/myExercise.mcq.json\" zu \"/path/to/myExercise.groovy\"\n */\nexport function contextFileToExerciseFile(contextFile) {\n    if (contextFile) {\n        if (!contextFile.owner || !(typeof contextFile.owner === \"string\") || !(contextFile.owner.trim() === \"\")) {\n            throw new Error(\"Context file has no valid 'owner' property.\");\n        }\n        if (!contextFile.part || !(typeof contextFile.part === \"string\")) {\n            if (contextFile.part !== \"vfs\" && contextFile.part !== \"www\") {\n                throw new Error(\"Context file has no valid 'part' property. Allowed values are 'vfs' and 'www'.\");\n            }\n        }\n        if (!contextFile.path || !(typeof contextFile.path === \"string\") || !(contextFile.owner.trim().startsWith(\"/\"))) {\n            throw new Error(\"Context file has no valid 'path' property.\");\n        }\n    }\n    else {\n        throw new Error(\"No context file object given.\");\n    }\n    let file = {\n        part: contextFile.part,\n        owner: contextFile.owner,\n        path: contextFile.path.split(\".\")[0] + \".groovy\"\n    };\n    return file;\n}\n//# sourceMappingURL=index.js.map"],"names":["this"],"mappings":"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"}