Skip to content

Commit 6aea2dd

Browse files
committed
feat(@schematics/angular): Add the option to allow preventing the creation of an application
Fixes #12216
1 parent b19a348 commit 6aea2dd

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

packages/schematics/angular/ng-new/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
empty,
1616
mergeWith,
1717
move,
18+
noop,
1819
schematic,
1920
} from '@angular-devkit/schematics';
2021
import {
@@ -60,7 +61,7 @@ export default function (options: NgNewOptions): Rule {
6061
mergeWith(
6162
apply(empty(), [
6263
schematic('workspace', workspaceOptions),
63-
schematic('application', applicationOptions),
64+
options.createApplication ? schematic('application', applicationOptions) : noop,
6465
move(options.directory || options.name),
6566
]),
6667
),

packages/schematics/angular/ng-new/index_spec.ts

+9
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,13 @@ describe('Ng New Schematic', () => {
5656
const moduleContent = tree.readContent('/foo/src/app/app.module.ts');
5757
expect(moduleContent).toMatch(/declarations:\s*\[\s*AppComponent\s*\]/m);
5858
});
59+
60+
it('createApplication=false should create an empty workspace', () => {
61+
const options = { ...defaultOptions, createApplication: false };
62+
63+
const tree = schematicRunner.runSchematic('ng-new', options);
64+
const files = tree.files;
65+
expect(files.indexOf('/bar/angular.json')).toBeGreaterThanOrEqual(0);
66+
expect(files.indexOf('/bar/src')).toBe(-1);
67+
});
5968
});

packages/schematics/angular/ng-new/schema.json

+5
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,11 @@
131131
"type": "boolean",
132132
"default": false,
133133
"alias": "S"
134+
},
135+
"createApplication": {
136+
"description": "Flag to toggle creation of an application in the new workspace.",
137+
"type": "boolean",
138+
"default": true
134139
}
135140
},
136141
"required": [

0 commit comments

Comments
 (0)