UNPKG

1.43 kBJavaScriptView Raw
1import { isErrorLike } from '../errors';
2/** Reports whether the given extension is enabled in the settings. */
3export function isExtensionEnabled(settings, extensionID) {
4 return !!settings && !isErrorLike(settings) && !!settings.extensions && !!settings.extensions[extensionID];
5}
6/** Reports whether the given extension is mentioned (enabled or disabled) in the settings. */
7export function isExtensionAdded(settings, extensionID) {
8 return !!settings && !isErrorLike(settings) && !!settings.extensions && extensionID in settings.extensions;
9}
10/**
11 * Shows a modal confirmation prompt to the user confirming whether to add an extension.
12 */
13export function confirmAddExtension(extensionID, extensionManifest) {
14 // Either `"title" (id)` (if there is a title in the manifest) or else just `id`. It is
15 // important to show the ID because it indicates who the publisher is and allows
16 // disambiguation from other similarly titled extensions.
17 let displayName;
18 if (extensionManifest && !isErrorLike(extensionManifest) && extensionManifest.title) {
19 displayName = `${JSON.stringify(extensionManifest.title)} (${extensionID})`;
20 }
21 else {
22 displayName = extensionID;
23 }
24 return confirm(`Add Sourcegraph extension ${displayName}?\n\nIt can:\n- Read repositories and files you view using Sourcegraph\n- Read and change your Sourcegraph settings`);
25}
26//# sourceMappingURL=extension.js.map
\No newline at end of file