@codingame/monaco-vscode-files-service-override 34.0.0 → 34.0.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/index.js +47 -21
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import { IFilesConfigurationService } from '@codingame/monaco-vscode-api/vscode/
|
|
|
27
27
|
import { BrowserElevatedFileService } from './vscode/src/vs/workbench/services/files/browser/elevatedFileService.js';
|
|
28
28
|
import { IElevatedFileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/files/common/elevatedFileService.service';
|
|
29
29
|
import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
30
|
-
import { newWriteableStream } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stream';
|
|
30
|
+
import { newWriteableStream, listenStream } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stream';
|
|
31
31
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
32
32
|
import { registerServiceInitializePreParticipant, checkServicesNotInitialized } from '@codingame/monaco-vscode-api/lifecycle';
|
|
33
33
|
import { logsPath } from '@codingame/monaco-vscode-api/workbench';
|
|
@@ -382,7 +382,12 @@ class RegisteredFileSystemProvider extends Disposable {
|
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
384
|
catch (error) {
|
|
385
|
-
|
|
385
|
+
if (error instanceof FileSystemProviderError) {
|
|
386
|
+
stream.error(error);
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
stream.error(createFileSystemProviderError(error, FileSystemProviderErrorCode.Unknown));
|
|
390
|
+
}
|
|
386
391
|
stream.end();
|
|
387
392
|
}
|
|
388
393
|
})();
|
|
@@ -500,7 +505,7 @@ class OverlayFileSystemProvider {
|
|
|
500
505
|
get delegates() {
|
|
501
506
|
return this.providers.map(({ provider }) => provider);
|
|
502
507
|
}
|
|
503
|
-
readFromDelegates(caller, token) {
|
|
508
|
+
async readFromDelegates(caller, token) {
|
|
504
509
|
if (this.delegates.length === 0) {
|
|
505
510
|
throw createFileSystemProviderError('No delegate', FileSystemProviderErrorCode.Unavailable);
|
|
506
511
|
}
|
|
@@ -510,7 +515,7 @@ class OverlayFileSystemProvider {
|
|
|
510
515
|
throw new Error('Cancelled');
|
|
511
516
|
}
|
|
512
517
|
try {
|
|
513
|
-
return caller(delegate);
|
|
518
|
+
return await caller(delegate);
|
|
514
519
|
}
|
|
515
520
|
catch (err) {
|
|
516
521
|
errors.push(err);
|
|
@@ -576,27 +581,48 @@ class OverlayFileSystemProvider {
|
|
|
576
581
|
return await this.readFromDelegates((delegate) => delegate.readFile(resource));
|
|
577
582
|
}
|
|
578
583
|
readFileStream(resource, opts, token) {
|
|
579
|
-
|
|
584
|
+
const writableStream = newWriteableStream((data) => VSBuffer.concat(data.map((data) => VSBuffer.wrap(data))).buffer);
|
|
585
|
+
this.readFromDelegates(async (delegate) => {
|
|
580
586
|
if (hasFileReadStreamCapability(delegate)) {
|
|
581
|
-
|
|
587
|
+
const stream = delegate.readFileStream(resource, opts, token);
|
|
588
|
+
await new Promise((resolve, reject) => {
|
|
589
|
+
let dataReceived = false;
|
|
590
|
+
let errored = false;
|
|
591
|
+
listenStream(stream, {
|
|
592
|
+
onData(data) {
|
|
593
|
+
dataReceived = true;
|
|
594
|
+
void writableStream.write(data);
|
|
595
|
+
},
|
|
596
|
+
onEnd() {
|
|
597
|
+
if (!errored) {
|
|
598
|
+
writableStream.end();
|
|
599
|
+
resolve();
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
onError(err) {
|
|
603
|
+
errored = true;
|
|
604
|
+
if (!dataReceived) {
|
|
605
|
+
reject(err);
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
writableStream.error(err);
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}, token);
|
|
612
|
+
});
|
|
582
613
|
}
|
|
583
614
|
else {
|
|
584
|
-
|
|
585
|
-
(
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
data = data.slice(opts.position ?? 0, opts.length);
|
|
590
|
-
}
|
|
591
|
-
writableStream.end(data);
|
|
592
|
-
}
|
|
593
|
-
catch (err) {
|
|
594
|
-
writableStream.error(err);
|
|
595
|
-
}
|
|
596
|
-
})();
|
|
597
|
-
return writableStream;
|
|
615
|
+
let data = await this.readFile(resource);
|
|
616
|
+
if (typeof opts.position === 'number' || typeof opts.length === 'number') {
|
|
617
|
+
data = data.slice(opts.position ?? 0, opts.length);
|
|
618
|
+
}
|
|
619
|
+
return writableStream.end(data);
|
|
598
620
|
}
|
|
599
|
-
}, token)
|
|
621
|
+
}, token).catch((err) => {
|
|
622
|
+
writableStream.error(err);
|
|
623
|
+
writableStream.end();
|
|
624
|
+
});
|
|
625
|
+
return writableStream;
|
|
600
626
|
}
|
|
601
627
|
async readdir(resource) {
|
|
602
628
|
const results = await Promise.allSettled(this.delegates.map(async (delegate) => await delegate.readdir(resource)));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-files-service-override",
|
|
3
|
-
"version": "34.0.
|
|
3
|
+
"version": "34.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - files service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "34.0.
|
|
18
|
+
"@codingame/monaco-vscode-api": "34.0.2"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|