function showOverview()

in src/show.ts [40:100]


function showOverview({
	displayName = 'unknown',
	extensionName = 'unknown',
	shortDescription = '',
	versions = [],
	publisher: { displayName: publisherDisplayName, publisherName },
	categories = [],
	tags = [],
	statistics = [],
	publishedDate,
	lastUpdated,
}: VSCodePublishedExtension) {
	const [{ version = 'unknown' } = {}] = versions;

	// Create formatted table list of versions
	const versionList = <ViewTable>(
		versions.slice(0, limitVersions).map(({ version, lastUpdated }) => [version, formatDate(lastUpdated!)])
	);

	const { install: installs = 0, averagerating = 0, ratingcount = 0 } = statistics.reduce(
		(map, { statisticName, value }) => ({ ...map, [statisticName!]: value }),
		<ExtensionStatiticsMap>{}
	);

	// Render
	console.log(
		[
			`${displayName}`,
			`${publisherDisplayName} | ${icons.download} ` +
				`${Number(installs).toLocaleString()} installs |` +
				` ${ratingStars(averagerating)} (${ratingcount})`,
			'',
			`${shortDescription}`,
			'',
			'Recent versions:',
			...(versionList.length ? tableView(versionList).map(indentRow) : ['no versions found']),
			'',
			'Categories:',
			`  ${categories.join(', ')}`,
			'',
			'Tags:',
			`  ${tags.filter(tag => !isExtensionTag.test(tag)).join(', ')}`,
			'',
			'More info:',
			...tableView([
				['Unique identifier:', `${publisherName}.${extensionName}`],
				['Version:', version],
				['Last updated:', formatDateTime(lastUpdated!)],
				['Publisher:', publisherDisplayName],
				['Published at:', formatDate(publishedDate!)],
			]).map(indentRow),
			'',
			'Statistics:',
			...tableView(
				<ViewTable>statistics.map(({ statisticName, value }) => [statisticName, Number(value).toFixed(2)])
			).map(indentRow),
		]
			.map(line => wordWrap(line))
			.join('\n')
	);
}