@@ -8,8 +8,9 @@ import coveragePlugin, {
88} from './packages/plugin-coverage/src/index.js' ;
99import eslintPlugin , {
1010 eslintConfigFromAllNxProjects ,
11- eslintConfigFromNxProject ,
1211} from './packages/plugin-eslint/src/index.js' ;
12+ import type { ESLintTarget } from './packages/plugin-eslint/src/lib/config.js' ;
13+ import { nxProjectsToConfig } from './packages/plugin-eslint/src/lib/nx/projects-to-config.js' ;
1314import jsPackagesPlugin from './packages/plugin-js-packages/src/index.js' ;
1415import jsDocsPlugin from './packages/plugin-jsdocs/src/index.js' ;
1516import type { JsDocsPluginTransformedConfig } from './packages/plugin-jsdocs/src/lib/config.js' ;
@@ -156,15 +157,27 @@ export const jsDocsCoreConfig = (
156157 ) ,
157158} ) ;
158159
160+ export async function eslintConfigFromPublishableNxProjects ( ) : Promise <
161+ ESLintTarget [ ]
162+ > {
163+ const { createProjectGraphAsync } = await import ( '@nx/devkit' ) ;
164+ const projectGraph = await createProjectGraphAsync ( { exitOnError : false } ) ;
165+ return nxProjectsToConfig (
166+ projectGraph ,
167+ project => project . tags ?. includes ( 'publishable' ) ?? false ,
168+ ) ;
169+ }
170+
159171export const eslintCoreConfigNx = async (
160172 projectName ?: string ,
161173) : Promise < CoreConfig > => ( {
162174 plugins : [
163- await eslintPlugin (
164- await ( projectName
165- ? eslintConfigFromNxProject ( projectName )
166- : eslintConfigFromAllNxProjects ( ) ) ,
167- ) ,
175+ projectName
176+ ? await eslintPlugin ( {
177+ eslintrc : `packages/${ projectName } /eslint.config.js` ,
178+ patterns : [ '.' ] ,
179+ } )
180+ : await eslintPlugin ( await eslintConfigFromAllNxProjects ( ) ) ,
168181 ] ,
169182 categories : eslintCategories ,
170183} ) ;
0 commit comments