jestjs/jest

Expose project matching behaviour

Open

#11171 opened on Mar 8, 2021

View on GitHub
 (2 comments) (0 reactions) (0 assignees)TypeScript (45,361 stars) (6,653 forks)batch import
:rocket: Feature RequestHelp WantedPinned

Description

🚀 Feature Proposal

Expose the logic that determines what project a file belongs to. Given a file path and a Jest configuration, what options apply?

Motivation

To allow third-party tools to understand Jest configurations. E.g: https://github.com/jest-community/eslint-plugin-jest/pull/754#issuecomment-780396777

Example

I am not sure what package this logic currently resides in, but something along the lines of:

import { resolveOptions } from '@jest/options';
import { readConfig } from '@jest/config';

const config = await readConfig('/path/to/jest.config.js');
const options = await resolveOptions('/path/to/unit.test.js', config);

Pitch

The projects logic is very specific to Jest, and recreating it externally would likely be erroneous and fall out-of-date quickly.

Contributor guide