@ts-intl/dependency
Version:
I18n keys dependency analysis
32 lines (28 loc) • 838 B
text/typescript
import madge from 'madge';
import { getDependencies } from './getDependencies';
import { ExtractIntlKeysOpts, FileStatus, IContext, IOpts } from './types';
import { mergeMadgeConfig } from './utils';
export const getDependenciesByEntries = async (
entries: string[],
opts: Omit<IOpts, 'extractIntlKeys'> & {
extractIntlKeys?: IOpts['extractIntlKeys'];
},
extractIntlKeysOpts?: ExtractIntlKeysOpts
) => {
const ctx: IContext = {
graph: (await madge(entries, mergeMadgeConfig(opts.madgeConfig))).obj(),
pathIntlKeysMap: {},
};
const statuses: FileStatus[] = Object.keys(ctx.graph).map((module, idx) => ({
type: 'modified',
from: module,
lastModified: idx,
}));
return getDependencies(
statuses,
entries,
{ ...opts, ignoreCollectDeps: true },
ctx,
extractIntlKeysOpts
);
};