Skip to content

Commit 132fe02

Browse files
authored
Merge pull request #38 from codeBelt/bugfix_stringReplacers_optional
Bugfix make stringReplacers optional
2 parents 83c07d3 + 8a01b4b commit 132fe02

File tree

4 files changed

+653
-541
lines changed

4 files changed

+653
-541
lines changed

package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "generate-template-files",
3-
"version": "2.2.3",
3+
"version": "2.3.0",
44
"description": "A generator to create custom template files for your applications",
55
"keywords": [
66
"generate",
@@ -51,7 +51,7 @@
5151
"dist/"
5252
],
5353
"dependencies": {
54-
"enquirer": "2.3.4",
54+
"enquirer": "2.3.5",
5555
"lodash.get": "4.4.2",
5656
"path-exists": "4.0.0",
5757
"recursive-copy": "2.0.10",
@@ -62,30 +62,30 @@
6262
"devDependencies": {
6363
"@babel/core": "7.9.0",
6464
"@babel/plugin-proposal-class-properties": "7.8.3",
65-
"@babel/plugin-proposal-object-rest-spread": "7.9.0",
65+
"@babel/plugin-proposal-object-rest-spread": "7.9.5",
6666
"@babel/plugin-transform-runtime": "7.9.0",
67-
"@babel/preset-env": "7.9.0",
67+
"@babel/preset-env": "7.9.5",
6868
"@babel/preset-typescript": "7.9.0",
6969
"@babel/runtime": "7.9.2",
70-
"@types/jest": "25.1.4",
70+
"@types/jest": "25.2.1",
7171
"@types/lodash.get": "4.4.6",
7272
"@types/path-exists": "4.0.2",
7373
"@types/replace-string": "3.0.0",
7474
"@types/through2": "2.0.34",
75-
"husky": "4.2.3",
76-
"jest": "25.2.3",
77-
"prettier": "2.0.2",
75+
"husky": "4.2.5",
76+
"jest": "25.4.0",
77+
"prettier": "2.0.4",
7878
"pretty-quick": "2.0.1",
7979
"rimraf": "3.0.2",
80-
"rollup": "2.2.0",
80+
"rollup": "2.6.1",
8181
"rollup-plugin-babel": "4.4.0",
8282
"rollup-plugin-commonjs": "10.1.0",
8383
"rollup-plugin-node-resolve": "5.2.0",
84-
"ts-jest": "25.2.1",
84+
"ts-jest": "25.4.0",
8585
"tslib": "1.11.1",
86-
"tslint": "6.1.0",
86+
"tslint": "6.1.1",
8787
"tslint-config-prettier": "1.18.0",
88-
"typedoc": "0.17.3",
88+
"typedoc": "0.17.4",
8989
"typescript": "3.8.3"
9090
},
9191
"author": {

src/GenerateTemplateFiles.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ export default class GenerateTemplateFiles {
8383
* New question asking what should text should be used to replace the template text.
8484
*/
8585
private async _getReplacerSlotValues(selectedConfigItem: IConfigItem): Promise<IReplacer[]> {
86-
const replacerQuestions: any[] = selectedConfigItem.stringReplacers.map((item: string | IReplacerSlotQuestion) => {
86+
const stringReplacers: (string | IReplacerSlotQuestion)[] = selectedConfigItem.stringReplacers ?? [];
87+
const replacerQuestions: any[] = stringReplacers.map((item: string | IReplacerSlotQuestion) => {
8788
return {
8889
type: 'input',
8990
name: StringUtility.isString(item) ? item : item.slot,
@@ -98,8 +99,6 @@ export default class GenerateTemplateFiles {
9899

99100
const answer: {[replacer: string]: string} = await enquirer.prompt(replacerQuestions);
100101

101-
CheckUtility.check(Object.keys(answer).length > 0, '"stringReplacers" needs at least one item.');
102-
103102
const replacers: IReplacer[] = Object.entries(answer).map(
104103
([key, value]: [string, string]): IReplacer => {
105104
return {
@@ -110,6 +109,10 @@ export default class GenerateTemplateFiles {
110109
);
111110
const dynamicReplacers: IReplacer[] = selectedConfigItem.dynamicReplacers || [];
112111

112+
const hasStringOrDynamicReplacers: boolean = stringReplacers.length > 0 || dynamicReplacers.length > 0;
113+
114+
CheckUtility.check(hasStringOrDynamicReplacers, '"stringReplacers" or "dynamicReplacers" needs at least one item.');
115+
113116
return [...replacers, ...dynamicReplacers];
114117
}
115118

src/models/IConfigItem.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export default interface IConfigItem {
5454
* stringReplacers: ['__store__', '__model__'],
5555
* ```
5656
*/
57-
stringReplacers: (string | IReplacerSlotQuestion)[];
57+
stringReplacers?: (string | IReplacerSlotQuestion)[];
5858
/**
5959
* ```
6060
* dynamicReplacers: [{slot:'__description__', slotValue: config.description}],

0 commit comments

Comments
 (0)