@kusto/monaco-kusto 12.0.10 → 12.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,39 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
1
37
  var __rest = (this && this.__rest) || function (s, e) {
2
38
  var t = {};
3
39
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -14,24 +50,33 @@ var WorkerManager = /** @class */ (function () {
14
50
  var _this = this;
15
51
  this._monacoInstance = _monacoInstance;
16
52
  this._defaults = defaults;
17
- this._worker = null;
18
53
  this._idleCheckInterval = self.setInterval(function () { return _this._checkIfIdle(); }, 30 * 1000);
19
- this._lastUsedTime = 0;
20
54
  this._configChangeListener = this._defaults.onDidChange(function () { return _this._saveStateAndStopWorker(); });
21
55
  }
22
56
  WorkerManager.prototype._stopWorker = function () {
23
- if (this._worker) {
24
- this._worker.dispose();
25
- this._worker = null;
26
- }
27
- this._client = null;
57
+ var _this = this;
58
+ var workerToStop = this._workerDetails;
59
+ this._workerDetailsPromise = null;
60
+ this._workerDetails = null;
61
+ // Ensure disposal occurs only after the last request completes.
62
+ // This is necessary because setting the languageSettings disposes of the worker,
63
+ // causing the setSchema call to remain unresolved, which prevents the semantic tokens provider from being registered.
64
+ setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
65
+ return __generator(this, function (_a) {
66
+ if (workerToStop._worker) {
67
+ workerToStop._worker.dispose();
68
+ }
69
+ return [2 /*return*/];
70
+ });
71
+ }); }, 5000);
28
72
  };
29
73
  WorkerManager.prototype._saveStateAndStopWorker = function () {
30
74
  var _this = this;
31
- if (!this._worker) {
75
+ var _a, _b;
76
+ if (!((_a = this._workerDetails) === null || _a === void 0 ? void 0 : _a._worker)) {
32
77
  return;
33
78
  }
34
- this._worker.getProxy().then(function (proxy) {
79
+ (_b = this._workerDetails) === null || _b === void 0 ? void 0 : _b._worker.getProxy().then(function (proxy) {
35
80
  proxy.getSchema().then(function (schema) {
36
81
  _this._storedState = { schema: schema };
37
82
  _this._stopWorker();
@@ -44,22 +89,22 @@ var WorkerManager = /** @class */ (function () {
44
89
  this._stopWorker();
45
90
  };
46
91
  WorkerManager.prototype._checkIfIdle = function () {
47
- if (!this._worker) {
92
+ var _a, _b;
93
+ if (!((_a = this._workerDetails) === null || _a === void 0 ? void 0 : _a._worker)) {
48
94
  return;
49
95
  }
50
96
  var maxIdleTime = this._defaults.getWorkerMaxIdleTime();
51
- var timePassedSinceLastUsed = Date.now() - this._lastUsedTime;
97
+ var timePassedSinceLastUsed = Date.now() - ((_b = this._workerDetails) === null || _b === void 0 ? void 0 : _b._lastUsedTime);
52
98
  if (maxIdleTime > 0 && timePassedSinceLastUsed > maxIdleTime) {
53
99
  this._saveStateAndStopWorker();
54
100
  }
55
101
  };
56
102
  WorkerManager.prototype._getClient = function () {
57
103
  var _this = this;
58
- this._lastUsedTime = Date.now();
59
104
  // Since onDidProvideCompletionItems is not used in web worker, and since functions cannot be trivially serialized (throws exception unable to clone), We remove it here.
60
105
  var _a = this._defaults.languageSettings, onDidProvideCompletionItems = _a.onDidProvideCompletionItems, languageSettings = __rest(_a, ["onDidProvideCompletionItems"]);
61
- if (!this._client) {
62
- this._worker = this._monacoInstance.editor.createWebWorker({
106
+ if (!this._workerDetailsPromise) {
107
+ var worker_1 = this._monacoInstance.editor.createWebWorker({
63
108
  // module that exports the create() method and returns a `KustoWorker` instance
64
109
  moduleId: 'vs/language/kusto/kustoWorker',
65
110
  label: 'kusto',
@@ -69,7 +114,7 @@ var WorkerManager = /** @class */ (function () {
69
114
  languageId: 'kusto',
70
115
  },
71
116
  });
72
- this._client = this._worker.getProxy().then(function (proxy) {
117
+ var client = worker_1.getProxy().then(function (proxy) {
73
118
  // push state we held onto before killing the client.
74
119
  if (_this._storedState) {
75
120
  return proxy.setSchema(_this._storedState.schema).then(function () { return proxy; });
@@ -78,8 +123,16 @@ var WorkerManager = /** @class */ (function () {
78
123
  return proxy;
79
124
  }
80
125
  });
126
+ this._workerDetailsPromise = client.then(function (client) {
127
+ _this._workerDetails = {
128
+ _worker: worker_1,
129
+ _client: client,
130
+ _lastUsedTime: Date.now(),
131
+ };
132
+ return _this._workerDetails;
133
+ });
81
134
  }
82
- return this._client;
135
+ return this._workerDetailsPromise;
83
136
  };
84
137
  WorkerManager.prototype.getLanguageServiceWorker = function () {
85
138
  var _this = this;
@@ -90,10 +143,11 @@ var WorkerManager = /** @class */ (function () {
90
143
  var _client;
91
144
  return this._getClient()
92
145
  .then(function (client) {
93
- _client = client;
146
+ _client = client._client;
94
147
  })
95
148
  .then(function (_) {
96
- return _this._worker.withSyncedResources(resources);
149
+ var _a, _b;
150
+ return (_b = (_a = _this._workerDetails) === null || _a === void 0 ? void 0 : _a._worker) === null || _b === void 0 ? void 0 : _b.withSyncedResources(resources);
97
151
  })
98
152
  .then(function (_) { return _client; });
99
153
  };