kui-shell
Version:
This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool
61 lines • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const core_1 = require("@kui-shell/core");
const language_scan_1 = require("../language-scan");
const defaults_1 = require("./defaults");
let amdRequire;
let initDone;
function uriFromPath(_path) {
let pathName = path.resolve(_path).replace(/\\/g, '/');
if (pathName.length > 0 && pathName.charAt(0) !== '/') {
pathName = '/' + pathName;
}
return encodeURI('file://' + pathName);
}
exports.default = (editorWrapper, options) => {
const nodeRequire = global['require'];
let editor;
const ready = () => new Promise(resolve => {
const iter = () => {
if (typeof AMDLoader === 'undefined') {
setTimeout(iter, 20);
}
else {
if (!amdRequire) {
amdRequire = global['require'];
global['require'] = nodeRequire;
if (!core_1.Capabilities.inBrowser()) {
const monacoRoot = path.dirname(require.resolve('monaco-editor/package.json'));
amdRequire.config({
baseUrl: uriFromPath(path.join(monacoRoot, 'min'))
});
}
self['module'] = undefined;
}
if (editor) {
return resolve(editor);
}
const initEditor = () => {
if (!initDone) {
global['monaco'].languages.typescript.javascriptDefaults.setCompilerOptions({
noLib: true,
allowNonTsExtensions: true
});
language_scan_1.default(global['monaco']).forEach(({ language, provider }) => {
global['monaco'].languages.registerCompletionItemProvider(language, provider);
});
global['define'] = undefined;
initDone = true;
}
editor = global['monaco'].editor.create(editorWrapper, Object.assign(defaults_1.default(options), options));
resolve(editor);
};
amdRequire(['vs/editor/editor.main'], initEditor);
}
};
iter();
});
return ready();
};
//# sourceMappingURL=amd.js.map