Add DataTransferItem.kind (#151384)

Fixes #150963

The new `.kind` property makes it easier to tell the type of a data transfer item
This commit is contained in:
Matt Bierner
2022-06-07 08:06:00 -07:00
committed by GitHub
parent 9daa6e9125
commit 75a6ddc862
4 changed files with 20 additions and 0 deletions

View File

@@ -1330,6 +1330,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
TextSearchCompleteMessageType: TextSearchCompleteMessageType,
DataTransfer: extHostTypes.DataTransfer,
DataTransferItem: extHostTypes.DataTransferItem,
DataTransferItemKind: extHostTypes.DataTransferItemKind,
CoveredCount: extHostTypes.CoveredCount,
FileCoverage: extHostTypes.FileCoverage,
StatementCoverage: extHostTypes.StatementCoverage,

View File

@@ -1965,6 +1965,8 @@ export namespace DataTransferItem {
const file = item.fileData;
if (file) {
return new class extends types.DataTransferItem {
override get kind() { return types.DataTransferItemKind.File; }
override asFile(): vscode.DataTransferFile {
return {
name: file.name,

View File

@@ -2438,8 +2438,16 @@ export enum TreeItemCollapsibleState {
Expanded = 2
}
export enum DataTransferItemKind {
String = 1,
File = 2,
}
@es5ClassCompat
export class DataTransferItem {
get kind(): DataTransferItemKind { return DataTransferItemKind.String; }
async asString(): Promise<string> {
return typeof this.value === 'string' ? this.value : JSON.stringify(this.value);
}