UNPKG

vsce2

Version:

VSCode Extension Manager

57 lines (56 loc) 2.79 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.search = void 0; const util_1 = require("./util"); const GalleryInterfaces_1 = require("azure-devops-node-api/interfaces/GalleryInterfaces"); const viewutils_1 = require("./viewutils"); const pageSize = 100; const installationTarget = 'Microsoft.VisualStudio.Code'; const excludeFlags = '37888'; //Value to exclude un-published, locked or hidden extensions function search(searchText, json = false) { return __awaiter(this, void 0, void 0, function* () { const api = util_1.getPublicGalleryAPI(); const results = yield api.extensionQuery({ pageSize, criteria: [ { filterType: GalleryInterfaces_1.ExtensionQueryFilterType.SearchText, value: searchText }, { filterType: GalleryInterfaces_1.ExtensionQueryFilterType.InstallationTarget, value: installationTarget }, { filterType: GalleryInterfaces_1.ExtensionQueryFilterType.ExcludeWithFlags, value: excludeFlags }, ], flags: [GalleryInterfaces_1.ExtensionQueryFlags.ExcludeNonValidated, GalleryInterfaces_1.ExtensionQueryFlags.IncludeLatestVersionOnly], }); if (json) { console.log(JSON.stringify(results, undefined, '\t')); return; } if (!results.length) { console.log('No matching results'); return; } console.log([ `Search results:`, '', ...viewutils_1.tableView([ ['<ExtensionId>', '<Description>'], ...results.map(({ publisher: { publisherName }, extensionName, shortDescription }) => [ publisherName + '.' + extensionName, (shortDescription || '').replace(/\n|\r|\t/g, ' '), ]), ]), '', 'For more information on an extension use "vsce show <extensionId>"', ] .map(line => viewutils_1.wordTrim(line.replace(/\s+$/g, ''))) .join('\n')); }); } exports.search = search;