Merge pull request #226 from raix/bug/221-show-fix-star-icons-on-win32
fix show: add icon fallback on win32
This commit is contained in:
commit
d15553462b
2 changed files with 20 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
|||
import { getPublicGalleryAPI } from './util';
|
||||
import { ExtensionQueryFlags, PublishedExtension } from 'vso-node-api/interfaces/GalleryInterfaces';
|
||||
import { ViewTable, formatDate, formatDateTime, ratingStars, tableView, indentRow, wordWrap } from './viewutils';
|
||||
import { ViewTable, formatDate, formatDateTime, ratingStars, tableView, indentRow, wordWrap, icons } from './viewutils';
|
||||
|
||||
const limitVersions = 6;
|
||||
const isExtensionTag = /^__ext_(.*)$/;
|
||||
|
@ -66,7 +66,7 @@ function showOverview({
|
|||
// Render
|
||||
console.log([
|
||||
`${displayName}`,
|
||||
`${publisherDisplayName} | ${'\u2913'}` +
|
||||
`${publisherDisplayName} | ${icons.download} ` +
|
||||
`${Number(installs).toLocaleString()} installs |` +
|
||||
` ${ratingStars(averagerating)} (${ratingcount})`,
|
||||
'',
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
const os = require('os');
|
||||
|
||||
export type ViewTableRow = string[];
|
||||
export type ViewTable = ViewTableRow[];
|
||||
|
||||
|
@ -9,6 +11,21 @@ const format = {
|
|||
|
||||
const columns = process.stdout.columns ? process.stdout.columns : 80;
|
||||
|
||||
// xxx: Windows cmd + powershell standard fonts currently don't support the full
|
||||
// unicode charset. For now we use fallback icons when on windows.
|
||||
const useFallbackIcons = os.platform() === 'win32';
|
||||
|
||||
export const icons = useFallbackIcons?
|
||||
{
|
||||
download: '\u{2193}',
|
||||
star: '\u{2665}',
|
||||
emptyStar: '\u{2022}',
|
||||
} : {
|
||||
download: '\u{2913}',
|
||||
star: '\u{2605}',
|
||||
emptyStar: '\u{2606}',
|
||||
};
|
||||
|
||||
export function formatDate(date) { return date.toLocaleString(fixedLocale, format.date); }
|
||||
export function formatTime(date) { return date.toLocaleString(fixedLocale, format.time); }
|
||||
export function formatDateTime(date) { return date.toLocaleString(fixedLocale, { ...format.date, ...format.time }); }
|
||||
|
@ -23,7 +40,7 @@ export function repeatString(text: string, count: number): string {
|
|||
|
||||
export function ratingStars(rating: number, total = 5): string {
|
||||
const c = Math.min(Math.round(rating), total);
|
||||
return `${repeatString('\u{2605} ', c)}${repeatString('\u{2606} ', total - c)}`;
|
||||
return `${repeatString(icons.star + ' ', c)}${repeatString(icons.emptyStar + ' ', total - c)}`;
|
||||
}
|
||||
|
||||
export function tableView(table: ViewTable, spacing: number = 2): string[] {
|
||||
|
|
Loading…
Add table
Reference in a new issue