datalens-ui/jest/mappers/ignore-node-modules-mapper.ts
2026-06-24 20:31:05 +05:00

30 lines
1.0 KiB
TypeScript

// Usually jest ignores node_modules, since in an ideal world all modules are already correctly assembled
// Here we add modules that need to be run through the ts-jest transformer
const IGNORE_NODE_MODULES_LIST = [
'@gravity-ui',
'@diplodoc/latex-extension',
'@diplodoc/mermaid-extension',
'react-dnd',
'dnd-core',
'monaco-editor',
'tinygesture',
'jsondiffpatch',
'd3',
'd3-array',
'internmap',
'delaunator',
'robust-predicates',
];
export const getIgnoredNodeModulesRegexp = () => {
// Create pattern that matches module names in both npm/yarn and pnpm structures:
// - npm/yarn: node_modules/@scope/package/...
// - pnpm: node_modules/.pnpm/@scope+package@version/node_modules/@scope/package/...
// We need to handle both / and + as separators (pnpm uses + instead of / in .pnpm folder)
const modulesToTransform = IGNORE_NODE_MODULES_LIST.map((module) =>
module.replace(/[@/]/g, '[@/+]'),
).join('|');
return `node_modules/(?!.*(?:${modulesToTransform}))`;
};