From 3c39c311f8c6f3826bf5cba5fd02a2ab317cb1cb Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Tue, 15 Mar 2022 09:38:32 +0000 Subject: [PATCH] fix(angular): strip trailing slash from directory #9263 (#9314) --- .../src/generators/library/lib/normalize-options.ts | 2 +- packages/angular/src/generators/library/library.spec.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/angular/src/generators/library/lib/normalize-options.ts b/packages/angular/src/generators/library/lib/normalize-options.ts index cbb5db8792346..d498f87696781 100644 --- a/packages/angular/src/generators/library/lib/normalize-options.ts +++ b/packages/angular/src/generators/library/lib/normalize-options.ts @@ -34,7 +34,7 @@ export function normalizeOptions( const name = names(options.name).fileName; const projectDirectory = options.directory - ? `${names(options.directory).fileName}/${name}` + ? `${names(options.directory).fileName}/${name}`.replace(/\/+/g, '/') : name; const { libsDir, npmScope, standaloneAsDefault } = getWorkspaceLayout(host); diff --git a/packages/angular/src/generators/library/library.spec.ts b/packages/angular/src/generators/library/library.spec.ts index 2e08cd3088d20..e0ef3e38f6837 100644 --- a/packages/angular/src/generators/library/library.spec.ts +++ b/packages/angular/src/generators/library/library.spec.ts @@ -46,6 +46,13 @@ describe('lib', () => { tree = createTreeWithEmptyWorkspace(2); }); + it('should run the library generator without erroring if the directory has a trailing slash', async () => { + // ACT & ASSERT + await expect( + runLibraryGeneratorWithOpts({ directory: 'mylib/shared/' }) + ).resolves.not.toThrow(); + }); + it('should default to standalone project for first project', async () => { await runLibraryGeneratorWithOpts(); const workspaceJsonEntry = readJson(tree, 'workspace.json').projects[