export async function search()

in src/search.ts [17:56]


export async function search(searchText: string, json: boolean = false): Promise<any> {
	const api = getPublicGalleryAPI();
	const results = (await api.extensionQuery({
		pageSize,
		criteria: [
			{ filterType: ExtensionQueryFilterType.SearchText, value: searchText },
			{ filterType: ExtensionQueryFilterType.InstallationTarget, value: installationTarget },
			{ filterType: ExtensionQueryFilterType.ExcludeWithFlags, value: excludeFlags },
		],
		flags: [ExtensionQueryFlags.ExcludeNonValidated, ExtensionQueryFlags.IncludeLatestVersionOnly],
	})) as VSCodePublishedExtension[];

	if (json) {
		console.log(JSON.stringify(results, undefined, '\t'));
		return;
	}

	if (!results.length) {
		console.log('No matching results');
		return;
	}

	console.log(
		[
			`Search results:`,
			'',
			...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 => wordTrim(line.replace(/\s+$/g, '')))
			.join('\n')
	);
}