Skip to content

Commit 5c42be4

Browse files
committed
feat: add private option for project generartion
1 parent 38b04b2 commit 5c42be4

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

packages/cli/generators/project/templates/package.json.ejs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,17 @@
4848
"repository": {
4949
"type": "git"
5050
},
51+
<% if (project.private) { -%>
52+
"private": true,
53+
<% } -%>
5154
"author": "",
5255
"license": "MIT",
5356
"files": [
5457
"README.md",
5558
"index.js",
5659
"index.d.ts",
57-
"dist"
60+
"dist",
61+
"src"
5862
],
5963
"dependencies": {
6064
"@loopback/context": "<%= project.dependencies['@loopback/context'] -%>",

packages/cli/generators/project/templates/package.plain.json.ejs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,17 @@
4848
"repository": {
4949
"type": "git"
5050
},
51+
<% if (project.private) { -%>
52+
"private": true,
53+
<% } -%>
5154
"author": "",
5255
"license": "MIT",
5356
"files": [
5457
"README.md",
5558
"index.js",
5659
"index.d.ts",
57-
"dist"
60+
"dist",
61+
"src"
5862
],
5963
"dependencies": {
6064
"@loopback/context": "<%= project.dependencies['@loopback/context'] -%>",

packages/cli/lib/project-generator.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ module.exports = class ProjectGenerator extends BaseGenerator {
5555
description: 'Use @loopback/build',
5656
});
5757

58+
this.option('private', {
59+
type: Boolean,
60+
description: 'Mark the project private (excluded from npm publish)',
61+
});
62+
5863
// argument validation
5964
if (this.args.length) {
6065
const isValid = utils.validate(this.args[0]);
@@ -87,7 +92,7 @@ module.exports = class ProjectGenerator extends BaseGenerator {
8792
projectType: this.projectType,
8893
dependencies: utils.getDependencies(),
8994
};
90-
this.projectOptions = ['name', 'description', 'outdir'].concat(
95+
this.projectOptions = ['name', 'description', 'outdir', 'private'].concat(
9196
this.buildOptions
9297
);
9398
this.projectOptions.forEach(n => {

packages/cli/test/project.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,17 @@ module.exports = function(projGenerator, props, projectType) {
7171
assert(helpText.match(/# Project root directory /));
7272
});
7373

74+
it('has private option set up', () => {
75+
let gen = testUtils.testSetUpGen(projGenerator);
76+
let helpText = gen.help();
77+
assert(helpText.match(/--private/));
78+
assert(
79+
helpText.match(
80+
/# Mark the project private \(excluded from npm publish\)/
81+
)
82+
);
83+
});
84+
7485
it('has tslint option set up', () => {
7586
let gen = testUtils.testSetUpGen(projGenerator);
7687
let helpText = gen.help();

0 commit comments

Comments
 (0)