@neurodevs/ndx-cli 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/tasks.json +1 -1
- package/build/__tests__/modules/CliCommandRunner.test.d.ts +8 -8
- package/build/__tests__/modules/CliCommandRunner.test.js +22 -22
- package/build/__tests__/modules/CliCommandRunner.test.js.map +1 -1
- package/build/modules/CliCommandRunner.d.ts +5 -3
- package/build/modules/CliCommandRunner.js +14 -8
- package/build/modules/CliCommandRunner.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/modules/CliCommandRunner.test.ts +18 -18
- package/src/modules/CliCommandRunner.ts +16 -8
package/.vscode/tasks.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import AbstractSpruceTest from '@sprucelabs/test-utils';
|
|
2
2
|
export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
3
|
-
private static readonly
|
|
3
|
+
private static readonly createImplCommand;
|
|
4
4
|
private static readonly createPackageCommand;
|
|
5
5
|
protected static beforeEach(): Promise<void>;
|
|
6
6
|
protected static throwsIfCommandIsNotSupported(): Promise<void>;
|
|
7
|
-
protected static
|
|
8
|
-
protected static
|
|
9
|
-
protected static
|
|
10
|
-
protected static
|
|
11
|
-
protected static
|
|
7
|
+
protected static createImplCreatesInstance(): Promise<void>;
|
|
8
|
+
protected static createImplPromptsUserForInput(): Promise<void>;
|
|
9
|
+
protected static createImplDoesNotContinueIfPromptsIsInterrupted(): Promise<void>;
|
|
10
|
+
protected static createImplCreatesNodeAutomodule(): Promise<void>;
|
|
11
|
+
protected static createImplRunsNodeAutomodule(): Promise<void>;
|
|
12
12
|
protected static createPackageCreatesInstance(): Promise<void>;
|
|
13
13
|
protected static createPackagePromptsUserForInput(): Promise<void>;
|
|
14
14
|
protected static createPackageDoesNotContinueIfPromptsIsInterrupted(): Promise<void>;
|
|
15
15
|
protected static createPackageCreatesNpmAutopackage(): Promise<void>;
|
|
16
16
|
private static keywordsWithDefaults;
|
|
17
17
|
protected static createPackageRunsNpmAutopackage(): Promise<void>;
|
|
18
|
-
private static
|
|
18
|
+
private static runCreateImpl;
|
|
19
19
|
private static runCreatePackage;
|
|
20
20
|
private static expandHomeDir;
|
|
21
21
|
private static splitOnCommaOrWhitespace;
|
|
22
22
|
private static setFakeAutomodule;
|
|
23
23
|
private static setFakeAutopackage;
|
|
24
24
|
private static setFakePrompts;
|
|
25
|
-
private static
|
|
25
|
+
private static setFakeResponsesForCreateImpl;
|
|
26
26
|
private static setFakePromptResponsesForCreatePackage;
|
|
27
27
|
private static readonly interfaceName;
|
|
28
28
|
private static readonly implName;
|
|
@@ -62,12 +62,12 @@ class CliCommandRunnerTest extends test_utils_1.default {
|
|
|
62
62
|
const err = await test_utils_1.assert.doesThrowAsync(async () => await instance.run());
|
|
63
63
|
test_utils_1.assert.isEqual(err.message, `The command "${invalidArg}" is not supported!`, 'Did not receive the expected error!');
|
|
64
64
|
}
|
|
65
|
-
static async
|
|
66
|
-
const instance = await this.
|
|
67
|
-
test_utils_1.assert.isTruthy(instance, `Failed to create instance for ${this.
|
|
65
|
+
static async createImplCreatesInstance() {
|
|
66
|
+
const instance = await this.runCreateImpl();
|
|
67
|
+
test_utils_1.assert.isTruthy(instance, `Failed to create instance for ${this.createImplCommand}!`);
|
|
68
68
|
}
|
|
69
|
-
static async
|
|
70
|
-
await this.
|
|
69
|
+
static async createImplPromptsUserForInput() {
|
|
70
|
+
await this.runCreateImpl();
|
|
71
71
|
test_utils_1.assert.isEqualDeep(fakePrompts_1.callsToFakePrompts[0], [
|
|
72
72
|
{
|
|
73
73
|
type: 'text',
|
|
@@ -81,15 +81,15 @@ class CliCommandRunnerTest extends test_utils_1.default {
|
|
|
81
81
|
},
|
|
82
82
|
], 'Did not prompt user for expected input!');
|
|
83
83
|
}
|
|
84
|
-
static async
|
|
85
|
-
await this.
|
|
84
|
+
static async createImplDoesNotContinueIfPromptsIsInterrupted() {
|
|
85
|
+
await this.runCreateImpl({
|
|
86
86
|
interfaceName: '',
|
|
87
87
|
implName: '',
|
|
88
88
|
});
|
|
89
89
|
test_utils_1.assert.isEqual(meta_node_1.FakeAutomodule.numCallsToRun, 0, 'Should not have called run on NodeAutomodule!');
|
|
90
90
|
}
|
|
91
|
-
static async
|
|
92
|
-
await this.
|
|
91
|
+
static async createImplCreatesNodeAutomodule() {
|
|
92
|
+
await this.runCreateImpl();
|
|
93
93
|
test_utils_1.assert.isEqualDeep(meta_node_1.FakeAutomodule.callsToConstructor[0], {
|
|
94
94
|
testSaveDir: 'src/__tests__/modules',
|
|
95
95
|
moduleSaveDir: 'src/modules',
|
|
@@ -97,8 +97,8 @@ class CliCommandRunnerTest extends test_utils_1.default {
|
|
|
97
97
|
implName: this.implName,
|
|
98
98
|
}, 'Did not create NodeAutomodule with expected options!');
|
|
99
99
|
}
|
|
100
|
-
static async
|
|
101
|
-
await this.
|
|
100
|
+
static async createImplRunsNodeAutomodule() {
|
|
101
|
+
await this.runCreateImpl();
|
|
102
102
|
test_utils_1.assert.isEqual(meta_node_1.FakeAutomodule.numCallsToRun, 1, 'Did not call run on NodeAutomodule!');
|
|
103
103
|
}
|
|
104
104
|
static async createPackageCreatesInstance() {
|
|
@@ -155,9 +155,9 @@ class CliCommandRunnerTest extends test_utils_1.default {
|
|
|
155
155
|
await this.runCreatePackage();
|
|
156
156
|
test_utils_1.assert.isEqual(meta_node_1.FakeAutopackage.numCallsToRun, 1, 'Did not call run on Autopackage!');
|
|
157
157
|
}
|
|
158
|
-
static async
|
|
159
|
-
this.
|
|
160
|
-
const instance = this.CliCommandRunner([this.
|
|
158
|
+
static async runCreateImpl(responses) {
|
|
159
|
+
this.setFakeResponsesForCreateImpl(responses);
|
|
160
|
+
const instance = this.CliCommandRunner([this.createImplCommand]);
|
|
161
161
|
await instance.run();
|
|
162
162
|
return instance;
|
|
163
163
|
}
|
|
@@ -190,7 +190,7 @@ class CliCommandRunnerTest extends test_utils_1.default {
|
|
|
190
190
|
CliCommandRunner_1.default.prompts = fakePrompts_1.fakePrompts;
|
|
191
191
|
(0, fakePrompts_1.resetCallsToFakePrompts)();
|
|
192
192
|
}
|
|
193
|
-
static
|
|
193
|
+
static setFakeResponsesForCreateImpl(responses) {
|
|
194
194
|
(0, fakePrompts_1.setFakeResponses)({
|
|
195
195
|
interfaceName: this.interfaceName,
|
|
196
196
|
implName: this.implName,
|
|
@@ -206,10 +206,10 @@ class CliCommandRunnerTest extends test_utils_1.default {
|
|
|
206
206
|
});
|
|
207
207
|
}
|
|
208
208
|
static CliCommandRunner(args) {
|
|
209
|
-
return CliCommandRunner_1.default.Create(args
|
|
209
|
+
return CliCommandRunner_1.default.Create(args);
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
|
-
CliCommandRunnerTest.
|
|
212
|
+
CliCommandRunnerTest.createImplCommand = 'create.impl';
|
|
213
213
|
CliCommandRunnerTest.createPackageCommand = 'create.package';
|
|
214
214
|
CliCommandRunnerTest.interfaceName = (0, test_utils_1.generateId)();
|
|
215
215
|
CliCommandRunnerTest.implName = (0, test_utils_1.generateId)();
|
|
@@ -227,19 +227,19 @@ __decorate([
|
|
|
227
227
|
], CliCommandRunnerTest, "throwsIfCommandIsNotSupported", null);
|
|
228
228
|
__decorate([
|
|
229
229
|
(0, test_utils_1.test)()
|
|
230
|
-
], CliCommandRunnerTest, "
|
|
230
|
+
], CliCommandRunnerTest, "createImplCreatesInstance", null);
|
|
231
231
|
__decorate([
|
|
232
232
|
(0, test_utils_1.test)()
|
|
233
|
-
], CliCommandRunnerTest, "
|
|
233
|
+
], CliCommandRunnerTest, "createImplPromptsUserForInput", null);
|
|
234
234
|
__decorate([
|
|
235
235
|
(0, test_utils_1.test)()
|
|
236
|
-
], CliCommandRunnerTest, "
|
|
236
|
+
], CliCommandRunnerTest, "createImplDoesNotContinueIfPromptsIsInterrupted", null);
|
|
237
237
|
__decorate([
|
|
238
238
|
(0, test_utils_1.test)()
|
|
239
|
-
], CliCommandRunnerTest, "
|
|
239
|
+
], CliCommandRunnerTest, "createImplCreatesNodeAutomodule", null);
|
|
240
240
|
__decorate([
|
|
241
241
|
(0, test_utils_1.test)()
|
|
242
|
-
], CliCommandRunnerTest, "
|
|
242
|
+
], CliCommandRunnerTest, "createImplRunsNodeAutomodule", null);
|
|
243
243
|
__decorate([
|
|
244
244
|
(0, test_utils_1.test)()
|
|
245
245
|
], CliCommandRunnerTest, "createPackageCreatesInstance", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliCommandRunner.test.js","sourceRoot":"","sources":["../../../src/__tests__/modules/CliCommandRunner.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,qEAI+B;AAC/B,oDAK6B;AAE7B,sFAA6D;AAC7D,uEAK8C;AAE9C,MAAqB,oBAAqB,SAAQ,oBAAkB;IAItD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,cAAc,EAAE,CAAA;QAErB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAA;IAC/C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QAChD,MAAM,UAAU,GAAG,IAAA,uBAAU,GAAE,CAAA;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAEpD,MAAM,GAAG,GAAG,MAAM,mBAAM,CAAC,cAAc,CACnC,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,CACnC,CAAA;QAED,mBAAM,CAAC,OAAO,CACV,GAAG,CAAC,OAAO,EACX,gBAAgB,UAAU,qBAAqB,EAC/C,qCAAqC,CACxC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"CliCommandRunner.test.js","sourceRoot":"","sources":["../../../src/__tests__/modules/CliCommandRunner.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
3
3
|
static Class?: CommandRunnerConstructor;
|
|
4
4
|
static prompts: typeof prompts;
|
|
5
5
|
private args;
|
|
6
|
-
private readonly
|
|
6
|
+
private readonly createImplCommand;
|
|
7
7
|
private interfaceName;
|
|
8
8
|
private implName;
|
|
9
9
|
private readonly createPackageCommand;
|
|
@@ -18,11 +18,13 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
18
18
|
private get commandIsSupported();
|
|
19
19
|
private get command();
|
|
20
20
|
private runCommand;
|
|
21
|
-
private
|
|
21
|
+
private get isCreateImplCommand();
|
|
22
|
+
private get isCreatePackageCommand();
|
|
23
|
+
private createImpl;
|
|
22
24
|
private promptForAutomodule;
|
|
23
25
|
private readonly interfaceNameMessage;
|
|
24
26
|
private readonly implNameMessage;
|
|
25
|
-
private get
|
|
27
|
+
private get userInputExistsForCreateImpl();
|
|
26
28
|
private createPackage;
|
|
27
29
|
private promptForAutopackage;
|
|
28
30
|
private readonly packageNameMessage;
|
|
@@ -9,10 +9,10 @@ const meta_node_1 = require("@neurodevs/meta-node");
|
|
|
9
9
|
const prompts_1 = __importDefault(require("prompts"));
|
|
10
10
|
class CliCommandRunner {
|
|
11
11
|
constructor(args) {
|
|
12
|
-
this.
|
|
12
|
+
this.createImplCommand = 'create.impl';
|
|
13
13
|
this.createPackageCommand = 'create.package';
|
|
14
14
|
this.supportedCommands = [
|
|
15
|
-
this.
|
|
15
|
+
this.createImplCommand,
|
|
16
16
|
this.createPackageCommand,
|
|
17
17
|
];
|
|
18
18
|
this.interfaceNameMessage = 'What should the interface be called? Example: YourInterface';
|
|
@@ -41,18 +41,24 @@ class CliCommandRunner {
|
|
|
41
41
|
return this.args[0];
|
|
42
42
|
}
|
|
43
43
|
async runCommand() {
|
|
44
|
-
if (this.
|
|
45
|
-
await this.
|
|
44
|
+
if (this.isCreateImplCommand) {
|
|
45
|
+
await this.createImpl();
|
|
46
46
|
}
|
|
47
|
-
else if (this.
|
|
47
|
+
else if (this.isCreatePackageCommand) {
|
|
48
48
|
await this.createPackage();
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
get isCreateImplCommand() {
|
|
52
|
+
return this.command === this.createImplCommand;
|
|
53
|
+
}
|
|
54
|
+
get isCreatePackageCommand() {
|
|
55
|
+
return this.command === this.createPackageCommand;
|
|
56
|
+
}
|
|
57
|
+
async createImpl() {
|
|
52
58
|
const { interfaceName, implName } = await this.promptForAutomodule();
|
|
53
59
|
this.interfaceName = interfaceName;
|
|
54
60
|
this.implName = implName;
|
|
55
|
-
if (!this.
|
|
61
|
+
if (!this.userInputExistsForCreateImpl) {
|
|
56
62
|
return;
|
|
57
63
|
}
|
|
58
64
|
const automodule = this.NodeAutomodule();
|
|
@@ -72,7 +78,7 @@ class CliCommandRunner {
|
|
|
72
78
|
},
|
|
73
79
|
]);
|
|
74
80
|
}
|
|
75
|
-
get
|
|
81
|
+
get userInputExistsForCreateImpl() {
|
|
76
82
|
return this.interfaceName && this.implName;
|
|
77
83
|
}
|
|
78
84
|
async createPackage() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliCommandRunner.js","sourceRoot":"","sources":["../../src/modules/CliCommandRunner.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,oDAAqE;AACrE,sDAA6B;AAE7B,MAAqB,gBAAgB;IAoBjC,YAAsB,IAAc;QAdnB,
|
|
1
|
+
{"version":3,"file":"CliCommandRunner.js","sourceRoot":"","sources":["../../src/modules/CliCommandRunner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from '../../testDoubles/prompts/fakePrompts'
|
|
22
22
|
|
|
23
23
|
export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
24
|
-
private static readonly
|
|
24
|
+
private static readonly createImplCommand = 'create.impl'
|
|
25
25
|
private static readonly createPackageCommand = 'create.package'
|
|
26
26
|
|
|
27
27
|
protected static async beforeEach() {
|
|
@@ -51,18 +51,18 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
@test()
|
|
54
|
-
protected static async
|
|
55
|
-
const instance = await this.
|
|
54
|
+
protected static async createImplCreatesInstance() {
|
|
55
|
+
const instance = await this.runCreateImpl()
|
|
56
56
|
|
|
57
57
|
assert.isTruthy(
|
|
58
58
|
instance,
|
|
59
|
-
`Failed to create instance for ${this.
|
|
59
|
+
`Failed to create instance for ${this.createImplCommand}!`
|
|
60
60
|
)
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
@test()
|
|
64
|
-
protected static async
|
|
65
|
-
await this.
|
|
64
|
+
protected static async createImplPromptsUserForInput() {
|
|
65
|
+
await this.runCreateImpl()
|
|
66
66
|
|
|
67
67
|
assert.isEqualDeep(
|
|
68
68
|
callsToFakePrompts[0],
|
|
@@ -83,8 +83,8 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
@test()
|
|
86
|
-
protected static async
|
|
87
|
-
await this.
|
|
86
|
+
protected static async createImplDoesNotContinueIfPromptsIsInterrupted() {
|
|
87
|
+
await this.runCreateImpl({
|
|
88
88
|
interfaceName: '',
|
|
89
89
|
implName: '',
|
|
90
90
|
})
|
|
@@ -97,8 +97,8 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
@test()
|
|
100
|
-
protected static async
|
|
101
|
-
await this.
|
|
100
|
+
protected static async createImplCreatesNodeAutomodule() {
|
|
101
|
+
await this.runCreateImpl()
|
|
102
102
|
|
|
103
103
|
assert.isEqualDeep(
|
|
104
104
|
FakeAutomodule.callsToConstructor[0],
|
|
@@ -113,8 +113,8 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
@test()
|
|
116
|
-
protected static async
|
|
117
|
-
await this.
|
|
116
|
+
protected static async createImplRunsNodeAutomodule() {
|
|
117
|
+
await this.runCreateImpl()
|
|
118
118
|
|
|
119
119
|
assert.isEqual(
|
|
120
120
|
FakeAutomodule.numCallsToRun,
|
|
@@ -215,10 +215,10 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
215
215
|
)
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
private static async
|
|
219
|
-
this.
|
|
218
|
+
private static async runCreateImpl(responses?: Record<string, string>) {
|
|
219
|
+
this.setFakeResponsesForCreateImpl(responses)
|
|
220
220
|
|
|
221
|
-
const instance = this.CliCommandRunner([this.
|
|
221
|
+
const instance = this.CliCommandRunner([this.createImplCommand])
|
|
222
222
|
await instance.run()
|
|
223
223
|
|
|
224
224
|
return instance
|
|
@@ -261,7 +261,7 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
261
261
|
resetCallsToFakePrompts()
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
private static
|
|
264
|
+
private static setFakeResponsesForCreateImpl(
|
|
265
265
|
responses?: Record<string, string>
|
|
266
266
|
) {
|
|
267
267
|
setFakeResponses({
|
|
@@ -301,7 +301,7 @@ export default class CliCommandRunnerTest extends AbstractSpruceTest {
|
|
|
301
301
|
private static readonly packageDescriptionMessage =
|
|
302
302
|
'What should the package description be? Example: A useful package.'
|
|
303
303
|
|
|
304
|
-
private static CliCommandRunner(args
|
|
305
|
-
return CliCommandRunner.Create(args
|
|
304
|
+
private static CliCommandRunner(args: string[]) {
|
|
305
|
+
return CliCommandRunner.Create(args)
|
|
306
306
|
}
|
|
307
307
|
}
|
|
@@ -9,7 +9,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
9
9
|
|
|
10
10
|
private args: string[]
|
|
11
11
|
|
|
12
|
-
private readonly
|
|
12
|
+
private readonly createImplCommand = 'create.impl'
|
|
13
13
|
private interfaceName!: string
|
|
14
14
|
private implName!: string
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
19
19
|
private keywords!: string[]
|
|
20
20
|
|
|
21
21
|
private readonly supportedCommands = [
|
|
22
|
-
this.
|
|
22
|
+
this.createImplCommand,
|
|
23
23
|
this.createPackageCommand,
|
|
24
24
|
]
|
|
25
25
|
|
|
@@ -51,20 +51,28 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
private async runCommand() {
|
|
54
|
-
if (this.
|
|
55
|
-
await this.
|
|
56
|
-
} else if (this.
|
|
54
|
+
if (this.isCreateImplCommand) {
|
|
55
|
+
await this.createImpl()
|
|
56
|
+
} else if (this.isCreatePackageCommand) {
|
|
57
57
|
await this.createPackage()
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
private
|
|
61
|
+
private get isCreateImplCommand() {
|
|
62
|
+
return this.command === this.createImplCommand
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
private get isCreatePackageCommand() {
|
|
66
|
+
return this.command === this.createPackageCommand
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private async createImpl() {
|
|
62
70
|
const { interfaceName, implName } = await this.promptForAutomodule()
|
|
63
71
|
|
|
64
72
|
this.interfaceName = interfaceName
|
|
65
73
|
this.implName = implName
|
|
66
74
|
|
|
67
|
-
if (!this.
|
|
75
|
+
if (!this.userInputExistsForCreateImpl) {
|
|
68
76
|
return
|
|
69
77
|
}
|
|
70
78
|
|
|
@@ -93,7 +101,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
93
101
|
private readonly implNameMessage =
|
|
94
102
|
'What should the implementation class be called? Example: YourInterfaceImpl'
|
|
95
103
|
|
|
96
|
-
private get
|
|
104
|
+
private get userInputExistsForCreateImpl() {
|
|
97
105
|
return this.interfaceName && this.implName
|
|
98
106
|
}
|
|
99
107
|
|