From 5c03227042ed80f23a9086b5914f265936eaac5c Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Fri, 10 Nov 2023 09:13:14 -0300 Subject: [PATCH] refactor(nx-python): fix sonarcloud code smell --- .../generators/poetry-project/generator.ts | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/packages/nx-python/src/generators/poetry-project/generator.ts b/packages/nx-python/src/generators/poetry-project/generator.ts index 662e14a..e49e284 100644 --- a/packages/nx-python/src/generators/poetry-project/generator.ts +++ b/packages/nx-python/src/generators/poetry-project/generator.ts @@ -34,20 +34,10 @@ function normalizeOptions( tree: Tree, options: PoetryProjectGeneratorSchema ): NormalizedSchema { - let projectName = options.name; - let projectRoot = options.directory || options.name; - if (options.projectNameAndRootFormat === 'derived') { - const name = names(options.name).fileName; - const projectDirectory = options.directory - ? `${names(options.directory).fileName}/${name}` - : name; - projectName = projectDirectory.replace(/\//g, '-'); - projectRoot = `${ - options.projectType === 'application' - ? getWorkspaceLayout(tree).appsDir - : getWorkspaceLayout(tree).libsDir - }/${projectDirectory}`; - } + const { projectName, projectRoot } = calculateProjectNameAndRoot( + options, + tree + ); const parsedTags = options.tags ? options.tags.split(',').map((s) => s.trim()) @@ -118,6 +108,29 @@ function normalizeOptions( }; } +function calculateProjectNameAndRoot( + options: PoetryProjectGeneratorSchema, + tree: Tree +) { + let projectName = options.name; + let projectRoot = options.directory || options.name; + + if (options.projectNameAndRootFormat === 'derived') { + const name = names(options.name).fileName; + const projectDirectory = options.directory + ? `${names(options.directory).fileName}/${name}` + : name; + projectName = projectDirectory.replace(/\//g, '-'); + projectRoot = `${ + options.projectType === 'application' + ? getWorkspaceLayout(tree).appsDir + : getWorkspaceLayout(tree).libsDir + }/${projectDirectory}`; + } + + return { projectName, projectRoot }; +} + function getPyTestAddopts( options: PoetryProjectGeneratorSchema, projectRoot: string