@volar/monaco 1.3.0-alpha.0 → 1.3.0-alpha.2
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.
- package/README.md +12 -5
- package/out/dts.d.ts +0 -0
- package/out/dts.js +1 -0
- package/out/editor.d.ts +2 -2
- package/out/editor.js +2 -8
- package/out/worker.d.ts +13 -4
- package/out/worker.js +109 -43
- package/package.json +3 -3
- package/out/utils/autoFetchTypes.d.ts +0 -6
- package/out/utils/autoFetchTypes.js +0 -82
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ self.onmessage = () => {
|
|
|
39
39
|
#### TypeScript Support
|
|
40
40
|
|
|
41
41
|
```ts
|
|
42
|
-
import { createLanguageService } from '@volar/monaco/worker';
|
|
42
|
+
import { createLanguageService, createDtsHost } from '@volar/monaco/worker';
|
|
43
43
|
import * as ts from 'typescript';
|
|
44
44
|
|
|
45
45
|
createLanguageService({
|
|
@@ -49,9 +49,9 @@ createLanguageService({
|
|
|
49
49
|
compilerOptions: {
|
|
50
50
|
// ...tsconfig options
|
|
51
51
|
},
|
|
52
|
-
// Enable auto fetch node_modules types
|
|
53
|
-
autoFetchTypes: true,
|
|
54
52
|
},
|
|
53
|
+
// Enable auto fetch node_modules types
|
|
54
|
+
dtsHost: createDtsHost('https://unpkg.com/'),
|
|
55
55
|
});
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -75,7 +75,7 @@ import myWorker from './my-lang.worker?worker';
|
|
|
75
75
|
|
|
76
76
|
```ts
|
|
77
77
|
import type { LanguageService } from '@volar/language-service';
|
|
78
|
-
import { editor, languages } from 'monaco-editor-core';
|
|
78
|
+
import { editor, languages, Uri } from 'monaco-editor-core';
|
|
79
79
|
import * as VolarMonaco from '@volar/monaco';
|
|
80
80
|
|
|
81
81
|
languages.register({ id: 'my-lang', extensions: ['.my-lang'] });
|
|
@@ -85,7 +85,14 @@ languages.onLanguage('my-lang', () => {
|
|
|
85
85
|
moduleId: 'vs/language/my-lang/myLangWorker',
|
|
86
86
|
label: 'my-lang',
|
|
87
87
|
});
|
|
88
|
-
VolarMonaco.editor.activateMarkers(
|
|
88
|
+
VolarMonaco.editor.activateMarkers(
|
|
89
|
+
worker,
|
|
90
|
+
['my-lang'],
|
|
91
|
+
'my-lang-markers-owner',
|
|
92
|
+
// root files
|
|
93
|
+
() => [Uri.file('/Foo.my-lang'), Uri.file('/Bar.my-lang')],
|
|
94
|
+
editor
|
|
95
|
+
);
|
|
89
96
|
VolarMonaco.languages.registerProvides(worker, ['my-lang'], languages)
|
|
90
97
|
});
|
|
91
98
|
```
|
package/out/dts.d.ts
ADDED
|
File without changes
|
package/out/dts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=dts.js.map
|
package/out/editor.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LanguageService } from '@volar/language-service';
|
|
2
|
-
import type { editor as _editor, IDisposable } from 'monaco-editor-core';
|
|
2
|
+
import type { editor as _editor, IDisposable, Uri } from 'monaco-editor-core';
|
|
3
3
|
export declare namespace editor {
|
|
4
|
-
function activateMarkers(worker: _editor.MonacoWebWorker<LanguageService>, languages: string[], markersOwn: string, editor: typeof import('monaco-editor-core').editor): IDisposable;
|
|
4
|
+
function activateMarkers(worker: _editor.MonacoWebWorker<LanguageService>, languages: string[], markersOwn: string, getSyncUris: () => Uri[], editor: typeof import('monaco-editor-core').editor): IDisposable;
|
|
5
5
|
}
|
package/out/editor.js
CHANGED
|
@@ -13,7 +13,7 @@ const markers_1 = require("./utils/markers");
|
|
|
13
13
|
const protocol2monaco = require("./utils/protocol2monaco");
|
|
14
14
|
var editor;
|
|
15
15
|
(function (editor_1) {
|
|
16
|
-
function activateMarkers(worker, languages, markersOwn, editor) {
|
|
16
|
+
function activateMarkers(worker, languages, markersOwn, getSyncUris, editor) {
|
|
17
17
|
const disposables = [];
|
|
18
18
|
const listener = new Map();
|
|
19
19
|
disposables.push(editor.onDidCreateModel((model) => hostingMarkers(model)), editor.onWillDisposeModel(stopHostingMarkers), editor.onDidChangeModelLanguage((event) => {
|
|
@@ -73,7 +73,7 @@ var editor;
|
|
|
73
73
|
if (!model.isAttachedToEditor()) {
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
const languageService = yield
|
|
76
|
+
const languageService = yield worker.withSyncedResources(getSyncUris());
|
|
77
77
|
const diagnostics = yield languageService.doValidation(model.uri.toString());
|
|
78
78
|
const result = diagnostics.map(error => {
|
|
79
79
|
const marker = protocol2monaco.asMarkerData(error);
|
|
@@ -83,12 +83,6 @@ var editor;
|
|
|
83
83
|
editor.setModelMarkers(model, markersOwn, result);
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
function getLanguageService(...uris) {
|
|
87
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
yield worker.withSyncedResources(uris);
|
|
89
|
-
return worker.getProxy();
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
86
|
}
|
|
93
87
|
editor_1.activateMarkers = activateMarkers;
|
|
94
88
|
})(editor = exports.editor || (exports.editor = {}));
|
package/out/worker.d.ts
CHANGED
|
@@ -3,13 +3,22 @@ import type * as monaco from 'monaco-editor-core';
|
|
|
3
3
|
import type * as ts from 'typescript/lib/tsserverlibrary';
|
|
4
4
|
export declare function createLanguageService(options: {
|
|
5
5
|
workerContext: monaco.worker.IWorkerContext<any>;
|
|
6
|
+
dtsHost?: ReturnType<typeof createDtsHost>;
|
|
6
7
|
config: Config;
|
|
7
8
|
typescript?: {
|
|
8
9
|
module: typeof import('typescript/lib/tsserverlibrary');
|
|
9
10
|
compilerOptions: ts.CompilerOptions;
|
|
10
|
-
autoFetchTypes?: boolean | {
|
|
11
|
-
onFetchTypesFiles?(files: Record<string, string>): void;
|
|
12
|
-
cdn?: string;
|
|
13
|
-
};
|
|
14
11
|
};
|
|
15
12
|
}): {};
|
|
13
|
+
export declare function createDtsHost(cdn: string, onFetch?: (fileName: string, text: string) => void): CdnDtsHost;
|
|
14
|
+
declare class CdnDtsHost {
|
|
15
|
+
private cdn;
|
|
16
|
+
private onFetch?;
|
|
17
|
+
files: Map<string, string | Promise<string | undefined> | undefined>;
|
|
18
|
+
lastUpdateFilesSize: number;
|
|
19
|
+
constructor(cdn: string, onFetch?: ((fileName: string, text: string) => void) | undefined);
|
|
20
|
+
getVersion(): Promise<number>;
|
|
21
|
+
readFile(fileName: string): string | Promise<string | undefined>;
|
|
22
|
+
fetch(fileName: string, url: string): Promise<string | undefined>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
package/out/worker.js
CHANGED
|
@@ -8,24 +8,25 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.createLanguageService = void 0;
|
|
11
|
+
exports.createDtsHost = exports.createLanguageService = void 0;
|
|
12
12
|
const language_service_1 = require("@volar/language-service");
|
|
13
13
|
const vscode_uri_1 = require("vscode-uri");
|
|
14
|
-
const
|
|
14
|
+
const axios_1 = require("axios");
|
|
15
15
|
function createLanguageService(options) {
|
|
16
|
-
var _a, _b, _c
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
const dtsClient = options.dtsHost ? createDtsClient(options.dtsHost) : undefined;
|
|
17
18
|
const ts = options.typescript ? options.typescript.module : undefined;
|
|
18
19
|
const config = (_a = options.config) !== null && _a !== void 0 ? _a : {};
|
|
19
20
|
const compilerOptions = (_c = (_b = options.typescript) === null || _b === void 0 ? void 0 : _b.compilerOptions) !== null && _c !== void 0 ? _c : {};
|
|
20
|
-
let autoFetchTypesCdn = 'https://unpkg.com/';
|
|
21
|
-
if (typeof ((_d = options.typescript) === null || _d === void 0 ? void 0 : _d.autoFetchTypes) === 'object' && options.typescript.autoFetchTypes.cdn) {
|
|
22
|
-
autoFetchTypesCdn = options.typescript.autoFetchTypes.cdn;
|
|
23
|
-
}
|
|
24
|
-
const autoTypeFetchHost = ((_e = options.typescript) === null || _e === void 0 ? void 0 : _e.autoFetchTypes) ? (0, autoFetchTypes_1.createAutoTypesFetchingHost)(autoFetchTypesCdn) : undefined;
|
|
25
21
|
let host = createLanguageServiceHost();
|
|
26
|
-
let languageService = (0, language_service_1.createLanguageService)(
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
let languageService = (0, language_service_1.createLanguageService)({
|
|
23
|
+
host,
|
|
24
|
+
config,
|
|
25
|
+
uriToFileName: (uri) => vscode_uri_1.URI.parse(uri).fsPath.replace(/\\/g, '/'),
|
|
26
|
+
fileNameToUri: (fileName) => vscode_uri_1.URI.file(fileName).toString(),
|
|
27
|
+
rootUri: vscode_uri_1.URI.file('/'),
|
|
28
|
+
});
|
|
29
|
+
let dtsVersion = 0;
|
|
29
30
|
class InnocentRabbit {
|
|
30
31
|
}
|
|
31
32
|
;
|
|
@@ -37,35 +38,27 @@ function createLanguageService(options) {
|
|
|
37
38
|
continue;
|
|
38
39
|
}
|
|
39
40
|
InnocentRabbit.prototype[api] = (...args) => __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
|
|
41
|
-
if (!autoTypeFetchHost) {
|
|
41
|
+
if (!dtsClient) {
|
|
42
42
|
return languageService[api](...args);
|
|
43
43
|
}
|
|
44
|
-
let
|
|
45
|
-
let webFilesNumOfThisCall = autoTypeFetchHost.files.size;
|
|
44
|
+
let oldVersion = yield dtsClient.getVersion();
|
|
46
45
|
let result = yield languageService[api](...args);
|
|
47
|
-
yield
|
|
48
|
-
while (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
webFilesNumOfLanguageService = autoTypeFetchHost.files.size;
|
|
46
|
+
let newVersion = yield dtsClient.getVersion();
|
|
47
|
+
while (newVersion !== oldVersion) {
|
|
48
|
+
oldVersion = newVersion;
|
|
49
|
+
if (newVersion !== dtsVersion) {
|
|
50
|
+
dtsVersion = newVersion;
|
|
53
51
|
languageService.dispose();
|
|
54
|
-
languageService = (0, language_service_1.createLanguageService)(
|
|
52
|
+
languageService = (0, language_service_1.createLanguageService)({
|
|
53
|
+
host,
|
|
54
|
+
config,
|
|
55
|
+
rootUri: vscode_uri_1.URI.file('/'),
|
|
56
|
+
uriToFileName: (uri) => vscode_uri_1.URI.parse(uri).fsPath.replace(/\\/g, '/'),
|
|
57
|
+
fileNameToUri: (fileName) => vscode_uri_1.URI.file(fileName).toString(),
|
|
58
|
+
});
|
|
55
59
|
}
|
|
56
60
|
result = yield languageService[api](...args);
|
|
57
|
-
yield
|
|
58
|
-
}
|
|
59
|
-
if (shouldSync && typeof ((_g = options.typescript) === null || _g === void 0 ? void 0 : _g.autoFetchTypes) === 'object' && options.typescript.autoFetchTypes.onFetchTypesFiles) {
|
|
60
|
-
const files = autoTypeFetchHost.files;
|
|
61
|
-
const syncFiles = {};
|
|
62
|
-
for (const [fileName, text] of files) {
|
|
63
|
-
if (!syncedFiles.has(fileName) && text !== undefined) {
|
|
64
|
-
syncFiles[fileName] = text;
|
|
65
|
-
syncedFiles.add(fileName);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
options.typescript.autoFetchTypes.onFetchTypesFiles(syncFiles);
|
|
61
|
+
newVersion = yield dtsClient.getVersion();
|
|
69
62
|
}
|
|
70
63
|
return result;
|
|
71
64
|
});
|
|
@@ -100,8 +93,8 @@ function createLanguageService(options) {
|
|
|
100
93
|
if (model) {
|
|
101
94
|
return model.version.toString();
|
|
102
95
|
}
|
|
103
|
-
if (
|
|
104
|
-
const dts =
|
|
96
|
+
if (dtsClient) {
|
|
97
|
+
const dts = dtsClient.readFile(fileName);
|
|
105
98
|
if (dts) {
|
|
106
99
|
return dts.length.toString();
|
|
107
100
|
}
|
|
@@ -127,8 +120,8 @@ function createLanguageService(options) {
|
|
|
127
120
|
if (webFileSnapshot.has(fileName)) {
|
|
128
121
|
return webFileSnapshot.get(fileName);
|
|
129
122
|
}
|
|
130
|
-
if (
|
|
131
|
-
const webFileText =
|
|
123
|
+
if (dtsClient) {
|
|
124
|
+
const webFileText = dtsClient.readFile(fileName);
|
|
132
125
|
if (webFileText !== undefined) {
|
|
133
126
|
webFileSnapshot.set(fileName, {
|
|
134
127
|
getText: (start, end) => webFileText.substring(start, end),
|
|
@@ -147,7 +140,7 @@ function createLanguageService(options) {
|
|
|
147
140
|
},
|
|
148
141
|
getDefaultLibFileName(options) {
|
|
149
142
|
if (ts) {
|
|
150
|
-
return
|
|
143
|
+
return `/node_modules/typescript@${ts.version}/lib/${ts.getDefaultLibFileName(options)}`;
|
|
151
144
|
}
|
|
152
145
|
return '';
|
|
153
146
|
},
|
|
@@ -156,8 +149,8 @@ function createLanguageService(options) {
|
|
|
156
149
|
if (model) {
|
|
157
150
|
return model.getValue();
|
|
158
151
|
}
|
|
159
|
-
if (
|
|
160
|
-
return
|
|
152
|
+
if (dtsClient) {
|
|
153
|
+
return dtsClient.readFile(fileName);
|
|
161
154
|
}
|
|
162
155
|
},
|
|
163
156
|
fileExists(fileName) {
|
|
@@ -165,8 +158,8 @@ function createLanguageService(options) {
|
|
|
165
158
|
if (model) {
|
|
166
159
|
return true;
|
|
167
160
|
}
|
|
168
|
-
if (
|
|
169
|
-
return
|
|
161
|
+
if (dtsClient) {
|
|
162
|
+
return dtsClient.readFile(fileName) !== undefined;
|
|
170
163
|
}
|
|
171
164
|
return false;
|
|
172
165
|
},
|
|
@@ -176,4 +169,77 @@ function createLanguageService(options) {
|
|
|
176
169
|
}
|
|
177
170
|
}
|
|
178
171
|
exports.createLanguageService = createLanguageService;
|
|
172
|
+
function createDtsHost(cdn, onFetch) {
|
|
173
|
+
return new CdnDtsHost(cdn, onFetch);
|
|
174
|
+
}
|
|
175
|
+
exports.createDtsHost = createDtsHost;
|
|
176
|
+
class CdnDtsHost {
|
|
177
|
+
constructor(cdn, onFetch) {
|
|
178
|
+
this.cdn = cdn;
|
|
179
|
+
this.onFetch = onFetch;
|
|
180
|
+
this.files = new Map();
|
|
181
|
+
this.lastUpdateFilesSize = 0;
|
|
182
|
+
}
|
|
183
|
+
getVersion() {
|
|
184
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
while (this.files.size !== this.lastUpdateFilesSize) {
|
|
186
|
+
this.lastUpdateFilesSize = this.files.size;
|
|
187
|
+
yield Promise.all(this.files.values());
|
|
188
|
+
}
|
|
189
|
+
return this.files.size;
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
readFile(fileName) {
|
|
193
|
+
if (!this.files.has(fileName)) {
|
|
194
|
+
this.files.set(fileName, undefined);
|
|
195
|
+
if (fileName.startsWith('/node_modules/')
|
|
196
|
+
// ignore .js because it's no help for intellisense
|
|
197
|
+
&& (fileName.endsWith('.d.ts') || fileName.endsWith('/package.json'))) {
|
|
198
|
+
const url = this.cdn + fileName.slice('/node_modules/'.length);
|
|
199
|
+
this.files.set(fileName, this.fetch(fileName, url));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return this.files.get(fileName);
|
|
203
|
+
}
|
|
204
|
+
fetch(fileName, url) {
|
|
205
|
+
var _a, _b;
|
|
206
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
207
|
+
try {
|
|
208
|
+
const text = (_a = (yield axios_1.default.get(url, {
|
|
209
|
+
transformResponse: (res) => {
|
|
210
|
+
// avoid parse to json object
|
|
211
|
+
return res;
|
|
212
|
+
},
|
|
213
|
+
})).data) !== null && _a !== void 0 ? _a : undefined;
|
|
214
|
+
(_b = this.onFetch) === null || _b === void 0 ? void 0 : _b.call(this, fileName, text);
|
|
215
|
+
return text;
|
|
216
|
+
}
|
|
217
|
+
catch (_c) {
|
|
218
|
+
// ignore
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function createDtsClient(server) {
|
|
224
|
+
const fetchTasks = [];
|
|
225
|
+
const files = new Map();
|
|
226
|
+
return {
|
|
227
|
+
readFile,
|
|
228
|
+
getVersion: () => server.getVersion(),
|
|
229
|
+
readFileAsync,
|
|
230
|
+
};
|
|
231
|
+
function readFile(fileName) {
|
|
232
|
+
if (!files.has(fileName)) {
|
|
233
|
+
files.set(fileName, undefined);
|
|
234
|
+
fetchTasks.push([fileName, readFileAsync(fileName)]);
|
|
235
|
+
}
|
|
236
|
+
return files.get(fileName);
|
|
237
|
+
}
|
|
238
|
+
function readFileAsync(fileName) {
|
|
239
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
240
|
+
const text = yield server.readFile(fileName);
|
|
241
|
+
files.set(fileName, text);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
179
245
|
//# sourceMappingURL=worker.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/monaco",
|
|
3
|
-
"version": "1.3.0-alpha.
|
|
3
|
+
"version": "1.3.0-alpha.2",
|
|
4
4
|
"main": "out/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"directory": "packages/monaco"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@volar/language-service": "1.3.0-alpha.
|
|
18
|
+
"@volar/language-service": "1.3.0-alpha.2",
|
|
19
19
|
"axios": "^1.3.4",
|
|
20
20
|
"monaco-editor-core": "^0.36.0",
|
|
21
21
|
"vscode-languageserver-protocol": "^3.17.3",
|
|
22
22
|
"vscode-uri": "^3.0.7"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "84111017f289c36dfe4541159cad8a7e13c2be41"
|
|
25
25
|
}
|
|
@@ -1,82 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.createAutoTypesFetchingHost = void 0;
|
|
12
|
-
const axios_1 = require("axios");
|
|
13
|
-
function createAutoTypesFetchingHost(cdn) {
|
|
14
|
-
const fetchTasks = [];
|
|
15
|
-
const files = new Map();
|
|
16
|
-
let fetching;
|
|
17
|
-
return {
|
|
18
|
-
fileExists,
|
|
19
|
-
readFile,
|
|
20
|
-
files,
|
|
21
|
-
wait: () => __awaiter(this, void 0, void 0, function* () { return yield fetching; }),
|
|
22
|
-
};
|
|
23
|
-
function fileExists(fileName) {
|
|
24
|
-
return readFile(fileName) !== undefined;
|
|
25
|
-
}
|
|
26
|
-
function readFile(fileName) {
|
|
27
|
-
if (!files.has(fileName)) {
|
|
28
|
-
files.set(fileName, undefined);
|
|
29
|
-
fetch(fileName);
|
|
30
|
-
}
|
|
31
|
-
return files.get(fileName);
|
|
32
|
-
}
|
|
33
|
-
function readFileAsync(fileName) {
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
if (fileName.startsWith('/node_modules/')) {
|
|
36
|
-
const url = cdn + fileName.slice('/node_modules/'.length);
|
|
37
|
-
const text = yield readWebFile(url);
|
|
38
|
-
files.set(fileName, text);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
function readWebFile(uri) {
|
|
43
|
-
var _a;
|
|
44
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
// ignore .js because it's no help for intellisense
|
|
46
|
-
if (uri.endsWith('.d.ts') || uri.endsWith('.json')) {
|
|
47
|
-
try {
|
|
48
|
-
return (_a = (yield axios_1.default.get(uri, {
|
|
49
|
-
transformResponse: (res) => {
|
|
50
|
-
// avoid parse to json object
|
|
51
|
-
return res;
|
|
52
|
-
},
|
|
53
|
-
})).data) !== null && _a !== void 0 ? _a : undefined;
|
|
54
|
-
}
|
|
55
|
-
catch (_b) {
|
|
56
|
-
// ignore
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function fetch(fileName) {
|
|
62
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
fetchTasks.push([fileName, readFileAsync(fileName)]);
|
|
64
|
-
if (!fetching) {
|
|
65
|
-
fetching = fetchWorker();
|
|
66
|
-
yield fetching;
|
|
67
|
-
fetching = undefined;
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
function fetchWorker() {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
while (fetchTasks.length) {
|
|
74
|
-
const tasks = fetchTasks.map(([_, task]) => task);
|
|
75
|
-
fetchTasks.length = 0;
|
|
76
|
-
yield Promise.all(tasks);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.createAutoTypesFetchingHost = createAutoTypesFetchingHost;
|
|
82
|
-
//# sourceMappingURL=autoFetchTypes.js.map
|