| const DEVELOPMENT_DIRECTORIES = new Set([ |
| '.nyc_output', |
| '__fixtures__', |
| '__tests__', |
| 'coverage', |
| 'fixture', |
| 'fixtures', |
| 'test', |
| 'tests', |
| ]); |
| |
| export function isThirdPartyDevelopmentArtifact(relativePath) { |
| const segments = relativePath.split(/[\\/]/).filter(Boolean); |
| if (segments.some((segment) => DEVELOPMENT_DIRECTORIES.has(segment))) return true; |
| |
| const file = segments.at(-1) ?? ''; |
| return ( |
| /\.(?:spec|test)\.(?:cjs|js|mjs)$/.test(file) || |
| /\.d\.ts(?:\.map)?$/.test(file) || |
| /\.(?:cjs|js|mjs)\.map$/.test(file) || |
| /\.(?:cts|mts|ts|tsx)$/.test(file) || |
| file.endsWith('.tsbuildinfo') |
| ); |
| } |
| |
| // Modules that only a test or E2E entry point may import. They are a |
| // Maka-owned convention, so they are not part of DEVELOPMENT_DIRECTORIES: a |
| // third-party package is free to ship a directory by that name. |
| const MAKA_TEST_ONLY_DIRECTORY = 'test-only'; |
| |
| export function isMakaDevelopmentArtifact(relativePath) { |
| const segments = relativePath.split(/[\\/]/).filter(Boolean); |
| if (segments.some((segment) => segment === 'src')) return true; |
| if (segments.some((segment) => segment === MAKA_TEST_ONLY_DIRECTORY)) return true; |
| if (segments.some((segment) => DEVELOPMENT_DIRECTORIES.has(segment))) return true; |
| |
| const file = segments.at(-1) ?? ''; |
| return ( |
| file === 'dev-cli.js' || |
| /\.(?:spec|test)\.js$/.test(file) || |
| /\.d\.ts(?:\.map)?$/.test(file) || |
| /\.js\.map$/.test(file) |
| ); |
| } |