diff --git a/libs/core/src/true-affected.ts b/libs/core/src/true-affected.ts index 08cc111..0ca9d10 100644 --- a/libs/core/src/true-affected.ts +++ b/libs/core/src/true-affected.ts @@ -27,6 +27,7 @@ export const trueAffected = async ({ base = 'origin/main', projects, include = [DEFAULT_INCLUDE_TEST_FILES], + __experimentalLockfileCheck = false, }: TrueAffected) => { const project = new Project({ compilerOptions: { @@ -87,7 +88,7 @@ export const trueAffected = async ({ ); let changedFilesByLockfile: ChangedFiles[] = []; - if (hasLockfileChanged(changedFiles)) { + if (__experimentalLockfileCheck && hasLockfileChanged(changedFiles)) { changedFilesByLockfile = findAffectedFilesByLockfile( cwd, base, diff --git a/libs/core/src/types.ts b/libs/core/src/types.ts index 704133b..dee5f83 100644 --- a/libs/core/src/types.ts +++ b/libs/core/src/types.ts @@ -12,4 +12,7 @@ export interface TrueAffected { base?: string; projects: TrueAffectedProject[]; include?: (string | RegExp)[]; + + // **experimental** - this is an experimental feature and may be removed or changed at any time + __experimentalLockfileCheck?: boolean; } diff --git a/libs/nx/src/cli.ts b/libs/nx/src/cli.ts index 5a43820..ec48c12 100644 --- a/libs/nx/src/cli.ts +++ b/libs/nx/src/cli.ts @@ -24,6 +24,7 @@ export const affectedAction = async ({ tsConfigFilePath, includeFiles, target, + experimentalLockfileCheck, }: AffectedOptions) => { let projects = await getNxTrueAffectedProjects(cwd); @@ -44,6 +45,7 @@ export const affectedAction = async ({ base, projects, include: [...includeFiles, DEFAULT_INCLUDE_TEST_FILES], + __experimentalLockfileCheck: experimentalLockfileCheck, }); if (json) { @@ -91,6 +93,7 @@ interface AffectedOptions { includeFiles: string[]; restArgs: string[]; target: string[]; + experimentalLockfileCheck?: boolean; } const affectedCommand: CommandModule = { @@ -138,6 +141,11 @@ const affectedCommand: CommandModule = { return array.flatMap((v) => v.split(',')).map((v) => v.trim()); }, }, + experimentalLockfileCheck: { + desc: 'Experimental lockfile check', + type: 'boolean', + default: false, + }, }, handler: async ({ cwd, @@ -148,6 +156,7 @@ const affectedCommand: CommandModule = { json, includeFiles, target, + experimentalLockfileCheck, // eslint-disable-next-line @typescript-eslint/no-unused-vars $0, // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -163,6 +172,7 @@ const affectedCommand: CommandModule = { json, includeFiles, target, + experimentalLockfileCheck, restArgs: Object.entries(rest).map( /* istanbul ignore next */ ([key, value]) => `--${key}=${value}`