From fbf8d9c99fd69c4a992fc4b7811394d68d3425b0 Mon Sep 17 00:00:00 2001 From: Ashley Hunter Date: Thu, 27 Apr 2023 16:28:34 +0100 Subject: [PATCH] feat(js): adding simpleName option to library generator (#16025) --- .../packages/js/generators/library.json | 5 +++++ .../js/src/generators/library/library.spec.ts | 17 ++++++++++++++++- packages/js/src/generators/library/library.ts | 2 +- packages/js/src/generators/library/schema.json | 5 +++++ packages/js/src/utils/schema.d.ts | 2 +- 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/docs/generated/packages/js/generators/library.json b/docs/generated/packages/js/generators/library.json index 78223d2c7a..81ce0f558f 100644 --- a/docs/generated/packages/js/generators/library.json +++ b/docs/generated/packages/js/generators/library.json @@ -127,6 +127,11 @@ "type": "boolean", "description": "Generate a library with a minimal setup. No README.md generated.", "default": false + }, + "simpleName": { + "description": "Don't include the directory in the generated file name.", + "type": "boolean", + "default": false } }, "required": ["name"], diff --git a/packages/js/src/generators/library/library.spec.ts b/packages/js/src/generators/library/library.spec.ts index 292ed60fce..965f63e675 100644 --- a/packages/js/src/generators/library/library.spec.ts +++ b/packages/js/src/generators/library/library.spec.ts @@ -183,7 +183,6 @@ describe('lib', () => { name: 'myLib2', directory: 'myDir', tags: 'one,two', - simpleModuleName: true, }); projects = Object.fromEntries(getProjects(tree)); expect(projects).toMatchObject({ @@ -1147,4 +1146,20 @@ describe('lib', () => { expect(project.targets.build.options.assets).toEqual([]); }); }); + + describe('--simpleName', () => { + it('should generate a simple name', async () => { + await libraryGenerator(tree, { + ...defaultOptions, + name: 'myLib', + simpleName: true, + directory: 'web', + }); + + expect(tree.read('libs/web/my-lib/src/index.ts', 'utf-8')).toContain( + `export * from './lib/my-lib';` + ); + expect(tree.exists('libs/web/my-lib/src/lib/my-lib.ts')).toBeTruthy(); + }); + }); }); diff --git a/packages/js/src/generators/library/library.ts b/packages/js/src/generators/library/library.ts index be9f1381a0..00d304e087 100644 --- a/packages/js/src/generators/library/library.ts +++ b/packages/js/src/generators/library/library.ts @@ -487,7 +487,7 @@ function normalizeOptions( ? name : projectDirectory.replace(new RegExp('/', 'g'), '-'); const fileName = getCaseAwareFileName({ - fileName: options.simpleModuleName ? name : projectName, + fileName: options.simpleName ? name : projectName, pascalCaseFiles: options.pascalCaseFiles, }); diff --git a/packages/js/src/generators/library/schema.json b/packages/js/src/generators/library/schema.json index b0f26af936..f5d8a71ead 100644 --- a/packages/js/src/generators/library/schema.json +++ b/packages/js/src/generators/library/schema.json @@ -127,6 +127,11 @@ "type": "boolean", "description": "Generate a library with a minimal setup. No README.md generated.", "default": false + }, + "simpleName": { + "description": "Don't include the directory in the generated file name.", + "type": "boolean", + "default": false } }, "required": ["name"], diff --git a/packages/js/src/utils/schema.d.ts b/packages/js/src/utils/schema.d.ts index ddfbfb3320..c4e2b2abeb 100644 --- a/packages/js/src/utils/schema.d.ts +++ b/packages/js/src/utils/schema.d.ts @@ -11,7 +11,6 @@ export interface LibraryGeneratorSchema { directory?: string; skipFormat?: boolean; tags?: string; - simpleModuleName?: boolean; skipTsConfig?: boolean; includeBabelRc?: boolean; unitTestRunner?: 'jest' | 'vitest' | 'none'; @@ -30,6 +29,7 @@ export interface LibraryGeneratorSchema { skipTypeCheck?: boolean; minimal?: boolean; rootProject?: boolean; + simpleName?: boolean; } export interface ExecutorOptions {