UNPKG

@yuntijs/ui

Version:

☁️ Yunti UI - an open-source UI component library for building Cloud Native web apps

64 lines 2.17 kB
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import loader from '@monaco-editor/loader'; import { isEqual } from 'lodash-es'; import { controller } from "./controller"; export var getSingletonMonaco = function () { var monaco; var prevOptions; return /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(options) { var hasConfig; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (!(!monaco || !isEqual(prevOptions, options))) { _context.next = 7; break; } hasConfig = Object.keys(options || {}).length > 0; loader.config(hasConfig ? options : { paths: { vs: 'https://g.alicdn.com/code/lib/monaco-editor/0.33.0/min/vs' } }); // eslint-disable-next-line require-atomic-updates _context.next = 5; return loader.init(); case 5: monaco = _context.sent; // eslint-disable-next-line require-atomic-updates prevOptions = options; case 7: return _context.abrupt("return", monaco); case 8: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref.apply(this, arguments); }; }(); }(); export var getCommonMonaco = function getCommonMonaco(config) { if (config) { loader.config(config); } else { loader.config({ paths: { vs: 'https://g.alicdn.com/code/lib/monaco-editor/0.31.1/min/vs' } }); } return loader.init(); }; export function getMonaco(config) { var hasConfig = Object.keys(config || {}).length > 0; var monacoConfig = hasConfig ? config : undefined; return controller.getMeta().singleton ? getSingletonMonaco(monacoConfig) : getCommonMonaco(monacoConfig); } export function configure(config) { controller.updateMeta(config); }