@codingame/monaco-vscode-extensions-service-override
Version:
VSCode public API plugged on the monaco editor - extensions service-override
70 lines (66 loc) • 3.07 kB
JavaScript
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
import { MainContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol';
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
import { IFileDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
var MainThreadDialogs_1;
let MainThreadDialogs = MainThreadDialogs_1 = class MainThreadDialogs {
constructor(context, _fileDialogService) {
this._fileDialogService = _fileDialogService;
}
dispose() {}
async $showOpenDialog(options) {
const convertedOptions = MainThreadDialogs_1._convertOpenOptions(options);
if (!convertedOptions.defaultUri) {
convertedOptions.defaultUri = await this._fileDialogService.defaultFilePath();
}
return Promise.resolve(this._fileDialogService.showOpenDialog(convertedOptions));
}
async $showSaveDialog(options) {
const convertedOptions = MainThreadDialogs_1._convertSaveOptions(options);
if (!convertedOptions.defaultUri) {
convertedOptions.defaultUri = await this._fileDialogService.defaultFilePath();
}
return Promise.resolve(this._fileDialogService.showSaveDialog(convertedOptions));
}
static _convertOpenOptions(options) {
const result = {
openLabel: options?.openLabel || undefined,
canSelectFiles: options?.canSelectFiles || (!options?.canSelectFiles && !options?.canSelectFolders),
canSelectFolders: options?.canSelectFolders,
canSelectMany: options?.canSelectMany,
defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined,
title: options?.title || undefined,
availableFileSystems: []
};
if (options?.filters) {
result.filters = [];
for (const [key, value] of Object.entries(options.filters)) {
result.filters.push({
name: key,
extensions: value
});
}
}
return result;
}
static _convertSaveOptions(options) {
const result = {
defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined,
saveLabel: options?.saveLabel || undefined,
title: options?.title || undefined
};
if (options?.filters) {
result.filters = [];
for (const [key, value] of Object.entries(options.filters)) {
result.filters.push({
name: key,
extensions: value
});
}
}
return result;
}
};
MainThreadDialogs = MainThreadDialogs_1 = __decorate([extHostNamedCustomer(MainContext.MainThreadDialogs), ( __param(1, IFileDialogService))], MainThreadDialogs);
export { MainThreadDialogs };