From c9dc2388270046eea87a6bbb8f05ccc6ecdc897a Mon Sep 17 00:00:00 2001 From: Nex Zhu Date: Tue, 19 Dec 2023 11:38:04 +0800 Subject: [PATCH 1/2] fix(nx): project.targets.build.options could be undefined --- libs/nx/src/nx.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/nx/src/nx.ts b/libs/nx/src/nx.ts index d1f2cdf..ff2b6ae 100644 --- a/libs/nx/src/nx.ts +++ b/libs/nx/src/nx.ts @@ -103,9 +103,9 @@ export async function getNxTrueAffectedProjects( const projects = await getNxProjects(cwd); return projects.map(({ name, project }) => { - let tsConfig = project.targets?.build?.options.tsConfig; + let tsConfig = project.targets?.build?.options?.tsConfig; - if (tsConfig == null) { + if (!tsConfig) { const projectRoot = join(project.sourceRoot, '..'); if (project.projectType === 'library') { From ad4aab1ae271072cc9f0666d53c6a7eaf4ff7ea0 Mon Sep 17 00:00:00 2001 From: Nex Zhu Date: Thu, 21 Dec 2023 14:47:18 +0800 Subject: [PATCH 2/2] test(nx): add test for project?.targets?.build?.options?.tsConfig each step could be undefined --- .../nx-project/proj2/project.json | 5 +++- .../nx-project/proj3/project.json | 8 ++++++ .../nx-project/proj4/project.json | 10 +++++++ .../nx-project/proj4/tsconfig.json | 1 + libs/nx/src/nx.spec.ts | 27 ++++++++++++++++++- 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 libs/nx/src/__fixtures__/nx-project/proj3/project.json create mode 100644 libs/nx/src/__fixtures__/nx-project/proj4/project.json create mode 100644 libs/nx/src/__fixtures__/nx-project/proj4/tsconfig.json diff --git a/libs/nx/src/__fixtures__/nx-project/proj2/project.json b/libs/nx/src/__fixtures__/nx-project/proj2/project.json index a487cb9..0e1060b 100644 --- a/libs/nx/src/__fixtures__/nx-project/proj2/project.json +++ b/libs/nx/src/__fixtures__/nx-project/proj2/project.json @@ -1,3 +1,6 @@ { - "name": "proj2" + "name": "proj2", + "targets": { + "build": {} + } } diff --git a/libs/nx/src/__fixtures__/nx-project/proj3/project.json b/libs/nx/src/__fixtures__/nx-project/proj3/project.json new file mode 100644 index 0000000..482ceb7 --- /dev/null +++ b/libs/nx/src/__fixtures__/nx-project/proj3/project.json @@ -0,0 +1,8 @@ +{ + "name": "proj3", + "targets": { + "build": { + "options": {} + } + } +} diff --git a/libs/nx/src/__fixtures__/nx-project/proj4/project.json b/libs/nx/src/__fixtures__/nx-project/proj4/project.json new file mode 100644 index 0000000..f3b7eeb --- /dev/null +++ b/libs/nx/src/__fixtures__/nx-project/proj4/project.json @@ -0,0 +1,10 @@ +{ + "name": "proj4", + "targets": { + "build": { + "options": { + "tsConfig": "proj4/tsconfig.json" + } + } + } +} diff --git a/libs/nx/src/__fixtures__/nx-project/proj4/tsconfig.json b/libs/nx/src/__fixtures__/nx-project/proj4/tsconfig.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/libs/nx/src/__fixtures__/nx-project/proj4/tsconfig.json @@ -0,0 +1 @@ +{} diff --git a/libs/nx/src/nx.spec.ts b/libs/nx/src/nx.spec.ts index e4b5475..25f90d9 100644 --- a/libs/nx/src/nx.spec.ts +++ b/libs/nx/src/nx.spec.ts @@ -124,7 +124,7 @@ describe('nx', () => { beforeEach(() => { jest .spyOn(globby, 'globby') - .mockResolvedValue(['./proj1/project.json', './proj2/project.json']); + .mockResolvedValue(['./proj1/project.json', './proj2/project.json', './proj3/project.json', './proj4/project.json']); }); it('should return all found nx projects', async () => { @@ -142,6 +142,31 @@ describe('nx', () => { name: 'proj2', project: { name: 'proj2', + targets: { build: {} } + }, + }), + expect.objectContaining({ + name: 'proj3', + project: { + name: 'proj3', + targets: { + build: { + options: {} + } + } + }, + }), + expect.objectContaining({ + name: 'proj4', + project: { + name: 'proj4', + targets: { + build: { + options: { + tsConfig: 'proj4/tsconfig.json' + } + } + } }, }), ])