CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
search.js64 linesDownload Raw Back to out
1"use strict";2Object.defineProperty(exports, "__esModule", { value: true });3exports.search = search;4const util_1 = require("./util");5const GalleryInterfaces_1 = require("azure-devops-node-api/interfaces/GalleryInterfaces");6const viewutils_1 = require("./viewutils");7const installationTarget = 'Microsoft.VisualStudio.Code';8const excludeFlags = '37888'; //Value to exclude un-published, locked or hidden extensions9const baseResultsTableHeaders = ['<ExtensionId>', '<Publisher>', '<Name>'];10async function search(searchText, json = false, pageSize = 10, stats = false) {11    const api = (0, util_1.getPublicGalleryAPI)();12    const results = (await api.extensionQuery({13        pageSize,14        criteria: [15            { filterType: GalleryInterfaces_1.ExtensionQueryFilterType.SearchText, value: searchText },16            { filterType: GalleryInterfaces_1.ExtensionQueryFilterType.InstallationTarget, value: installationTarget },17            { filterType: GalleryInterfaces_1.ExtensionQueryFilterType.ExcludeWithFlags, value: excludeFlags },18        ],19        flags: [20            GalleryInterfaces_1.ExtensionQueryFlags.ExcludeNonValidated,21            GalleryInterfaces_1.ExtensionQueryFlags.IncludeLatestVersionOnly,22            stats ? GalleryInterfaces_1.ExtensionQueryFlags.IncludeStatistics : 0,23        ],24    }));25    if (stats || !json) {26        console.log([27            `Search results:`,28            '',29            ...buildResultTableView(results, stats),30            '',31            'For more information on an extension use "vsce show <extensionId>"',32        ]33            .map(line => (0, viewutils_1.wordTrim)(line.replace(/\s+$/g, '')))34            .join('\n'));35        return;36    }37    if (!results.length) {38        console.log('No matching results');39        return;40    }41    if (json) {42        console.log(JSON.stringify(results, undefined, '\t'));43        return;44    }45}46function buildResultTableView(results, stats) {47    const values = results.map(({ publisher, extensionName, displayName, shortDescription, statistics }) => [48        publisher.publisherName + '.' + extensionName,49        publisher.displayName,50        (0, viewutils_1.wordTrim)(displayName || '', 25),51        stats ? buildExtensionStatisticsText(statistics) : (0, viewutils_1.wordTrim)(shortDescription || '', 150).replace(/\n|\r|\t/g, ' '),52    ]);53    var resultsTableHeaders = stats54        ? [...baseResultsTableHeaders, '<Installs>', '<Rating>']55        : [...baseResultsTableHeaders, '<Description>'];56    const resultsTable = (0, viewutils_1.tableView)([resultsTableHeaders, ...values]);57    return resultsTable;58}59function buildExtensionStatisticsText(statistics) {60    const { install: installs = 0, averagerating = 0, ratingcount = 0 } = statistics?.reduce((map, { statisticName, value }) => ({ ...map, [statisticName]: value }), {});61    return (`${Number(installs).toLocaleString('en-US').padStart(12, ' ')} \t\t` +62        ` ${(0, viewutils_1.ratingStars)(averagerating).padEnd(3, ' ')} (${ratingcount})`);63}64//# sourceMappingURL=search.js.map
basant307/AI_Governance_Project · CoolFace