import { mainWindow } from './window.js';
import type { IJSONSchemaSnippet } from '../common/jsonSchema.js';
import { isElectron, isMacintosh, isWindows } from '../common/platform.js';
export const DEFAULT_FONT_FAMILY = isWindows ? '"Segoe WPC", "Segoe UI", sans-serif' : isMacintosh ? '-apple-system, BlinkMacSystemFont, sans-serif' : 'system-ui, "Ubuntu", "Droid Sans", sans-serif';
interface FontData {
readonly family: string;
}
export const getFonts = async (): Promise<string[]> => {
try {
const fonts = await mainWindow.queryLocalFonts() as FontData[];
const fontsArray = [...fonts];
const families = fontsArray.map(font => font.family);
return families;
} catch (error) {
console.error(`Failed to query fonts: ${error}`);
return [];
}
};
export const getFontSnippets = async (): Promise<IJSONSchemaSnippet[]> => {
if (!isElectron) {
return [];
}
const fonts = await getFonts();
const snippets: IJSONSchemaSnippet[] = fonts.map(font => {
return {
body: `${font}`
};
});
return snippets;
};