mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-28 13:21:42 +00:00
* first draft * refactored code * ux fix * add custom header support and fix ui * minor changes * hide last command also * remove logger * bug fixes * updated loick file * fix tests * moved files * update readme * documentation update * fix compilationerror * undefined check handle * format fix * format fix * fix lints * format fix * fix unrelatred test * code refator * fix format * ut fix * cgmanifest * Revert "cgmanifest" This reverts commit 2e76a6926ee0d3d4e0510f2e04e03446c2ca8c47. * fix snap * test fix * formatting code * updated xterm * include username in command * cloudshell add exit * fix test * format fix * tets fix * fix multiple open cloudshell calls * socket time out after 20 min * remove unused code * 120 min * Addressed comments
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { Terminal } from "@xterm/xterm";
|
|
import { TerminalKind } from "../../../../Contracts/ViewModels";
|
|
|
|
/**
|
|
* Utility function to wait for a specified duration
|
|
*/
|
|
export const wait = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
|
/**
|
|
* Extract host from a URL
|
|
*/
|
|
export const getHostFromUrl = (url: string): string => {
|
|
try {
|
|
const urlObj = new URL(url);
|
|
return urlObj.hostname;
|
|
} catch (error) {
|
|
console.error("Invalid URL:", error);
|
|
return "";
|
|
}
|
|
};
|
|
|
|
export const askConfirmation = async (terminal: Terminal, question: string): Promise<boolean> => {
|
|
terminal.writeln(`\n${question} (Y/N)`);
|
|
terminal.focus();
|
|
return new Promise<boolean>((resolve) => {
|
|
const keyListener = terminal.onKey(({ key }: { key: string }) => {
|
|
keyListener.dispose();
|
|
terminal.writeln(key);
|
|
return resolve(key.toLowerCase() === "y");
|
|
});
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Gets the current locale for API requests
|
|
*/
|
|
export const getLocale = (): string => {
|
|
const langLocale = navigator.language;
|
|
return langLocale && langLocale.length > 2 ? langLocale : "en-us";
|
|
};
|
|
|
|
export const getShellNameForDisplay = (terminalKind: TerminalKind): string => {
|
|
switch (terminalKind) {
|
|
case TerminalKind.Postgres:
|
|
return "PostgreSQL";
|
|
case TerminalKind.Mongo:
|
|
case TerminalKind.VCoreMongo:
|
|
return "MongoDB";
|
|
default:
|
|
return "";
|
|
}
|
|
};
|