@lingui/cli
Version:
Lingui CLI to extract messages, compile catalogs, and manage translation workflows
26 lines (25 loc) • 961 B
JavaScript
import { getFallbackListForLocale } from "./getFallbackListForLocale.js";
import fs from "node:fs/promises";
import path from "node:path";
import * as process from "process";
const fileExists = async (path) => !!(await fs.stat(path).catch(() => false));
/**
* Return all files catalog implicitly depends on.
*/
export async function getCatalogDependentFiles(catalog, locale) {
const files = new Set([catalog.templateFile]);
getFallbackListForLocale(catalog.config.fallbackLocales, locale).forEach((locale) => {
files.add(catalog.getFilename(locale));
});
if (catalog.config.sourceLocale && locale !== catalog.config.sourceLocale) {
files.add(catalog.getFilename(catalog.config.sourceLocale));
}
const out = [];
for (let file of files) {
file = path.isAbsolute(file) ? file : path.join(process.cwd(), file);
if (await fileExists(file)) {
out.push(file);
}
}
return out;
}