@formatjs/cli-lib
Version:
Lib for CLI for formatjs.
25 lines (24 loc) • 990 B
JavaScript
import { basename } from 'path';
import { debug } from '../console_utils';
import { checkMissingKeys } from './checkMissingKeys';
import { readJSON } from 'fs-extra';
import { checkStructuralEquality } from './checkStructuralEquality';
export async function verify(files, { sourceLocale, missingKeys, structuralEquality }) {
debug('Checking translation files:');
files.forEach(fn => debug(fn));
const translationFilesContents = (await Promise.all(files.map(async (fn) => [basename(fn, '.json'), await readJSON(fn)]))).reduce((all, [locale, content]) => {
all[locale] = content;
return all;
}, {});
debug('Verifying files:', files);
let exitCode = 0;
if (missingKeys &&
!(await checkMissingKeys(translationFilesContents, sourceLocale))) {
exitCode = 1;
}
if (structuralEquality &&
!(await checkStructuralEquality(translationFilesContents, sourceLocale))) {
exitCode = 1;
}
process.exit(exitCode);
}