UNPKG

@ts-intl/dependency

Version:

I18n keys dependency analysis

29 lines (28 loc) 982 B
import { getModulesDependencies } from './graph'; import { offsprings } from './madge'; /** * generate new pathIntlKeysMap which only includes offsprings of modules * @param modules * @param graph * @param pathIntlKeysMap * @returns */ export const extractPathIntlKeysMap = (modules, graph, pathIntlKeysMap, ignoreEmpty = false) => { const modulesDepsMap = getModulesDependencies(modules, graph); return Object.fromEntries(Object.keys(pathIntlKeysMap) .filter((v) => (!ignoreEmpty || pathIntlKeysMap[v].length) && modulesDepsMap[v]) .map((v) => [v, pathIntlKeysMap[v]])); }; /** * get intl keys of a module and offsprings * @param module * @param graph * @param pathIntlKeysMap * @returns */ export const getModuleIntlKeysMap = (module, graph, pathIntlKeysMap) => { return offsprings(module, graph).reduce((keys, module) => { (pathIntlKeysMap[module] || []).forEach((key) => keys.add(key)); return keys; }, new Set()); };