mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 17:48:56 +01:00
32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { join } from 'vs/base/common/path';
|
|
import { tmpdir } from 'os';
|
|
import { generateUuid } from 'vs/base/common/uuid';
|
|
import { IExtHostCommands } from 'vs/workbench/api/common/extHostCommands';
|
|
import { Disposable } from 'vs/base/common/lifecycle';
|
|
import { MainContext } from 'vs/workbench/api/common/extHost.protocol';
|
|
import { URI } from 'vs/base/common/uri';
|
|
import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService';
|
|
|
|
export class ExtHostDownloadService extends Disposable {
|
|
|
|
constructor(
|
|
@IExtHostRpcService extHostRpc: IExtHostRpcService,
|
|
@IExtHostCommands commands: IExtHostCommands
|
|
) {
|
|
super();
|
|
|
|
const proxy = extHostRpc.getProxy(MainContext.MainThreadDownloadService);
|
|
|
|
commands.registerCommand(false, '_workbench.downloadResource', async (resource: URI): Promise<any> => {
|
|
const location = URI.file(join(tmpdir(), generateUuid()));
|
|
await proxy.$download(resource, location);
|
|
return location;
|
|
});
|
|
}
|
|
}
|