From d7d5e1451adb390f79795fb230f75c66c2c8d44c Mon Sep 17 00:00:00 2001 From: srleecode Date: Sat, 6 Jan 2024 15:37:11 +1100 Subject: [PATCH] fix(121): fixed issue with shell module and stories title --- package-lock.json | 4 ++-- package.json | 2 +- .../cypress/domain-test/src/generator.ts | 5 ++--- .../application-layer/src/generator.spec.ts | 8 ++++---- .../application-layer/src/generator.ts | 10 ++++++---- .../component/src/default-options.constant.ts | 2 +- .../angular/component/src/generator.ts | 14 ++++++++----- .../add-component-files.ts | 15 +++++++------- .../angular/directive/src/generator.ts | 12 +++++++---- .../add-directive-files.ts | 8 ++++---- .../domain-layer/src/generator.spec.ts | 2 +- .../angular/domain-layer/src/generator.ts | 10 ++++++---- .../infrastructure-layer/src/generator.ts | 10 ++++++---- .../presentation-layer/src/generator.spec.ts | 20 +++++++++---------- .../presentation-layer/src/generator.ts | 10 ++++++---- .../angular/util-layer/src/generator.spec.ts | 6 +++--- .../angular/util-layer/src/generator.ts | 8 +++++--- .../shared/src/add-domain-library.ts | 3 --- .../create-domain/src/generator.spec.ts | 6 +++--- .../create-domain/src/generator.ts | 9 ++++++--- .../remove/src/generator.spec.ts | 2 +- .../grouping-folder/remove/src/generator.ts | 6 ++++-- .../domain/generators/shared/utils/index.ts | 1 + .../src/get-processed-grouping-folder.spec.ts | 15 ++++++++++++++ .../src/get-processed-grouping-folder.ts | 2 ++ packages/domain/package.json | 2 +- 26 files changed, 115 insertions(+), 77 deletions(-) create mode 100644 packages/domain/generators/shared/utils/src/get-processed-grouping-folder.spec.ts create mode 100644 packages/domain/generators/shared/utils/src/get-processed-grouping-folder.ts diff --git a/package-lock.json b/package-lock.json index 9cb8ca0..3e7a74c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@srleecode/domain", - "version": "17.2.8", + "version": "17.2.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@srleecode/domain", - "version": "17.2.8", + "version": "17.2.9", "license": "MIT", "dependencies": { "@angular/core": "17.0.8", diff --git a/package.json b/package.json index 0447c1a..c6e22fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@srleecode/domain", - "version": "17.2.8", + "version": "17.2.9", "private": true, "description": "Nrwl nx plugin to allow operations at the domain level", "homepage": "https://github.com/srleecode/domain", diff --git a/packages/domain/generators/cypress/domain-test/src/generator.ts b/packages/domain/generators/cypress/domain-test/src/generator.ts index 5b8bcd8..c071824 100644 --- a/packages/domain/generators/cypress/domain-test/src/generator.ts +++ b/packages/domain/generators/cypress/domain-test/src/generator.ts @@ -12,6 +12,7 @@ import { SetupDomainTestGeneratorSchema } from './schema'; // eslint-disable-next-line @nx/enforce-module-boundaries import { getDasherizedFolderPath, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../shared/utils'; import { getTags } from './lib/get-domain-test-eslint-tags'; @@ -24,10 +25,8 @@ export async function setupDomainTestGenerator( ): Promise { let { groupingFolder } = options; const { type } = options; - groupingFolder = groupingFolder.endsWith('/') - ? groupingFolder.slice(0, -1) - : groupingFolder; validateGroupingFolder(tree, groupingFolder); + groupingFolder = getProcessedGroupingFolder(groupingFolder); const dasherisedFolderPath = getDasherizedFolderPath(tree, groupingFolder); const projectName = `${type}-${dasherisedFolderPath}`; const directory = `${groupingFolder}/.${type}`; diff --git a/packages/domain/generators/front-end/angular/application-layer/src/generator.spec.ts b/packages/domain/generators/front-end/angular/application-layer/src/generator.spec.ts index 47fac79..d96e99b 100644 --- a/packages/domain/generators/front-end/angular/application-layer/src/generator.spec.ts +++ b/packages/domain/generators/front-end/angular/application-layer/src/generator.spec.ts @@ -9,10 +9,10 @@ import { ApplicationType, getGroupingFolders } from '../../../../shared/utils'; import { createDummyGroupingFolder } from '../../../../shared/test-utils'; import { CreateApplicationLayerGeneratorSchema } from './schema'; -describe('createDomainLayerGenerator', () => { +describe('createApplicationLayerGenerator', () => { let tree: Tree; const schema: CreateApplicationLayerGeneratorSchema = { - groupingFolder: 'libs/test-app/test-domain', + groupingFolder: 'libs/test-app/test-domain/', buildable: true, strict: false, enableIvy: true, @@ -32,11 +32,11 @@ describe('createDomainLayerGenerator', () => { expect.anything(), '', 'application', - schema.groupingFolder, + 'libs/test-app/test-domain', groupingFolders.app, ApplicationType.Angular, true, - schema + schema, ); }); it('should add jest junit reporter config when addJestJunitReporter is true', async () => { diff --git a/packages/domain/generators/front-end/angular/application-layer/src/generator.ts b/packages/domain/generators/front-end/angular/application-layer/src/generator.ts index cf88374..2a12f35 100644 --- a/packages/domain/generators/front-end/angular/application-layer/src/generator.ts +++ b/packages/domain/generators/front-end/angular/application-layer/src/generator.ts @@ -6,14 +6,16 @@ import { addDomainLibrary } from '../../../shared'; import { ApplicationType, getGroupingFolders, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../../shared/utils'; export async function createApplicationLayerGenerator( tree: Tree, - options: CreateApplicationLayerGeneratorSchema + options: CreateApplicationLayerGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const groupingFolders = getGroupingFolders(tree, groupingFolder); await addDomainLibrary( @@ -24,7 +26,7 @@ export async function createApplicationLayerGenerator( groupingFolders.app, ApplicationType.Angular, true, - options + options, ); await formatFiles(tree); } @@ -32,5 +34,5 @@ export async function createApplicationLayerGenerator( export default createApplicationLayerGenerator; export const createApplicationLayerSchematic = convertNxGenerator( - createApplicationLayerGenerator + createApplicationLayerGenerator, ); diff --git a/packages/domain/generators/front-end/angular/component/src/default-options.constant.ts b/packages/domain/generators/front-end/angular/component/src/default-options.constant.ts index a129ee8..54a781f 100644 --- a/packages/domain/generators/front-end/angular/component/src/default-options.constant.ts +++ b/packages/domain/generators/front-end/angular/component/src/default-options.constant.ts @@ -6,7 +6,7 @@ import { CreateComponentGeneratorSchema } from './schema'; import { StyleType } from './model/style-type.enum'; export const defaultOptions: CreateComponentGeneratorSchema = { - groupingFolder: 'libs/test-app/test-domain', + groupingFolder: 'libs/test-app/test-domain/', type: ComponentType.Feature, name: 'TestExample', viewEncapsulation: ViewEncapsulation.Emulated, diff --git a/packages/domain/generators/front-end/angular/component/src/generator.ts b/packages/domain/generators/front-end/angular/component/src/generator.ts index ebdee6f..f56229c 100644 --- a/packages/domain/generators/front-end/angular/component/src/generator.ts +++ b/packages/domain/generators/front-end/angular/component/src/generator.ts @@ -4,23 +4,27 @@ import { addComponentFiles } from './lib/add-component-files/add-component-files // eslint-disable-next-line @nx/enforce-module-boundaries import createPresentationLayerGenerator from '../../presentation-layer/src/generator'; // eslint-disable-next-line @nx/enforce-module-boundaries -import { validateGroupingFolder } from '../../../../shared/utils'; +import { + getProcessedGroupingFolder, + validateGroupingFolder, +} from '../../../../shared/utils'; export async function createComponentGenerator( tree: Tree, - options: CreateComponentGeneratorSchema + options: CreateComponentGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); if (tree.children(`${groupingFolder}/presentation`).length === 0) { await createPresentationLayerGenerator(tree, options); } - addComponentFiles(tree, options); + addComponentFiles(tree, options, groupingFolder); await formatFiles(tree); } export default createComponentGenerator; export const createComponentSchematic = convertNxGenerator( - createComponentGenerator + createComponentGenerator, ); diff --git a/packages/domain/generators/front-end/angular/component/src/lib/add-component-files/add-component-files.ts b/packages/domain/generators/front-end/angular/component/src/lib/add-component-files/add-component-files.ts index 33bd487..9a7bdaa 100644 --- a/packages/domain/generators/front-end/angular/component/src/lib/add-component-files/add-component-files.ts +++ b/packages/domain/generators/front-end/angular/component/src/lib/add-component-files/add-component-files.ts @@ -26,12 +26,13 @@ import { classify, dasherize } from '@angular-devkit/core/src/utils/strings'; export const addComponentFiles = ( tree: Tree, - options: CreateComponentGeneratorSchema + options: CreateComponentGeneratorSchema, + groupingFolder: string, ): void => { - const { groupingFolder, name, type, prefix } = options; + const { name, type, prefix } = options; const dasherisedGroupingFolder = `${getDasherizedFolderPath( tree, - groupingFolder + groupingFolder, )}`; const dasherizedName = dasherize(name); const projectName = dasherize(`${dasherisedGroupingFolder}-${type}-${name}`); @@ -42,7 +43,7 @@ export const addComponentFiles = ( }); const target = normalize( - `${groupingFolder}/presentation/src/lib/${type}/${dasherizedName}` + `${groupingFolder}/presentation/src/lib/${type}/${dasherizedName}`, ); const templateOptions = { ...options, @@ -72,7 +73,7 @@ export const addComponentFiles = ( tree, `${groupingFolder}/presentation`, type, - dasherizedName + dasherizedName, ); }; @@ -87,7 +88,7 @@ const addComponentToIndex = ( tree: Tree, libraryPath: string, type: ComponentType, - dasherizedName: string + dasherizedName: string, ): void => { const indexPath = `${libraryPath}/src/index.ts`; const source = getTsSourceFile(tree, indexPath); @@ -104,7 +105,7 @@ const addComponentToIndex = ( ]; const newFile = applyChangesToString( tree.read(indexPath).toString(), - changes + changes, ); tree.write(indexPath, newFile); }; diff --git a/packages/domain/generators/front-end/angular/directive/src/generator.ts b/packages/domain/generators/front-end/angular/directive/src/generator.ts index 0ce43d4..e286158 100644 --- a/packages/domain/generators/front-end/angular/directive/src/generator.ts +++ b/packages/domain/generators/front-end/angular/directive/src/generator.ts @@ -4,13 +4,17 @@ import { addDirectiveFiles } from './lib/add-directive-files/add-directive-files // eslint-disable-next-line @nx/enforce-module-boundaries import createPresentationLayerGenerator from '../../presentation-layer/src/generator'; // eslint-disable-next-line @nx/enforce-module-boundaries -import { validateGroupingFolder } from '../../../../shared/utils'; +import { + getProcessedGroupingFolder, + validateGroupingFolder, +} from '../../../../shared/utils'; export async function createDirectiveGenerator( tree: Tree, - options: CreateDirectiveGeneratorSchema + options: CreateDirectiveGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); if (tree.children(`${groupingFolder}/presentation`).length === 0) { await createPresentationLayerGenerator(tree, options); @@ -22,5 +26,5 @@ export async function createDirectiveGenerator( export default createDirectiveGenerator; export const createDirectiveSchematic = convertNxGenerator( - createDirectiveGenerator + createDirectiveGenerator, ); diff --git a/packages/domain/generators/front-end/angular/directive/src/lib/add-directive-files/add-directive-files.ts b/packages/domain/generators/front-end/angular/directive/src/lib/add-directive-files/add-directive-files.ts index e5382e3..e06899c 100644 --- a/packages/domain/generators/front-end/angular/directive/src/lib/add-directive-files/add-directive-files.ts +++ b/packages/domain/generators/front-end/angular/directive/src/lib/add-directive-files/add-directive-files.ts @@ -17,12 +17,12 @@ import { export const addDirectiveFiles = ( tree: Tree, - options: CreateDirectiveGeneratorSchema + options: CreateDirectiveGeneratorSchema, ): void => { const { groupingFolder, name, prefix } = options; const dasherisedGroupingFolder = `${getDasherizedFolderPath( tree, - groupingFolder + groupingFolder, )}`; const libraryName = getLibraryName({ name, @@ -30,10 +30,10 @@ export const addDirectiveFiles = ( }); const libraryPath = `${groupingFolder}/${libraryName}`; const target = normalize( - `${groupingFolder}/presentation/src/lib/directive/${dasherize(name)}` + `${groupingFolder}/presentation/src/lib/directive/${dasherize(name)}`, ); const projectName = dasherize( - `${dasherisedGroupingFolder}-directive-${name}` + `${dasherisedGroupingFolder}-directive-${name}`, ); const selector = prefix ? `${prefix}${classify(name)}` diff --git a/packages/domain/generators/front-end/angular/domain-layer/src/generator.spec.ts b/packages/domain/generators/front-end/angular/domain-layer/src/generator.spec.ts index a1b8276..d16dd34 100644 --- a/packages/domain/generators/front-end/angular/domain-layer/src/generator.spec.ts +++ b/packages/domain/generators/front-end/angular/domain-layer/src/generator.spec.ts @@ -40,7 +40,7 @@ describe('createDomainLayerGenerator', () => { expect.anything(), '', 'domain', - schema.groupingFolder, + 'libs/test-app/test-domain', groupingFolders.app, ApplicationType.Angular, true, diff --git a/packages/domain/generators/front-end/angular/domain-layer/src/generator.ts b/packages/domain/generators/front-end/angular/domain-layer/src/generator.ts index f9b41e6..692d344 100644 --- a/packages/domain/generators/front-end/angular/domain-layer/src/generator.ts +++ b/packages/domain/generators/front-end/angular/domain-layer/src/generator.ts @@ -6,14 +6,16 @@ import { addDomainLibrary } from '../../../shared'; import { ApplicationType, getGroupingFolders, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../../shared/utils'; export async function createDomainLayerGenerator( tree: Tree, - options: CreateDomainLayerGeneratorSchema + options: CreateDomainLayerGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const libraryName = 'domain'; const groupingFolders = getGroupingFolders(tree, groupingFolder); @@ -25,7 +27,7 @@ export async function createDomainLayerGenerator( groupingFolders.app, ApplicationType.Angular, true, - options + options, ); await formatFiles(tree); } @@ -33,5 +35,5 @@ export async function createDomainLayerGenerator( export default createDomainLayerGenerator; export const createDomainLayerSchematic = convertNxGenerator( - createDomainLayerGenerator + createDomainLayerGenerator, ); diff --git a/packages/domain/generators/front-end/angular/infrastructure-layer/src/generator.ts b/packages/domain/generators/front-end/angular/infrastructure-layer/src/generator.ts index cce581d..d5e7c82 100644 --- a/packages/domain/generators/front-end/angular/infrastructure-layer/src/generator.ts +++ b/packages/domain/generators/front-end/angular/infrastructure-layer/src/generator.ts @@ -6,14 +6,16 @@ import { addDomainLibrary } from '../../../shared'; import { ApplicationType, getGroupingFolders, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../../shared/utils'; export async function createInfrastructureLayerGenerator( tree: Tree, - options: CreateInfrastructureLayerGeneratorSchema + options: CreateInfrastructureLayerGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const groupingFolders = getGroupingFolders(tree, groupingFolder); await addDomainLibrary( @@ -24,7 +26,7 @@ export async function createInfrastructureLayerGenerator( groupingFolders.app, ApplicationType.Angular, true, - options + options, ); await formatFiles(tree); } @@ -32,5 +34,5 @@ export async function createInfrastructureLayerGenerator( export default createInfrastructureLayerGenerator; export const createInfrastructureLayeSchematic = convertNxGenerator( - createInfrastructureLayerGenerator + createInfrastructureLayerGenerator, ); diff --git a/packages/domain/generators/front-end/angular/presentation-layer/src/generator.spec.ts b/packages/domain/generators/front-end/angular/presentation-layer/src/generator.spec.ts index 115dff2..f78ad5a 100644 --- a/packages/domain/generators/front-end/angular/presentation-layer/src/generator.spec.ts +++ b/packages/domain/generators/front-end/angular/presentation-layer/src/generator.spec.ts @@ -22,7 +22,7 @@ describe('createPresentationLayerGenerator', () => { enableIvy: true, publishable: false, }; - const groupingFolder = 'libs/test-app/test-domain'; + const groupingFolder = 'libs/test-app/test-domain/'; beforeEach(() => { jest.clearAllMocks(); tree = createTreeWithEmptyWorkspace(); @@ -38,11 +38,11 @@ describe('createPresentationLayerGenerator', () => { }); const fileName = `${getDasherizedFolderPath( tree, - groupingFolder + groupingFolder, )}-shell.module.ts`; const filePath = `${groupingFolder}/presentation/src/lib/${fileName}`; expect(tree.read(filePath).toString()).toMatch( - 'TestAppTestDomainShellModule' + 'TestAppTestDomainShellModule', ); }); @@ -54,7 +54,7 @@ describe('createPresentationLayerGenerator', () => { }); const filePath = `${groupingFolder}/presentation/src/index.ts`; expect(tree.read(filePath).toString()).toMatch( - `export * from './lib/test-app-test-domain-shell.module` + `export * from './lib/test-app-test-domain-shell.module`, ); }); @@ -72,11 +72,11 @@ describe('createPresentationLayerGenerator', () => { expect.anything(), '', 'presentation', - schema.groupingFolder, + 'libs/test-app/test-domain', groupingFolders.app, ApplicationType.Angular, false, - schema + schema, ); }); it('should add jest junit reporter config when addJestJunitReporter is true', async () => { @@ -98,13 +98,13 @@ describe('createPresentationLayerGenerator', () => { prefix, }); const eslint = JSON.parse( - tree.read(`${groupingFolder}/presentation/.eslintrc.json`).toString() + tree.read(`${groupingFolder}/presentation/.eslintrc.json`).toString(), ); expect( - eslint.overrides[0].rules['@angular-eslint/component-selector'][1].prefix + eslint.overrides[0].rules['@angular-eslint/component-selector'][1].prefix, ).toBe(prefix); expect( - eslint.overrides[0].rules['@angular-eslint/directive-selector'][1].prefix + eslint.overrides[0].rules['@angular-eslint/directive-selector'][1].prefix, ).toBe(prefix); }); @@ -142,7 +142,7 @@ describe('createPresentationLayerGenerator', () => { expect( eslint.overrides[0].rules[ '@nx/enforce-module-boundaries' - ][1].depConstraints.find((c) => c.sourceTag === 'type:presentation') + ][1].depConstraints.find((c) => c.sourceTag === 'type:presentation'), ).toEqual({ notDependOnLibsWithTags: [], onlyDependOnLibsWithTags: [ diff --git a/packages/domain/generators/front-end/angular/presentation-layer/src/generator.ts b/packages/domain/generators/front-end/angular/presentation-layer/src/generator.ts index d5c6074..9c175d5 100644 --- a/packages/domain/generators/front-end/angular/presentation-layer/src/generator.ts +++ b/packages/domain/generators/front-end/angular/presentation-layer/src/generator.ts @@ -6,6 +6,7 @@ import { addDomainLibrary } from '../../../shared'; import { ApplicationType, getGroupingFolders, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../../shared/utils'; import { addPresentationLayerEslintConstraint } from './lib/add-presentation-eslint-constraint'; @@ -13,9 +14,10 @@ import { createShellModule } from './lib/create-shell-module'; export async function createPresentationLayerGenerator( tree: Tree, - options: CreatePresentationLayerGeneratorSchema + options: CreatePresentationLayerGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const libraryName = 'presentation'; const groupingFolders = getGroupingFolders(tree, groupingFolder); @@ -27,7 +29,7 @@ export async function createPresentationLayerGenerator( groupingFolders.app, ApplicationType.Angular, false, - options + options, ); createShellModule(tree, groupingFolder, libraryName); addPresentationLayerEslintConstraint(tree); @@ -37,5 +39,5 @@ export async function createPresentationLayerGenerator( export default createPresentationLayerGenerator; export const createPresentationLayerSchematic = convertNxGenerator( - createPresentationLayerGenerator + createPresentationLayerGenerator, ); diff --git a/packages/domain/generators/front-end/angular/util-layer/src/generator.spec.ts b/packages/domain/generators/front-end/angular/util-layer/src/generator.spec.ts index a532da5..81b8fdc 100644 --- a/packages/domain/generators/front-end/angular/util-layer/src/generator.spec.ts +++ b/packages/domain/generators/front-end/angular/util-layer/src/generator.spec.ts @@ -11,7 +11,7 @@ import { createDummyGroupingFolder } from '@srleecode/domain/shared/test-utils'; describe('createUtilGenerator', () => { let tree: Tree; const schema: CreateUtilGeneratorSchema = { - groupingFolder: 'libs/test-app/test-domain', + groupingFolder: 'libs/test-app/test-domain/', buildable: true, strict: false, enableIvy: true, @@ -31,11 +31,11 @@ describe('createUtilGenerator', () => { expect.anything(), '', 'util', - schema.groupingFolder, + 'libs/test-app/test-domain', groupingFolders.app, ApplicationType.Angular, true, - schema + schema, ); }); it('should add jest junit reporter config when addJestJunitReporter is true', async () => { diff --git a/packages/domain/generators/front-end/angular/util-layer/src/generator.ts b/packages/domain/generators/front-end/angular/util-layer/src/generator.ts index d4ca236..b3604d0 100644 --- a/packages/domain/generators/front-end/angular/util-layer/src/generator.ts +++ b/packages/domain/generators/front-end/angular/util-layer/src/generator.ts @@ -6,14 +6,16 @@ import { addDomainLibrary } from '../../../shared'; import { ApplicationType, getGroupingFolders, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../../shared/utils'; export async function createUtilGenerator( tree: Tree, - options: CreateUtilGeneratorSchema + options: CreateUtilGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const groupingFolders = getGroupingFolders(tree, groupingFolder); await addDomainLibrary( @@ -24,7 +26,7 @@ export async function createUtilGenerator( groupingFolders.app, ApplicationType.Angular, true, - options + options, ); await formatFiles(tree); } diff --git a/packages/domain/generators/front-end/shared/src/add-domain-library.ts b/packages/domain/generators/front-end/shared/src/add-domain-library.ts index 37f3f2a..b8e7c0e 100644 --- a/packages/domain/generators/front-end/shared/src/add-domain-library.ts +++ b/packages/domain/generators/front-end/shared/src/add-domain-library.ts @@ -24,9 +24,6 @@ export const addDomainLibrary = async ( removeLintOverrides: boolean, schema?: Partial & { addJestJunitReporter?: boolean }, ): Promise => { - groupingFolderPath = groupingFolderPath.endsWith('/') - ? groupingFolderPath.slice(0, -1) - : groupingFolderPath; const libraryCommonOptions = getLibraryCommonOptions( tree, name, diff --git a/packages/domain/generators/grouping-folder/create-domain/src/generator.spec.ts b/packages/domain/generators/grouping-folder/create-domain/src/generator.spec.ts index 522e9b1..4d80836 100644 --- a/packages/domain/generators/grouping-folder/create-domain/src/generator.spec.ts +++ b/packages/domain/generators/grouping-folder/create-domain/src/generator.spec.ts @@ -7,7 +7,7 @@ import { createDummyGroupingFolder } from '@srleecode/domain/shared/test-utils'; describe('createAppGroupingFolderGenerator', () => { let tree: Tree; const options: CreateDomainGroupingFolderGeneratorSchema = { - groupingFolder: 'libs/ng-test-app', + groupingFolder: 'libs/ng-test-app/', name: 'test-domain', }; const domainScope = 'scope:ng-test-app-test-domain'; @@ -16,7 +16,7 @@ describe('createAppGroupingFolderGenerator', () => { const eslint = readJson(tree, '.eslintrc.json'); expect( eslint.overrides[0].rules['@nx/enforce-module-boundaries'][1] - .depConstraints[0].onlyDependOnLibsWithTags + .depConstraints[0].onlyDependOnLibsWithTags, ).toContainEqual(dependencyTag); }; @@ -78,7 +78,7 @@ describe('createAppGroupingFolderGenerator', () => { const eslint = readJson(tree, '.eslintrc.json'); expect( eslint.overrides[0].rules['@nx/enforce-module-boundaries'][1] - .depConstraints + .depConstraints, ).toEqual([]); }); }); diff --git a/packages/domain/generators/grouping-folder/create-domain/src/generator.ts b/packages/domain/generators/grouping-folder/create-domain/src/generator.ts index 46162d7..bbc7b8f 100644 --- a/packages/domain/generators/grouping-folder/create-domain/src/generator.ts +++ b/packages/domain/generators/grouping-folder/create-domain/src/generator.ts @@ -5,14 +5,17 @@ import { mkdirSync } from 'fs'; // eslint-disable-next-line @nx/enforce-module-boundaries import { getNormalisedPath, + getProcessedGroupingFolder, validateGroupingFolder, } from '../../../shared/utils'; export async function createDomainGroupingFolderGenerator( tree: Tree, - options: CreateDomainGroupingFolderGeneratorSchema + options: CreateDomainGroupingFolderGeneratorSchema, ) { - const { name, groupingFolder } = options; + let { groupingFolder } = options; + const { name } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const splitGroupingFolder = getNormalisedPath(groupingFolder).split('/'); const isSharedAppDomain = @@ -30,5 +33,5 @@ export async function createDomainGroupingFolderGenerator( export default createDomainGroupingFolderGenerator; export const createDomainGroupingFolderSchematic = convertNxGenerator( - createDomainGroupingFolderGenerator + createDomainGroupingFolderGenerator, ); diff --git a/packages/domain/generators/grouping-folder/remove/src/generator.spec.ts b/packages/domain/generators/grouping-folder/remove/src/generator.spec.ts index 0d4d438..96cf216 100644 --- a/packages/domain/generators/grouping-folder/remove/src/generator.spec.ts +++ b/packages/domain/generators/grouping-folder/remove/src/generator.spec.ts @@ -16,7 +16,7 @@ describe('removeGenerator', () => { it('should remove all projects under the given folder', async () => { const schema: CreateInfrastructureLayerGeneratorSchema = { - groupingFolder: 'libs/test-app/test-domain', + groupingFolder: 'libs/test-app/test-domain/', buildable: true, strict: false, enableIvy: true, diff --git a/packages/domain/generators/grouping-folder/remove/src/generator.ts b/packages/domain/generators/grouping-folder/remove/src/generator.ts index 2257888..6c86585 100644 --- a/packages/domain/generators/grouping-folder/remove/src/generator.ts +++ b/packages/domain/generators/grouping-folder/remove/src/generator.ts @@ -11,6 +11,7 @@ import { getDasherizedFolderPath, getDomainPath, getNpmScope, + getProcessedGroupingFolder, getProjectNames, isHavingDepContraint, isHavingMockFile, @@ -23,9 +24,10 @@ import { removeImportPath } from './lib/remove-import-path'; export async function removeGenerator( tree: Tree, - options: RemoveGeneratorSchema + options: RemoveGeneratorSchema, ): Promise { - const { groupingFolder } = options; + let { groupingFolder } = options; + groupingFolder = getProcessedGroupingFolder(groupingFolder); validateGroupingFolder(tree, groupingFolder); const projectNames = getProjectNames(tree, groupingFolder); for (const projectName of projectNames) { diff --git a/packages/domain/generators/shared/utils/index.ts b/packages/domain/generators/shared/utils/index.ts index f1b5e38..eb22961 100644 --- a/packages/domain/generators/shared/utils/index.ts +++ b/packages/domain/generators/shared/utils/index.ts @@ -14,6 +14,7 @@ export { getTsSourceFile } from './src/get-ts-source-file'; export { spacify } from './src/spacify'; export { getNpmScope } from './src/get-npm-scope'; export { validateGroupingFolder } from './src/validate-grouping-folder'; +export { getProcessedGroupingFolder } from './src/get-processed-grouping-folder'; export { UnitTestType } from './src/model/unit-test-type.enum'; export { ElementType } from './src/model/element-type.enum'; export { ApplicationType } from './src/model/application-type.enum'; diff --git a/packages/domain/generators/shared/utils/src/get-processed-grouping-folder.spec.ts b/packages/domain/generators/shared/utils/src/get-processed-grouping-folder.spec.ts new file mode 100644 index 0000000..bc36f76 --- /dev/null +++ b/packages/domain/generators/shared/utils/src/get-processed-grouping-folder.spec.ts @@ -0,0 +1,15 @@ +import { getProcessedGroupingFolder } from './get-processed-grouping-folder'; + +describe('getProcessedGroupingFolder', () => { + const groupingFolder = 'libs/ng-test-app/test-domain'; + + it('should remove / from end of grouping folder', async () => { + expect(getProcessedGroupingFolder(groupingFolder + '/')).toBe( + groupingFolder, + ); + }); + + it('should return grouping folder when it doesnt end in /', async () => { + expect(getProcessedGroupingFolder(groupingFolder)).toBe(groupingFolder); + }); +}); diff --git a/packages/domain/generators/shared/utils/src/get-processed-grouping-folder.ts b/packages/domain/generators/shared/utils/src/get-processed-grouping-folder.ts new file mode 100644 index 0000000..c0adfdd --- /dev/null +++ b/packages/domain/generators/shared/utils/src/get-processed-grouping-folder.ts @@ -0,0 +1,2 @@ +export const getProcessedGroupingFolder = (groupingFolder: string): string => + groupingFolder.endsWith('/') ? groupingFolder.slice(0, -1) : groupingFolder; diff --git a/packages/domain/package.json b/packages/domain/package.json index f1dc550..3142dfe 100644 --- a/packages/domain/package.json +++ b/packages/domain/package.json @@ -1,6 +1,6 @@ { "name": "@srleecode/domain", - "version": "17.2.8", + "version": "17.2.9", "main": "index.js", "executors": "./executors.json", "generators": "./generators.json",