Skip to content

Commit c2e987c

Browse files
committed
feat(liferay-cli): add support to report if a project type is portlet
There are some things that should only be generated for portlet project types like portlet properties, sample code, CSS styles, etc.
1 parent 0511e69 commit c2e987c

File tree

5 files changed

+62
-28
lines changed

5 files changed

+62
-28
lines changed

projects/js-toolkit/packages/liferay-cli/src/new/facet-angular/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@ import {
1515
import dependencies from '../../dependencies.json';
1616
import ensureOutputFile from '../../util/ensureOutputFile';
1717

18-
import type {Facet, Options} from '../index';
18+
import type {Options} from '../index';
19+
import type {LiferayTargetFacet} from '../target-liferay';
1920

2021
const {
2122
PkgJson: {addDependencies},
2223
Text: {appendLines},
2324
} = TRANSFORM_OPERATIONS;
2425
const {info, print} = format;
2526

26-
const facet: Facet = {
27+
const facet: LiferayTargetFacet = {
28+
isPortlet: true,
29+
2730
async prompt(useDefaults: boolean, options: Options): Promise<Options> {
2831
return options;
2932
},

projects/js-toolkit/packages/liferay-cli/src/new/facet-plain-js/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,17 @@ import {
1313

1414
import ensureOutputFile from '../../util/ensureOutputFile';
1515

16-
import type {Facet, Options} from '../index';
16+
import type {Options} from '../index';
17+
import type {LiferayTargetFacet} from '../target-liferay';
1718

1819
const {
1920
Text: {appendLines},
2021
} = TRANSFORM_OPERATIONS;
2122
const {info, print} = format;
2223

23-
const facet: Facet = {
24+
const facet: LiferayTargetFacet = {
25+
isPortlet: true,
26+
2427
async prompt(useDefaults: boolean, options: Options): Promise<Options> {
2528
return options;
2629
},

projects/js-toolkit/packages/liferay-cli/src/new/facet-react/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@ import {
1515
import dependencies from '../../dependencies.json';
1616
import ensureOutputFile from '../../util/ensureOutputFile';
1717

18-
import type {Facet, Options} from '../index';
18+
import type {Options} from '../index';
19+
import type {LiferayTargetFacet} from '../target-liferay';
1920

2021
const {
2122
PkgJson: {addDependencies},
2223
Text: {appendLines},
2324
} = TRANSFORM_OPERATIONS;
2425
const {info, print} = format;
2526

26-
const facet: Facet = {
27+
const facet: LiferayTargetFacet = {
28+
isPortlet: true,
29+
2730
async prompt(useDefaults: boolean, options: Options): Promise<Options> {
2831
return options;
2932
},

projects/js-toolkit/packages/liferay-cli/src/new/facet-vuejs/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@ import {
1515
import dependencies from '../../dependencies.json';
1616
import ensureOutputFile from '../../util/ensureOutputFile';
1717

18-
import type {Facet, Options} from '../index';
18+
import type {Options} from '../index';
19+
import type {LiferayTargetFacet} from '../target-liferay';
1920

2021
const {
2122
PkgJson: {addDependencies},
2223
Text: {appendLines},
2324
} = TRANSFORM_OPERATIONS;
2425
const {info, print} = format;
2526

26-
const facet: Facet = {
27+
const facet: LiferayTargetFacet = {
28+
isPortlet: true,
29+
2730
async prompt(useDefaults: boolean, options: Options): Promise<Options> {
2831
return options;
2932
},

projects/js-toolkit/packages/liferay-cli/src/new/target-liferay/index.ts

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,18 @@ import facetSampleConfiguration from '../facet-sample-configuration';
2424
import facetSampleStyles from '../facet-sample-styles';
2525
import facetVuejs from '../facet-vuejs';
2626

27-
import type {Options, Target} from '..';
27+
import type {Facet, Options, Target} from '..';
28+
29+
export interface LiferayTargetFacet extends Facet {
30+
isPortlet: boolean;
31+
}
2832

2933
const {
3034
PkgJson: {addDependencies},
3135
} = TRANSFORM_OPERATIONS;
3236
const {info, print} = format;
3337

34-
const frameworkFacets = {
38+
const projectTypeFacets: {[name: string]: LiferayTargetFacet} = {
3539
'Angular': facetAngular,
3640
'Plain JavaScript': facetPlainJs,
3741
'React': facetReact,
@@ -55,28 +59,40 @@ const target: Target = {
5559
type: 'list',
5660
},
5761
{
58-
choices: Object.keys(frameworkFacets),
62+
choices: Object.keys(projectTypeFacets),
5963
default: 'React',
60-
defaultDescription: 'Using framework: {React}',
61-
message: 'Which will be your application framework?',
62-
name: 'framework',
64+
defaultDescription: 'Using project type: {React}',
65+
message: 'Which will be your project type?',
66+
name: 'projectType',
6367
type: 'list',
6468
},
6569
]);
6670

67-
options = await facetLocalization.prompt(true, options);
68-
options = await facetConfiguration.prompt(true, options);
69-
options = await facetPortlet.prompt(useDefaults, options);
71+
const projectTypeFacet =
72+
projectTypeFacets[options.projectType as string];
73+
74+
options = await facetLocalization.prompt(
75+
useDefaults || projectTypeFacet.isPortlet,
76+
options
77+
);
78+
options = await facetConfiguration.prompt(
79+
useDefaults || projectTypeFacet.isPortlet,
80+
options
81+
);
82+
83+
if (projectTypeFacet.isPortlet) {
84+
options = await facetPortlet.prompt(useDefaults, options);
85+
}
7086

71-
const frameworkFacet = frameworkFacets[options.framework as string];
87+
options = await facetBuildable.prompt(true, options);
88+
options = await projectTypeFacet.prompt(useDefaults, options);
7289

73-
if (frameworkFacet) {
74-
options = await facetBuildable.prompt(true, options);
75-
options = await frameworkFacet.prompt(useDefaults, options);
90+
if (projectTypeFacet.isPortlet) {
7691
options = await facetSampleStyles.prompt(true, options);
77-
options = await facetSampleConfiguration.prompt(true, options);
7892
}
7993

94+
options = await facetSampleConfiguration.prompt(true, options);
95+
8096
return options;
8197
},
8298

@@ -99,18 +115,24 @@ const target: Target = {
99115
})
100116
);
101117

118+
const projectTypeFacet =
119+
projectTypeFacets[options.projectType as string];
120+
102121
await facetLocalization.render(options);
103122
await facetConfiguration.render(options);
104-
await facetPortlet.render(options);
105123

106-
const frameworkFacet = frameworkFacets[options.framework as string];
124+
if (projectTypeFacet.isPortlet) {
125+
await facetPortlet.render(options);
126+
}
107127

108-
if (frameworkFacet) {
109-
await facetBuildable.render(options);
110-
await frameworkFacet.render(options);
128+
await facetBuildable.render(options);
129+
await projectTypeFacet.render(options);
130+
131+
if (projectTypeFacet.isPortlet) {
111132
await facetSampleStyles.render(options);
112-
await facetSampleConfiguration.render(options);
113133
}
134+
135+
await facetSampleConfiguration.render(options);
114136
},
115137
};
116138

0 commit comments

Comments
 (0)