sheetspeare
Version:
Import locales from Google Sheet into Json files.
37 lines (36 loc) • 1.49 kB
JavaScript
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;