UNPKG

sheetspeare

Version:

Import locales from Google Sheet into Json files.

37 lines (36 loc) 1.49 kB
import { detailedDiff } from 'deep-object-diff'; import chalk from 'chalk'; import { logger } from '../utils/logger.js'; import { parseLocaleKey } from '../utils/json.js'; export const getLocalizationDiff = (oldLocalization, newLocalization) => { return detailedDiff(oldLocalization, newLocalization); }; export const logLocalizationDiff = (diff) => { Object.entries(diff).forEach(([diffType, content]) => { if (Object.keys(content).length === 0) { return; } let coloredChalk = chalk; switch (diffType) { case 'added': { logger.info(chalk.bold.dim('Added locales:')); coloredChalk = chalk.green; break; } case 'deleted': { logger.info(chalk.bold.dim('Deleted locales:')); coloredChalk = chalk.red; break; } case 'updated': { logger.info(chalk.bold.dim('Updated locales:')); coloredChalk = chalk.yellow; } } Object.entries(content).forEach(([localeWithKey, value]) => { const [locale, key] = parseLocaleKey(localeWithKey); logger.info(coloredChalk.bold(`${locale}:`, coloredChalk.italic(key)), value ? `"${chalk.dim(value)}"` : ''); }); }); }; export const noChanges = (diff) => !Object.keys(diff.added).length && !Object.keys(diff.deleted).length && !Object.keys(diff.updated).length;