@neurodevs/ndx-cli 0.1.55 → 0.1.57
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/build/__tests__/AbstractCommandRunnerTest.d.ts +66 -0
- package/build/__tests__/AbstractCommandRunnerTest.js +264 -0
- package/build/__tests__/AbstractCommandRunnerTest.js.map +1 -0
- package/build/__tests__/modules/CliCommandRunner.test.d.ts +2 -94
- package/build/__tests__/modules/CliCommandRunner.test.js +2 -675
- package/build/__tests__/modules/CliCommandRunner.test.js.map +1 -1
- package/build/__tests__/modules/commands/BindSnippetCommand.test.d.ts +20 -0
- package/build/__tests__/modules/commands/BindSnippetCommand.test.js +111 -0
- package/build/__tests__/modules/commands/BindSnippetCommand.test.js.map +1 -0
- package/build/__tests__/modules/commands/CreateImplCommand.test.d.ts +13 -0
- package/build/__tests__/modules/commands/CreateImplCommand.test.js +112 -0
- package/build/__tests__/modules/commands/CreateImplCommand.test.js.map +1 -0
- package/build/__tests__/modules/commands/CreatePackageCommand.test.d.ts +10 -0
- package/build/__tests__/modules/commands/CreatePackageCommand.test.js +98 -0
- package/build/__tests__/modules/commands/CreatePackageCommand.test.js.map +1 -0
- package/build/__tests__/modules/commands/CreateUiCommand.test.d.ts +22 -0
- package/build/__tests__/modules/commands/CreateUiCommand.test.js +220 -0
- package/build/__tests__/modules/commands/CreateUiCommand.test.js.map +1 -0
- package/build/__tests__/modules/commands/UpgradePackageCommand.test.d.ts +11 -0
- package/build/__tests__/modules/commands/UpgradePackageCommand.test.js +90 -0
- package/build/__tests__/modules/commands/UpgradePackageCommand.test.js.map +1 -0
- package/build/modules/CliCommandRunner.d.ts +4 -2
- package/build/modules/CliCommandRunner.js +18 -7
- package/build/modules/CliCommandRunner.js.map +1 -1
- package/build/modules/commands/BindSnippetCommand.d.ts +16 -0
- package/build/modules/commands/BindSnippetCommand.js +67 -0
- package/build/modules/commands/BindSnippetCommand.js.map +1 -0
- package/package.json +2 -2
- package/src/__tests__/AbstractCommandRunnerTest.ts +321 -0
- package/src/__tests__/modules/CliCommandRunner.test.ts +3 -910
- package/src/__tests__/modules/commands/BindSnippetCommand.test.ts +129 -0
- package/src/__tests__/modules/commands/CreateImplCommand.test.ts +137 -0
- package/src/__tests__/modules/commands/CreatePackageCommand.test.ts +113 -0
- package/src/__tests__/modules/commands/CreateUiCommand.test.ts +297 -0
- package/src/__tests__/modules/commands/UpgradePackageCommand.test.ts +105 -0
- package/src/modules/CliCommandRunner.ts +19 -7
- package/src/modules/commands/BindSnippetCommand.ts +75 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
13
|
+
const fake_node_core_1 = require("@neurodevs/fake-node-core");
|
|
14
|
+
const meta_node_1 = require("@neurodevs/meta-node");
|
|
15
|
+
const fakePrompts_1 = require("../../../testDoubles/prompts/fakePrompts");
|
|
16
|
+
const AbstractCommandRunnerTest_1 = __importDefault(require("../../AbstractCommandRunnerTest"));
|
|
17
|
+
class CreateUiCommandTest extends AbstractCommandRunnerTest_1.default {
|
|
18
|
+
static async beforeEach() {
|
|
19
|
+
await super.beforeEach();
|
|
20
|
+
}
|
|
21
|
+
static async createsInstance() {
|
|
22
|
+
const instance = await this.run();
|
|
23
|
+
test_utils_1.assert.isTruthy(instance, `Failed to create instance for ${this.createUiCommand}!`);
|
|
24
|
+
}
|
|
25
|
+
static async promptsInstallDependenciesIfMissing() {
|
|
26
|
+
this.setFakeReadToEmptyPackageJson();
|
|
27
|
+
await this.run();
|
|
28
|
+
test_utils_1.assert.isEqualDeep(fakePrompts_1.callsToFakePrompts[0], [
|
|
29
|
+
{
|
|
30
|
+
type: 'confirm',
|
|
31
|
+
name: 'shouldInstall',
|
|
32
|
+
message: 'Some required dependencies are missing! Press Enter to install, or any other key to abort.',
|
|
33
|
+
initial: true,
|
|
34
|
+
},
|
|
35
|
+
], 'Did not prompt user for expected input!');
|
|
36
|
+
}
|
|
37
|
+
static async installsDependenciesIfMissing() {
|
|
38
|
+
this.setFakeReadToEmptyPackageJson();
|
|
39
|
+
await this.run({
|
|
40
|
+
shouldInstall: true,
|
|
41
|
+
});
|
|
42
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToExec[0], this.installDependenciesCommand, 'Did not install dependencies!');
|
|
43
|
+
}
|
|
44
|
+
static async installsDevDependenciesIfMissing() {
|
|
45
|
+
this.setFakeReadToEmptyPackageJson();
|
|
46
|
+
await this.run({
|
|
47
|
+
shouldInstall: true,
|
|
48
|
+
});
|
|
49
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToExec[1], this.installDevDependenciesCommand, 'Did not install dependencies!');
|
|
50
|
+
}
|
|
51
|
+
static async installsIfAnyDepIsMissing() {
|
|
52
|
+
for (const dep of this.allRequiredDependencies) {
|
|
53
|
+
this.setFakeReadToAllInstalledExcept(dep);
|
|
54
|
+
(0, fake_node_core_1.resetCallsToExec)();
|
|
55
|
+
await this.run({
|
|
56
|
+
shouldInstall: true,
|
|
57
|
+
});
|
|
58
|
+
test_utils_1.assert.isEqual(fake_node_core_1.callsToExec[1], this.installDevDependenciesCommand, 'Should not have installed devDependencies!');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static async updatesTsconfigIfDepsWereMissing() {
|
|
62
|
+
this.setFakeReadToEmptyPackageJson();
|
|
63
|
+
this.setFakeReadFileResultToTsconfig();
|
|
64
|
+
await this.run({
|
|
65
|
+
shouldInstall: true,
|
|
66
|
+
});
|
|
67
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToWriteFile[0], {
|
|
68
|
+
file: this.tsconfigPath,
|
|
69
|
+
data: this.updatedTsconfigFile,
|
|
70
|
+
options: undefined,
|
|
71
|
+
}, 'Did not update tsconfig!');
|
|
72
|
+
}
|
|
73
|
+
static async createsSetupTestsIfDepsWereMissing() {
|
|
74
|
+
this.setFakeReadToEmptyPackageJson();
|
|
75
|
+
await this.run({
|
|
76
|
+
shouldInstall: true,
|
|
77
|
+
});
|
|
78
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToWriteFile[1], {
|
|
79
|
+
file: 'src/__tests__/setupTests.ts',
|
|
80
|
+
data: this.setupTestsFile,
|
|
81
|
+
options: undefined,
|
|
82
|
+
}, 'Did not create setupTests script!');
|
|
83
|
+
}
|
|
84
|
+
static async addsSetupTestsToPackageJsonIfDepsWereMissing() {
|
|
85
|
+
this.setFakeReadToEmptyPackageJson();
|
|
86
|
+
await this.run({
|
|
87
|
+
shouldInstall: true,
|
|
88
|
+
});
|
|
89
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToWriteFile[2], {
|
|
90
|
+
file: 'package.json',
|
|
91
|
+
data: JSON.stringify({
|
|
92
|
+
jest: {
|
|
93
|
+
setupFiles: [
|
|
94
|
+
'<rootDir>/build/__tests__/setupTests.js',
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
}, null, 4),
|
|
98
|
+
options: undefined,
|
|
99
|
+
}, 'Did not update package.json!');
|
|
100
|
+
}
|
|
101
|
+
static async recompilesTypescriptIfDepsWereMissing() {
|
|
102
|
+
this.setFakeReadToEmptyPackageJson();
|
|
103
|
+
await this.run({
|
|
104
|
+
shouldInstall: true,
|
|
105
|
+
});
|
|
106
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToExec[2], 'npx tsc', 'Did not recompile typescript!');
|
|
107
|
+
}
|
|
108
|
+
static async doesNotPromptIfDependenciesAreInstalled() {
|
|
109
|
+
this.setFakeReadToAllInstalled();
|
|
110
|
+
await this.run();
|
|
111
|
+
test_utils_1.assert.isEqual(fakePrompts_1.callsToFakePrompts.length, 1, 'Prompted too many times!');
|
|
112
|
+
}
|
|
113
|
+
static async promptsUserForInput() {
|
|
114
|
+
this.setFakeReadToAllInstalled();
|
|
115
|
+
await this.run();
|
|
116
|
+
test_utils_1.assert.isEqualDeep(fakePrompts_1.callsToFakePrompts[0], [
|
|
117
|
+
{
|
|
118
|
+
type: 'text',
|
|
119
|
+
name: 'componentName',
|
|
120
|
+
message: this.componentNameMessage,
|
|
121
|
+
},
|
|
122
|
+
], 'Did not prompt user for expected input!');
|
|
123
|
+
}
|
|
124
|
+
static async doesNotContinueIfPromptsIsInterrupted() {
|
|
125
|
+
await this.run({
|
|
126
|
+
componentName: '',
|
|
127
|
+
});
|
|
128
|
+
test_utils_1.assert.isEqual(meta_node_1.FakeAutomodule.numCallsToRun, 0, 'Should not have called run on UiAutomodule!');
|
|
129
|
+
}
|
|
130
|
+
static async createsTestSaveDirIfNotExists() {
|
|
131
|
+
await this.run();
|
|
132
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToMkdir[0], { path: this.uiTestSaveDir, options: { recursive: true } }, 'Did not create test save dir!');
|
|
133
|
+
}
|
|
134
|
+
static async createsModuleSaveDirIfNotExists() {
|
|
135
|
+
await this.run();
|
|
136
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToMkdir[1], { path: this.uiModuleSaveDir, options: { recursive: true } }, 'Did not create module save dir!');
|
|
137
|
+
}
|
|
138
|
+
static async createsFakeSaveDirIfNotExists() {
|
|
139
|
+
await this.run();
|
|
140
|
+
test_utils_1.assert.isEqualDeep(fake_node_core_1.callsToMkdir[2], {
|
|
141
|
+
path: this.uiFakeSaveDir,
|
|
142
|
+
options: { recursive: true },
|
|
143
|
+
}, 'Did not create fake save dir!');
|
|
144
|
+
}
|
|
145
|
+
static async createsUiAutomodule() {
|
|
146
|
+
await this.run();
|
|
147
|
+
test_utils_1.assert.isEqualDeep(meta_node_1.FakeAutomodule.callsToConstructor[0], {
|
|
148
|
+
testSaveDir: this.uiTestSaveDir,
|
|
149
|
+
moduleSaveDir: this.uiModuleSaveDir,
|
|
150
|
+
fakeSaveDir: this.uiFakeSaveDir,
|
|
151
|
+
componentName: this.componentName,
|
|
152
|
+
}, 'Did not create UiAutomodule with expected options!');
|
|
153
|
+
}
|
|
154
|
+
static async runsUiAutomodule() {
|
|
155
|
+
await this.run();
|
|
156
|
+
test_utils_1.assert.isEqual(meta_node_1.FakeAutomodule.numCallsToRun, 1, 'Did not call run on UiAutomodule!');
|
|
157
|
+
}
|
|
158
|
+
static async run(responses) {
|
|
159
|
+
(0, fakePrompts_1.setFakeResponses)({
|
|
160
|
+
componentName: this.componentName,
|
|
161
|
+
...responses,
|
|
162
|
+
});
|
|
163
|
+
const instance = this.CliCommandRunner([this.createUiCommand]);
|
|
164
|
+
await instance.run();
|
|
165
|
+
return instance;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.default = CreateUiCommandTest;
|
|
169
|
+
__decorate([
|
|
170
|
+
(0, test_utils_1.test)()
|
|
171
|
+
], CreateUiCommandTest, "createsInstance", null);
|
|
172
|
+
__decorate([
|
|
173
|
+
(0, test_utils_1.test)()
|
|
174
|
+
], CreateUiCommandTest, "promptsInstallDependenciesIfMissing", null);
|
|
175
|
+
__decorate([
|
|
176
|
+
(0, test_utils_1.test)()
|
|
177
|
+
], CreateUiCommandTest, "installsDependenciesIfMissing", null);
|
|
178
|
+
__decorate([
|
|
179
|
+
(0, test_utils_1.test)()
|
|
180
|
+
], CreateUiCommandTest, "installsDevDependenciesIfMissing", null);
|
|
181
|
+
__decorate([
|
|
182
|
+
(0, test_utils_1.test)()
|
|
183
|
+
], CreateUiCommandTest, "installsIfAnyDepIsMissing", null);
|
|
184
|
+
__decorate([
|
|
185
|
+
(0, test_utils_1.test)()
|
|
186
|
+
], CreateUiCommandTest, "updatesTsconfigIfDepsWereMissing", null);
|
|
187
|
+
__decorate([
|
|
188
|
+
(0, test_utils_1.test)()
|
|
189
|
+
], CreateUiCommandTest, "createsSetupTestsIfDepsWereMissing", null);
|
|
190
|
+
__decorate([
|
|
191
|
+
(0, test_utils_1.test)()
|
|
192
|
+
], CreateUiCommandTest, "addsSetupTestsToPackageJsonIfDepsWereMissing", null);
|
|
193
|
+
__decorate([
|
|
194
|
+
(0, test_utils_1.test)()
|
|
195
|
+
], CreateUiCommandTest, "recompilesTypescriptIfDepsWereMissing", null);
|
|
196
|
+
__decorate([
|
|
197
|
+
(0, test_utils_1.test)()
|
|
198
|
+
], CreateUiCommandTest, "doesNotPromptIfDependenciesAreInstalled", null);
|
|
199
|
+
__decorate([
|
|
200
|
+
(0, test_utils_1.test)()
|
|
201
|
+
], CreateUiCommandTest, "promptsUserForInput", null);
|
|
202
|
+
__decorate([
|
|
203
|
+
(0, test_utils_1.test)()
|
|
204
|
+
], CreateUiCommandTest, "doesNotContinueIfPromptsIsInterrupted", null);
|
|
205
|
+
__decorate([
|
|
206
|
+
(0, test_utils_1.test)()
|
|
207
|
+
], CreateUiCommandTest, "createsTestSaveDirIfNotExists", null);
|
|
208
|
+
__decorate([
|
|
209
|
+
(0, test_utils_1.test)()
|
|
210
|
+
], CreateUiCommandTest, "createsModuleSaveDirIfNotExists", null);
|
|
211
|
+
__decorate([
|
|
212
|
+
(0, test_utils_1.test)()
|
|
213
|
+
], CreateUiCommandTest, "createsFakeSaveDirIfNotExists", null);
|
|
214
|
+
__decorate([
|
|
215
|
+
(0, test_utils_1.test)()
|
|
216
|
+
], CreateUiCommandTest, "createsUiAutomodule", null);
|
|
217
|
+
__decorate([
|
|
218
|
+
(0, test_utils_1.test)()
|
|
219
|
+
], CreateUiCommandTest, "runsUiAutomodule", null);
|
|
220
|
+
//# sourceMappingURL=CreateUiCommand.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateUiCommand.test.js","sourceRoot":"","sources":["../../../../src/__tests__/modules/commands/CreateUiCommand.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import AbstractCommandRunnerTest from '../../AbstractCommandRunnerTest';
|
|
2
|
+
export default class UpgradePackageCommandTest extends AbstractCommandRunnerTest {
|
|
3
|
+
protected static beforeEach(): Promise<void>;
|
|
4
|
+
protected static createsInstance(): Promise<void>;
|
|
5
|
+
protected static createsNpmAutopackage(): Promise<void>;
|
|
6
|
+
protected static runsNpmAutopackage(): Promise<void>;
|
|
7
|
+
protected static addsDefaultKeywordsIfMissing(): Promise<void>;
|
|
8
|
+
protected static doesNotOverwriteKeywordsEvenIfDefaultsMissing(): Promise<void>;
|
|
9
|
+
protected static extractsPackageNameFromScopedName(): Promise<void>;
|
|
10
|
+
private static run;
|
|
11
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
13
|
+
const meta_node_1 = require("@neurodevs/meta-node");
|
|
14
|
+
const AbstractCommandRunnerTest_1 = __importDefault(require("../../AbstractCommandRunnerTest"));
|
|
15
|
+
class UpgradePackageCommandTest extends AbstractCommandRunnerTest_1.default {
|
|
16
|
+
static async beforeEach() {
|
|
17
|
+
await super.beforeEach();
|
|
18
|
+
}
|
|
19
|
+
static async createsInstance() {
|
|
20
|
+
const instance = await this.run();
|
|
21
|
+
test_utils_1.assert.isTruthy(instance, `Failed to create instance for ${this.upgradePackageCommand}!`);
|
|
22
|
+
}
|
|
23
|
+
static async createsNpmAutopackage() {
|
|
24
|
+
await this.run();
|
|
25
|
+
test_utils_1.assert.isEqualDeep(meta_node_1.FakeAutopackage.callsToConstructor[0], {
|
|
26
|
+
...this.infoFromPackageJson,
|
|
27
|
+
name: `${this.packageName}`,
|
|
28
|
+
gitNamespace: 'neurodevs',
|
|
29
|
+
npmNamespace: 'neurodevs',
|
|
30
|
+
installDir: this.expandHomeDir('~/dev'),
|
|
31
|
+
license: 'MIT',
|
|
32
|
+
author: 'Eric Yates <hello@ericthecurious.com>',
|
|
33
|
+
}, 'Did not create NpmAutopackage with expected options!');
|
|
34
|
+
}
|
|
35
|
+
static async runsNpmAutopackage() {
|
|
36
|
+
await this.run();
|
|
37
|
+
test_utils_1.assert.isEqual(meta_node_1.FakeAutopackage.numCallsToRun, 1, 'Did not call run on NpmAutopackage!');
|
|
38
|
+
}
|
|
39
|
+
static async addsDefaultKeywordsIfMissing() {
|
|
40
|
+
await this.run({
|
|
41
|
+
name: this.packageName,
|
|
42
|
+
description: this.description,
|
|
43
|
+
keywords: [],
|
|
44
|
+
});
|
|
45
|
+
test_utils_1.assert.isEqualDeep(meta_node_1.FakeAutopackage.callsToConstructor[0]?.keywords, this.defaultKeywords, 'Did not add default keywords!');
|
|
46
|
+
}
|
|
47
|
+
static async doesNotOverwriteKeywordsEvenIfDefaultsMissing() {
|
|
48
|
+
const keywords = [(0, test_utils_1.generateId)(), (0, test_utils_1.generateId)()];
|
|
49
|
+
await this.run({
|
|
50
|
+
name: this.packageName,
|
|
51
|
+
description: this.description,
|
|
52
|
+
keywords,
|
|
53
|
+
});
|
|
54
|
+
test_utils_1.assert.isEqualDeep(meta_node_1.FakeAutopackage.callsToConstructor[0]?.keywords, [...this.defaultKeywords, ...keywords], 'Should not have overwritten keywords!');
|
|
55
|
+
}
|
|
56
|
+
static async extractsPackageNameFromScopedName() {
|
|
57
|
+
await this.run({
|
|
58
|
+
name: this.packageName,
|
|
59
|
+
description: this.description,
|
|
60
|
+
keywords: this.keywordsWithDefaults,
|
|
61
|
+
});
|
|
62
|
+
test_utils_1.assert.isEqualDeep(meta_node_1.FakeAutopackage.callsToConstructor[0]?.name, this.packageName, 'Did not extract package name from scoped name!');
|
|
63
|
+
}
|
|
64
|
+
static async run(responses) {
|
|
65
|
+
this.setFakePackageJson(responses);
|
|
66
|
+
const instance = this.CliCommandRunner([this.upgradePackageCommand]);
|
|
67
|
+
await instance.run();
|
|
68
|
+
return instance;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.default = UpgradePackageCommandTest;
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, test_utils_1.test)()
|
|
74
|
+
], UpgradePackageCommandTest, "createsInstance", null);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, test_utils_1.test)()
|
|
77
|
+
], UpgradePackageCommandTest, "createsNpmAutopackage", null);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, test_utils_1.test)()
|
|
80
|
+
], UpgradePackageCommandTest, "runsNpmAutopackage", null);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, test_utils_1.test)()
|
|
83
|
+
], UpgradePackageCommandTest, "addsDefaultKeywordsIfMissing", null);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, test_utils_1.test)()
|
|
86
|
+
], UpgradePackageCommandTest, "doesNotOverwriteKeywordsEvenIfDefaultsMissing", null);
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, test_utils_1.test)()
|
|
89
|
+
], UpgradePackageCommandTest, "extractsPackageNameFromScopedName", null);
|
|
90
|
+
//# sourceMappingURL=UpgradePackageCommand.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpgradePackageCommand.test.js","sourceRoot":"","sources":["../../../../src/__tests__/modules/commands/UpgradePackageCommand.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,13 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
13
13
|
static readFile: typeof readFile;
|
|
14
14
|
static writeFile: typeof writeFile;
|
|
15
15
|
private args;
|
|
16
|
+
private readonly bindSnippetCommand;
|
|
16
17
|
private readonly createImplCommand;
|
|
17
18
|
private readonly createPackageCommand;
|
|
18
19
|
private readonly createUiCommand;
|
|
19
20
|
private readonly helpCommand;
|
|
20
|
-
private readonly
|
|
21
|
-
private readonly
|
|
21
|
+
private readonly helpFlagShort;
|
|
22
|
+
private readonly helpFlagLong;
|
|
22
23
|
private readonly upgradePackageCommand;
|
|
23
24
|
private readonly supportedCommands;
|
|
24
25
|
protected constructor(args: string[]);
|
|
@@ -28,6 +29,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
28
29
|
private get commandIsSupported();
|
|
29
30
|
private get command();
|
|
30
31
|
private runCommand;
|
|
32
|
+
private bindSnippet;
|
|
31
33
|
private createImplModule;
|
|
32
34
|
private createPackage;
|
|
33
35
|
private createUiModule;
|
|
@@ -7,32 +7,36 @@ const child_process_1 = require("child_process");
|
|
|
7
7
|
const promises_1 = require("fs/promises");
|
|
8
8
|
const util_1 = require("util");
|
|
9
9
|
const prompts_1 = __importDefault(require("prompts"));
|
|
10
|
+
const BindSnippetCommand_1 = __importDefault(require("./commands/BindSnippetCommand"));
|
|
10
11
|
const CreateImplCommand_1 = __importDefault(require("./commands/CreateImplCommand"));
|
|
11
12
|
const CreatePackageCommand_1 = __importDefault(require("./commands/CreatePackageCommand"));
|
|
12
13
|
const CreateUiCommand_1 = __importDefault(require("./commands/CreateUiCommand"));
|
|
13
14
|
const UpgradePackageCommand_1 = __importDefault(require("./commands/UpgradePackageCommand"));
|
|
14
15
|
class CliCommandRunner {
|
|
15
16
|
constructor(args) {
|
|
17
|
+
this.bindSnippetCommand = 'bind.snippet';
|
|
16
18
|
this.createImplCommand = 'create.impl';
|
|
17
19
|
this.createPackageCommand = 'create.package';
|
|
18
20
|
this.createUiCommand = 'create.ui';
|
|
19
21
|
this.helpCommand = 'help';
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
+
this.helpFlagShort = '-h';
|
|
23
|
+
this.helpFlagLong = '--help';
|
|
22
24
|
this.upgradePackageCommand = 'upgrade.package';
|
|
23
25
|
this.supportedCommands = [
|
|
26
|
+
this.bindSnippetCommand,
|
|
24
27
|
this.createImplCommand,
|
|
25
28
|
this.createPackageCommand,
|
|
26
29
|
this.createUiCommand,
|
|
27
30
|
this.helpCommand,
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
31
|
+
this.helpFlagShort,
|
|
32
|
+
this.helpFlagLong,
|
|
30
33
|
this.upgradePackageCommand,
|
|
31
34
|
];
|
|
32
35
|
this.helpText = `ndx CLI (Command Line Interface)
|
|
33
36
|
|
|
34
37
|
Available commands:
|
|
35
38
|
|
|
39
|
+
- bind.snippet Bind a text snippet to a keyboard shortcut in vscode.
|
|
36
40
|
- create.impl Create implementation for interface with test and fake.
|
|
37
41
|
- create.package Create npm package using latest template.
|
|
38
42
|
- create.ui Create React component with test and fake.
|
|
@@ -41,7 +45,7 @@ class CliCommandRunner {
|
|
|
41
45
|
|
|
42
46
|
Usage:
|
|
43
47
|
|
|
44
|
-
- ndx <command>
|
|
48
|
+
- ndx <command>
|
|
45
49
|
`;
|
|
46
50
|
this.args = args;
|
|
47
51
|
}
|
|
@@ -65,6 +69,9 @@ class CliCommandRunner {
|
|
|
65
69
|
}
|
|
66
70
|
async runCommand() {
|
|
67
71
|
switch (this.command) {
|
|
72
|
+
case this.bindSnippetCommand:
|
|
73
|
+
await this.bindSnippet();
|
|
74
|
+
break;
|
|
68
75
|
case this.createImplCommand:
|
|
69
76
|
await this.createImplModule();
|
|
70
77
|
break;
|
|
@@ -77,10 +84,10 @@ class CliCommandRunner {
|
|
|
77
84
|
case this.helpCommand:
|
|
78
85
|
await this.help();
|
|
79
86
|
break;
|
|
80
|
-
case this.
|
|
87
|
+
case this.helpFlagLong:
|
|
81
88
|
await this.help();
|
|
82
89
|
break;
|
|
83
|
-
case this.
|
|
90
|
+
case this.helpFlagShort:
|
|
84
91
|
await this.help();
|
|
85
92
|
break;
|
|
86
93
|
case this.upgradePackageCommand:
|
|
@@ -88,6 +95,10 @@ class CliCommandRunner {
|
|
|
88
95
|
break;
|
|
89
96
|
}
|
|
90
97
|
}
|
|
98
|
+
async bindSnippet() {
|
|
99
|
+
const command = new BindSnippetCommand_1.default();
|
|
100
|
+
await command.run();
|
|
101
|
+
}
|
|
91
102
|
async createImplModule() {
|
|
92
103
|
const command = new CreateImplCommand_1.default();
|
|
93
104
|
await command.run();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliCommandRunner.js","sourceRoot":"","sources":["../../src/modules/CliCommandRunner.ts"],"names":[],"mappings":";;;;;AAAA,iDAAgD;AAChD,0CAAwD;AACxD,+BAAgC;AAChC,sDAA6B;AAC7B,qFAA4D;AAC5D,2FAAkE;AAClE,iFAAwD;AACxD,6FAAoE;AAEpE,MAAqB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"CliCommandRunner.js","sourceRoot":"","sources":["../../src/modules/CliCommandRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default class BindSnippetCommand {
|
|
2
|
+
private name;
|
|
3
|
+
private description;
|
|
4
|
+
private lines;
|
|
5
|
+
private keybinding;
|
|
6
|
+
constructor();
|
|
7
|
+
run(): Promise<void>;
|
|
8
|
+
private promptUserForInput;
|
|
9
|
+
private get hasAllUserInput();
|
|
10
|
+
private readonly nameMessage;
|
|
11
|
+
private readonly descriptionMessage;
|
|
12
|
+
private readonly snippetMessage;
|
|
13
|
+
private readonly keybindingMessage;
|
|
14
|
+
private get prompts();
|
|
15
|
+
private VscodeSnippetKeybinder;
|
|
16
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const meta_node_1 = require("@neurodevs/meta-node");
|
|
7
|
+
const CliCommandRunner_1 = __importDefault(require("../CliCommandRunner"));
|
|
8
|
+
class BindSnippetCommand {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.nameMessage = `Snippet name? Example: Singleton class template`;
|
|
11
|
+
this.descriptionMessage = `Snippet description? Example: A class template based on the singleton pattern`;
|
|
12
|
+
this.snippetMessage = `Snippet text content? Newlines allowed. Press Enter twice to finish`;
|
|
13
|
+
this.keybindingMessage = `Snippet keybinding? Examples: ctrl+alt+c, f4`;
|
|
14
|
+
}
|
|
15
|
+
async run() {
|
|
16
|
+
const { name, description, lines, keybinding } = await this.promptUserForInput();
|
|
17
|
+
this.name = name;
|
|
18
|
+
this.description = description;
|
|
19
|
+
this.lines = lines;
|
|
20
|
+
this.keybinding = keybinding;
|
|
21
|
+
if (!this.hasAllUserInput) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const keybinder = this.VscodeSnippetKeybinder();
|
|
25
|
+
await keybinder.run();
|
|
26
|
+
}
|
|
27
|
+
async promptUserForInput() {
|
|
28
|
+
return await this.prompts([
|
|
29
|
+
{
|
|
30
|
+
type: 'text',
|
|
31
|
+
name: 'name',
|
|
32
|
+
message: this.nameMessage,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
name: 'description',
|
|
37
|
+
message: this.descriptionMessage,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: 'text',
|
|
41
|
+
name: 'lines',
|
|
42
|
+
message: this.snippetMessage,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
name: 'keybinding',
|
|
47
|
+
message: this.keybindingMessage,
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
}
|
|
51
|
+
get hasAllUserInput() {
|
|
52
|
+
return this.name && this.description && this.lines && this.keybinding;
|
|
53
|
+
}
|
|
54
|
+
get prompts() {
|
|
55
|
+
return CliCommandRunner_1.default.prompts;
|
|
56
|
+
}
|
|
57
|
+
VscodeSnippetKeybinder() {
|
|
58
|
+
return meta_node_1.VscodeSnippetKeybinder.Create({
|
|
59
|
+
name: this.name,
|
|
60
|
+
description: this.description,
|
|
61
|
+
lines: this.lines.split('\n'),
|
|
62
|
+
keybinding: this.keybinding,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.default = BindSnippetCommand;
|
|
67
|
+
//# sourceMappingURL=BindSnippetCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BindSnippetCommand.js","sourceRoot":"","sources":["../../../src/modules/commands/BindSnippetCommand.ts"],"names":[],"mappings":";;;;;AAAA,oDAA6D;AAC7D,2EAAkD;AAElD,MAAqB,kBAAkB;IAMnC;QAgDiB,gBAAW,GAAG,iDAAiD,CAAA;QAC/D,uBAAkB,GAAG,+EAA+E,CAAA;QACpG,mBAAc,GAAG,qEAAqE,CAAA;QACtF,sBAAiB,GAAG,8CAA8C,CAAA;IAnD7D,CAAC;IAEhB,KAAK,CAAC,GAAG;QACZ,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAC1C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,OAAM;QACV,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACtB;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI,CAAC,WAAW;aAC5B;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,IAAI,CAAC,kBAAkB;aACnC;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,IAAI,CAAC,cAAc;aAC/B;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,IAAI,CAAC,iBAAiB;aAClC;SACJ,CAAC,CAAA;IACN,CAAC;IAED,IAAY,eAAe;QACvB,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAA;IACzE,CAAC;IAOD,IAAY,OAAO;QACf,OAAO,0BAAgB,CAAC,OAAO,CAAA;IACnC,CAAC;IAEO,sBAAsB;QAC1B,OAAO,kCAAsB,CAAC,MAAM,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAA;IACN,CAAC;CACJ;AAvED,qCAuEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/ndx-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.57",
|
|
4
4
|
"description": "CLI tools for the Neurodevs ecosystem.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nodejs",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"watch.tsc": "tsc -w"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@neurodevs/meta-node": "^0.
|
|
51
|
+
"@neurodevs/meta-node": "^0.12.0",
|
|
52
52
|
"prompts": "^2.4.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|