@neurodevs/ndx-cli 0.1.59 → 0.1.61
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 +4 -2
- package/build/__tests__/AbstractCommandRunnerTest.js +10 -3
- package/build/__tests__/AbstractCommandRunnerTest.js.map +1 -1
- package/build/__tests__/impl/commands/InstallSnippetsCommand.test.d.ts +8 -0
- package/build/__tests__/impl/commands/InstallSnippetsCommand.test.js +39 -0
- package/build/__tests__/impl/commands/InstallSnippetsCommand.test.js.map +1 -0
- package/build/impl/CliCommandRunner.d.ts +2 -0
- package/build/impl/CliCommandRunner.js +14 -3
- package/build/impl/CliCommandRunner.js.map +1 -1
- package/build/impl/commands/InstallSnippetsCommand.d.ts +5 -0
- package/build/impl/commands/InstallSnippetsCommand.js +15 -0
- package/build/impl/commands/InstallSnippetsCommand.js.map +1 -0
- package/package.json +2 -2
- package/src/__tests__/AbstractCommandRunnerTest.ts +15 -5
- package/src/__tests__/impl/commands/InstallSnippetsCommand.test.ts +38 -0
- package/src/impl/CliCommandRunner.ts +15 -3
- package/src/impl/commands/InstallSnippetsCommand.ts +14 -0
|
@@ -10,9 +10,9 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
10
10
|
protected static readonly keywords: string[];
|
|
11
11
|
protected static readonly githubToken: string;
|
|
12
12
|
protected static readonly defaultKeywords: string[];
|
|
13
|
-
protected static get keywordsWithDefaults(): string[];
|
|
14
13
|
protected static readonly createUiCommand = "create.ui";
|
|
15
14
|
protected static readonly componentName: string;
|
|
15
|
+
protected static readonly installSnippetsCommand = "install.snippets";
|
|
16
16
|
protected static readonly upgradePackageCommand = "upgrade.package";
|
|
17
17
|
protected static beforeEach(): Promise<void>;
|
|
18
18
|
protected static setFakeReadFileResultToTsconfig(): void;
|
|
@@ -24,6 +24,7 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
24
24
|
description: string;
|
|
25
25
|
keywords: string[];
|
|
26
26
|
};
|
|
27
|
+
protected static get keywordsWithDefaults(): string[];
|
|
27
28
|
protected static readonly infoFromPackageJson: {
|
|
28
29
|
name: string;
|
|
29
30
|
description: string;
|
|
@@ -49,6 +50,7 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
49
50
|
protected static setFakeImplAutomodule(): void;
|
|
50
51
|
protected static setFakeUiAutomodule(): void;
|
|
51
52
|
protected static setFakeSnippetKeybinder(): void;
|
|
53
|
+
protected static setFakeSnippetSuite(): void;
|
|
52
54
|
protected static setFakeExec(): void;
|
|
53
55
|
protected static setFakeLog(): void;
|
|
54
56
|
protected static setFakeMkdir(): void;
|
|
@@ -61,6 +63,6 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
61
63
|
protected static readonly packageDescriptionMessage = "What should the package description be? Example: A useful package.";
|
|
62
64
|
protected static readonly componentNameMessage = "What should the component be called? Example: YourComponent";
|
|
63
65
|
protected static readonly setupTestsFile = "\n import { JSDOM } from 'jsdom'\n\n const jsdom = new JSDOM('<!doctype html><html><body></body></html>', {\n url: 'http://localhost',\n })\n\n global.window = jsdom.window as unknown as Window & typeof globalThis\n global.document = jsdom.window.document\n global.navigator = jsdom.window.navigator\n global.HTMLElement = jsdom.window.HTMLElement\n global.getComputedStyle = jsdom.window.getComputedStyle\n\n global.ResizeObserver = class {\n public observe() {}\n public unobserve() {}\n public disconnect() {}\n }\n\n global.SVGElement = jsdom.window.SVGElement\n ";
|
|
64
|
-
protected static readonly helpText = "ndx CLI (Command Line Interface)\n\n Available commands:\n\n - bind.snippet Bind a text snippet to a keyboard shortcut in vscode.\n - create.impl Create implementation for interface with test and fake.\n - create.package Create npm package using latest template.\n - create.ui Create React component with test and fake.\n - upgrade.package Upgrade existing npm package to latest template.\n - help, --help, -h Show this help text.\n \n Usage:\n\n - ndx <command>\n ";
|
|
66
|
+
protected static readonly helpText = "ndx CLI (Command Line Interface)\n\n Available commands:\n\n - bind.snippet Bind a text snippet to a keyboard shortcut in vscode.\n - create.impl Create implementation for interface with test and fake.\n - create.package Create npm package using latest template.\n - create.ui Create React component with test and fake.\n - install.snippets Install text snippets with vscode keybindings.\n - upgrade.package Upgrade existing npm package to latest template.\n - help, --help, -h Show this help text.\n \n Usage:\n\n - ndx <command>\n ";
|
|
65
67
|
protected static CliCommandRunner(args: string[]): import("../impl/CliCommandRunner").CommandRunner;
|
|
66
68
|
}
|
|
@@ -49,15 +49,13 @@ const fakePrompts_1 = __importStar(require("../testDoubles/prompts/fakePrompts")
|
|
|
49
49
|
const AbstractPackageTest_1 = __importDefault(require("./AbstractPackageTest"));
|
|
50
50
|
const exec = (0, util_1.promisify)(child_process_1.exec);
|
|
51
51
|
class AbstractCommandRunnerTest extends AbstractPackageTest_1.default {
|
|
52
|
-
static get keywordsWithDefaults() {
|
|
53
|
-
return [...this.defaultKeywords, ...this.keywords];
|
|
54
|
-
}
|
|
55
52
|
static async beforeEach() {
|
|
56
53
|
await super.beforeEach();
|
|
57
54
|
this.setFakeAutopackage();
|
|
58
55
|
this.setFakeImplAutomodule();
|
|
59
56
|
this.setFakeUiAutomodule();
|
|
60
57
|
this.setFakeSnippetKeybinder();
|
|
58
|
+
this.setFakeSnippetSuite();
|
|
61
59
|
this.setFakeExec();
|
|
62
60
|
this.setFakeLog();
|
|
63
61
|
this.setFakeMkdir();
|
|
@@ -86,6 +84,9 @@ class AbstractCommandRunnerTest extends AbstractPackageTest_1.default {
|
|
|
86
84
|
(0, fake_node_core_1.setFakeReadFileResult)('package.json', JSON.stringify(infoFromPackageJson));
|
|
87
85
|
return infoFromPackageJson;
|
|
88
86
|
}
|
|
87
|
+
static get keywordsWithDefaults() {
|
|
88
|
+
return [...this.defaultKeywords, ...this.keywords];
|
|
89
|
+
}
|
|
89
90
|
static expandHomeDir(inputPath) {
|
|
90
91
|
return inputPath.startsWith('~')
|
|
91
92
|
? path_1.default.join(os_1.default.homedir(), inputPath.slice(1))
|
|
@@ -119,6 +120,10 @@ class AbstractCommandRunnerTest extends AbstractPackageTest_1.default {
|
|
|
119
120
|
meta_node_1.VscodeSnippetKeybinder.Class = meta_node_1.FakeSnippetKeybinder;
|
|
120
121
|
meta_node_1.FakeSnippetKeybinder.resetTestDouble();
|
|
121
122
|
}
|
|
123
|
+
static setFakeSnippetSuite() {
|
|
124
|
+
meta_node_1.TypescriptClassSnippetSuite.Class = meta_node_1.FakeSnippetSuite;
|
|
125
|
+
meta_node_1.FakeSnippetSuite.resetTestDouble();
|
|
126
|
+
}
|
|
122
127
|
static setFakeExec() {
|
|
123
128
|
CliCommandRunner_1.default.exec = fake_node_core_1.fakeExec;
|
|
124
129
|
(0, fake_node_core_1.resetCallsToExec)();
|
|
@@ -163,6 +168,7 @@ AbstractCommandRunnerTest.githubToken = (0, test_utils_1.generateId)();
|
|
|
163
168
|
AbstractCommandRunnerTest.defaultKeywords = ['nodejs', 'typescript', 'tdd'];
|
|
164
169
|
AbstractCommandRunnerTest.createUiCommand = 'create.ui';
|
|
165
170
|
AbstractCommandRunnerTest.componentName = (0, test_utils_1.generateId)();
|
|
171
|
+
AbstractCommandRunnerTest.installSnippetsCommand = 'install.snippets';
|
|
166
172
|
AbstractCommandRunnerTest.upgradePackageCommand = 'upgrade.package';
|
|
167
173
|
AbstractCommandRunnerTest.infoFromPackageJson = {
|
|
168
174
|
name: _a.packageName,
|
|
@@ -253,6 +259,7 @@ AbstractCommandRunnerTest.helpText = `ndx CLI (Command Line Interface)
|
|
|
253
259
|
- create.impl Create implementation for interface with test and fake.
|
|
254
260
|
- create.package Create npm package using latest template.
|
|
255
261
|
- create.ui Create React component with test and fake.
|
|
262
|
+
- install.snippets Install text snippets with vscode keybindings.
|
|
256
263
|
- upgrade.package Upgrade existing npm package to latest template.
|
|
257
264
|
- help, --help, -h Show this help text.
|
|
258
265
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractCommandRunnerTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractCommandRunnerTest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgD;AAEhD,4CAAmB;AACnB,gDAAuB;AACvB,+BAAgC;AAChC,uDAAmD;AACnD,8DAYkC;AAClC,
|
|
1
|
+
{"version":3,"file":"AbstractCommandRunnerTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractCommandRunnerTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import AbstractCommandRunnerTest from '../../AbstractCommandRunnerTest';
|
|
2
|
+
export default class InstallSnippetsCommandTest extends AbstractCommandRunnerTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
protected static beforeEach(): Promise<void>;
|
|
5
|
+
protected static createsInstance(): Promise<void>;
|
|
6
|
+
protected static callsInstallOnTypescriptClassSnippetSuite(): Promise<void>;
|
|
7
|
+
private static run;
|
|
8
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 InstallSnippetsCommandTest extends AbstractCommandRunnerTest_1.default {
|
|
16
|
+
static async beforeEach() {
|
|
17
|
+
await super.beforeEach();
|
|
18
|
+
this.instance = await this.run();
|
|
19
|
+
}
|
|
20
|
+
static async createsInstance() {
|
|
21
|
+
test_utils_1.assert.isTruthy(this.instance, `Failed to create instance for ${this.installSnippetsCommand}!`);
|
|
22
|
+
}
|
|
23
|
+
static async callsInstallOnTypescriptClassSnippetSuite() {
|
|
24
|
+
test_utils_1.assert.isEqual(meta_node_1.FakeSnippetSuite.numCallsToInstall, 1, 'Did not install snippet suite!');
|
|
25
|
+
}
|
|
26
|
+
static async run() {
|
|
27
|
+
const instance = this.CliCommandRunner([this.installSnippetsCommand]);
|
|
28
|
+
await instance.run();
|
|
29
|
+
return instance;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.default = InstallSnippetsCommandTest;
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, test_utils_1.test)()
|
|
35
|
+
], InstallSnippetsCommandTest, "createsInstance", null);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, test_utils_1.test)()
|
|
38
|
+
], InstallSnippetsCommandTest, "callsInstallOnTypescriptClassSnippetSuite", null);
|
|
39
|
+
//# sourceMappingURL=InstallSnippetsCommand.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallSnippetsCommand.test.js","sourceRoot":"","sources":["../../../../src/__tests__/impl/commands/InstallSnippetsCommand.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAqD;AACrD,oDAAuD;AAEvD,gGAAuE;AAEvE,MAAqB,0BAA2B,SAAQ,mCAAyB;IAGnE,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;IACpC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,mBAAM,CAAC,QAAQ,CACX,IAAI,CAAC,QAAQ,EACb,iCAAiC,IAAI,CAAC,sBAAsB,GAAG,CAClE,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yCAAyC;QAC5D,mBAAM,CAAC,OAAO,CACV,4BAAgB,CAAC,iBAAiB,EAClC,CAAC,EACD,gCAAgC,CACnC,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,GAAG;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAA;QACrE,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;QAEpB,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AAhCD,6CAgCC;AAtB0B;IADtB,IAAA,iBAAI,GAAE;uDAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;iFAON"}
|
|
@@ -20,6 +20,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
20
20
|
private readonly helpCommand;
|
|
21
21
|
private readonly helpFlagShort;
|
|
22
22
|
private readonly helpFlagLong;
|
|
23
|
+
private readonly installSnippetsCommand;
|
|
23
24
|
private readonly upgradePackageCommand;
|
|
24
25
|
private readonly supportedCommands;
|
|
25
26
|
protected constructor(args: string[]);
|
|
@@ -33,6 +34,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
33
34
|
private createImplModule;
|
|
34
35
|
private createPackage;
|
|
35
36
|
private createUiModule;
|
|
37
|
+
private installSnippets;
|
|
36
38
|
private upgradePackage;
|
|
37
39
|
private help;
|
|
38
40
|
private get log();
|
|
@@ -11,6 +11,7 @@ const BindSnippetCommand_1 = __importDefault(require("./commands/BindSnippetComm
|
|
|
11
11
|
const CreateImplCommand_1 = __importDefault(require("./commands/CreateImplCommand"));
|
|
12
12
|
const CreatePackageCommand_1 = __importDefault(require("./commands/CreatePackageCommand"));
|
|
13
13
|
const CreateUiCommand_1 = __importDefault(require("./commands/CreateUiCommand"));
|
|
14
|
+
const InstallSnippetsCommand_1 = __importDefault(require("./commands/InstallSnippetsCommand"));
|
|
14
15
|
const UpgradePackageCommand_1 = __importDefault(require("./commands/UpgradePackageCommand"));
|
|
15
16
|
class CliCommandRunner {
|
|
16
17
|
constructor(args) {
|
|
@@ -21,6 +22,7 @@ class CliCommandRunner {
|
|
|
21
22
|
this.helpCommand = 'help';
|
|
22
23
|
this.helpFlagShort = '-h';
|
|
23
24
|
this.helpFlagLong = '--help';
|
|
25
|
+
this.installSnippetsCommand = 'install.snippets';
|
|
24
26
|
this.upgradePackageCommand = 'upgrade.package';
|
|
25
27
|
this.supportedCommands = [
|
|
26
28
|
this.bindSnippetCommand,
|
|
@@ -30,6 +32,7 @@ class CliCommandRunner {
|
|
|
30
32
|
this.helpCommand,
|
|
31
33
|
this.helpFlagShort,
|
|
32
34
|
this.helpFlagLong,
|
|
35
|
+
this.installSnippetsCommand,
|
|
33
36
|
this.upgradePackageCommand,
|
|
34
37
|
];
|
|
35
38
|
this.helpText = `ndx CLI (Command Line Interface)
|
|
@@ -40,6 +43,7 @@ class CliCommandRunner {
|
|
|
40
43
|
- create.impl Create implementation for interface with test and fake.
|
|
41
44
|
- create.package Create npm package using latest template.
|
|
42
45
|
- create.ui Create React component with test and fake.
|
|
46
|
+
- install.snippets Install text snippets with vscode keybindings.
|
|
43
47
|
- upgrade.package Upgrade existing npm package to latest template.
|
|
44
48
|
- help, --help, -h Show this help text.
|
|
45
49
|
|
|
@@ -81,6 +85,12 @@ class CliCommandRunner {
|
|
|
81
85
|
case this.createUiCommand:
|
|
82
86
|
await this.createUiModule();
|
|
83
87
|
break;
|
|
88
|
+
case this.installSnippetsCommand:
|
|
89
|
+
await this.installSnippets();
|
|
90
|
+
break;
|
|
91
|
+
case this.upgradePackageCommand:
|
|
92
|
+
await this.upgradePackage();
|
|
93
|
+
break;
|
|
84
94
|
case this.helpCommand:
|
|
85
95
|
await this.help();
|
|
86
96
|
break;
|
|
@@ -90,9 +100,6 @@ class CliCommandRunner {
|
|
|
90
100
|
case this.helpFlagShort:
|
|
91
101
|
await this.help();
|
|
92
102
|
break;
|
|
93
|
-
case this.upgradePackageCommand:
|
|
94
|
-
await this.upgradePackage();
|
|
95
|
-
break;
|
|
96
103
|
}
|
|
97
104
|
}
|
|
98
105
|
async bindSnippet() {
|
|
@@ -111,6 +118,10 @@ class CliCommandRunner {
|
|
|
111
118
|
const command = new CreateUiCommand_1.default();
|
|
112
119
|
await command.run();
|
|
113
120
|
}
|
|
121
|
+
async installSnippets() {
|
|
122
|
+
const command = new InstallSnippetsCommand_1.default();
|
|
123
|
+
await command.run();
|
|
124
|
+
}
|
|
114
125
|
async upgradePackage() {
|
|
115
126
|
const command = new UpgradePackageCommand_1.default();
|
|
116
127
|
await command.run();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliCommandRunner.js","sourceRoot":"","sources":["../../src/impl/CliCommandRunner.ts"],"names":[],"mappings":";;;;;AAAA,iDAAgD;AAChD,0CAAwD;AACxD,+BAAgC;AAChC,sDAA6B;AAC7B,uFAA8D;AAC9D,qFAA4D;AAC5D,2FAAkE;AAClE,iFAAwD;AACxD,6FAAoE;AAEpE,MAAqB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"CliCommandRunner.js","sourceRoot":"","sources":["../../src/impl/CliCommandRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const meta_node_1 = require("@neurodevs/meta-node");
|
|
4
|
+
class InstallSnippetsCommand {
|
|
5
|
+
constructor() { }
|
|
6
|
+
async run() {
|
|
7
|
+
const suite = this.TypescriptClassSnippetSuite();
|
|
8
|
+
await suite.install();
|
|
9
|
+
}
|
|
10
|
+
TypescriptClassSnippetSuite() {
|
|
11
|
+
return meta_node_1.TypescriptClassSnippetSuite.Create();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.default = InstallSnippetsCommand;
|
|
15
|
+
//# sourceMappingURL=InstallSnippetsCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallSnippetsCommand.js","sourceRoot":"","sources":["../../../src/impl/commands/InstallSnippetsCommand.ts"],"names":[],"mappings":";;AAAA,oDAAkE;AAElE,MAAqB,sBAAsB;IACvC,gBAAsB,CAAC;IAEhB,KAAK,CAAC,GAAG;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAA;QAChD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAEO,2BAA2B;QAC/B,OAAO,uCAA2B,CAAC,MAAM,EAAE,CAAA;IAC/C,CAAC;CACJ;AAXD,yCAWC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/ndx-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.61",
|
|
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.14.0",
|
|
52
52
|
"prompts": "^2.4.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
@@ -21,8 +21,10 @@ import {
|
|
|
21
21
|
FakeAutomodule,
|
|
22
22
|
FakeAutopackage,
|
|
23
23
|
FakeSnippetKeybinder,
|
|
24
|
+
FakeSnippetSuite,
|
|
24
25
|
ImplAutomodule,
|
|
25
26
|
NpmAutopackage,
|
|
27
|
+
TypescriptClassSnippetSuite,
|
|
26
28
|
UiAutomodule,
|
|
27
29
|
VscodeSnippetKeybinder,
|
|
28
30
|
} from '@neurodevs/meta-node'
|
|
@@ -47,16 +49,13 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
47
49
|
protected static readonly description = generateId()
|
|
48
50
|
protected static readonly keywords = [generateId(), generateId()]
|
|
49
51
|
protected static readonly githubToken = generateId()
|
|
50
|
-
|
|
51
52
|
protected static readonly defaultKeywords = ['nodejs', 'typescript', 'tdd']
|
|
52
53
|
|
|
53
|
-
protected static get keywordsWithDefaults() {
|
|
54
|
-
return [...this.defaultKeywords, ...this.keywords]
|
|
55
|
-
}
|
|
56
|
-
|
|
57
54
|
protected static readonly createUiCommand = 'create.ui'
|
|
58
55
|
protected static readonly componentName = generateId()
|
|
59
56
|
|
|
57
|
+
protected static readonly installSnippetsCommand = 'install.snippets'
|
|
58
|
+
|
|
60
59
|
protected static readonly upgradePackageCommand = 'upgrade.package'
|
|
61
60
|
|
|
62
61
|
protected static async beforeEach() {
|
|
@@ -66,6 +65,7 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
66
65
|
this.setFakeImplAutomodule()
|
|
67
66
|
this.setFakeUiAutomodule()
|
|
68
67
|
this.setFakeSnippetKeybinder()
|
|
68
|
+
this.setFakeSnippetSuite()
|
|
69
69
|
|
|
70
70
|
this.setFakeExec()
|
|
71
71
|
this.setFakeLog()
|
|
@@ -112,6 +112,10 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
112
112
|
return infoFromPackageJson
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
protected static get keywordsWithDefaults() {
|
|
116
|
+
return [...this.defaultKeywords, ...this.keywords]
|
|
117
|
+
}
|
|
118
|
+
|
|
115
119
|
protected static readonly infoFromPackageJson = {
|
|
116
120
|
name: this.packageName,
|
|
117
121
|
description: this.description,
|
|
@@ -228,6 +232,11 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
228
232
|
FakeSnippetKeybinder.resetTestDouble()
|
|
229
233
|
}
|
|
230
234
|
|
|
235
|
+
protected static setFakeSnippetSuite() {
|
|
236
|
+
TypescriptClassSnippetSuite.Class = FakeSnippetSuite
|
|
237
|
+
FakeSnippetSuite.resetTestDouble()
|
|
238
|
+
}
|
|
239
|
+
|
|
231
240
|
protected static setFakeExec() {
|
|
232
241
|
CliCommandRunner.exec = fakeExec as unknown as typeof exec
|
|
233
242
|
resetCallsToExec()
|
|
@@ -307,6 +316,7 @@ export default class AbstractCommandRunnerTest extends AbstractPackageTest {
|
|
|
307
316
|
- create.impl Create implementation for interface with test and fake.
|
|
308
317
|
- create.package Create npm package using latest template.
|
|
309
318
|
- create.ui Create React component with test and fake.
|
|
319
|
+
- install.snippets Install text snippets with vscode keybindings.
|
|
310
320
|
- upgrade.package Upgrade existing npm package to latest template.
|
|
311
321
|
- help, --help, -h Show this help text.
|
|
312
322
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { assert, test } from '@sprucelabs/test-utils'
|
|
2
|
+
import { FakeSnippetSuite } from '@neurodevs/meta-node'
|
|
3
|
+
import { CommandRunner } from '../../../impl/CliCommandRunner'
|
|
4
|
+
import AbstractCommandRunnerTest from '../../AbstractCommandRunnerTest'
|
|
5
|
+
|
|
6
|
+
export default class InstallSnippetsCommandTest extends AbstractCommandRunnerTest {
|
|
7
|
+
private static instance: CommandRunner
|
|
8
|
+
|
|
9
|
+
protected static async beforeEach() {
|
|
10
|
+
await super.beforeEach()
|
|
11
|
+
|
|
12
|
+
this.instance = await this.run()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@test()
|
|
16
|
+
protected static async createsInstance() {
|
|
17
|
+
assert.isTruthy(
|
|
18
|
+
this.instance,
|
|
19
|
+
`Failed to create instance for ${this.installSnippetsCommand}!`
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@test()
|
|
24
|
+
protected static async callsInstallOnTypescriptClassSnippetSuite() {
|
|
25
|
+
assert.isEqual(
|
|
26
|
+
FakeSnippetSuite.numCallsToInstall,
|
|
27
|
+
1,
|
|
28
|
+
'Did not install snippet suite!'
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private static async run() {
|
|
33
|
+
const instance = this.CliCommandRunner([this.installSnippetsCommand])
|
|
34
|
+
await instance.run()
|
|
35
|
+
|
|
36
|
+
return instance
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -6,6 +6,7 @@ import BindSnippetCommand from './commands/BindSnippetCommand'
|
|
|
6
6
|
import CreateImplCommand from './commands/CreateImplCommand'
|
|
7
7
|
import CreatePackageCommand from './commands/CreatePackageCommand'
|
|
8
8
|
import CreateUiCommand from './commands/CreateUiCommand'
|
|
9
|
+
import InstallSnippetsCommand from './commands/InstallSnippetsCommand'
|
|
9
10
|
import UpgradePackageCommand from './commands/UpgradePackageCommand'
|
|
10
11
|
|
|
11
12
|
export default class CliCommandRunner implements CommandRunner {
|
|
@@ -26,6 +27,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
26
27
|
private readonly helpCommand = 'help'
|
|
27
28
|
private readonly helpFlagShort = '-h'
|
|
28
29
|
private readonly helpFlagLong = '--help'
|
|
30
|
+
private readonly installSnippetsCommand = 'install.snippets'
|
|
29
31
|
private readonly upgradePackageCommand = 'upgrade.package'
|
|
30
32
|
|
|
31
33
|
private readonly supportedCommands = [
|
|
@@ -36,6 +38,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
36
38
|
this.helpCommand,
|
|
37
39
|
this.helpFlagShort,
|
|
38
40
|
this.helpFlagLong,
|
|
41
|
+
this.installSnippetsCommand,
|
|
39
42
|
this.upgradePackageCommand,
|
|
40
43
|
]
|
|
41
44
|
|
|
@@ -80,6 +83,12 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
80
83
|
case this.createUiCommand:
|
|
81
84
|
await this.createUiModule()
|
|
82
85
|
break
|
|
86
|
+
case this.installSnippetsCommand:
|
|
87
|
+
await this.installSnippets()
|
|
88
|
+
break
|
|
89
|
+
case this.upgradePackageCommand:
|
|
90
|
+
await this.upgradePackage()
|
|
91
|
+
break
|
|
83
92
|
case this.helpCommand:
|
|
84
93
|
await this.help()
|
|
85
94
|
break
|
|
@@ -89,9 +98,6 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
89
98
|
case this.helpFlagShort:
|
|
90
99
|
await this.help()
|
|
91
100
|
break
|
|
92
|
-
case this.upgradePackageCommand:
|
|
93
|
-
await this.upgradePackage()
|
|
94
|
-
break
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
103
|
|
|
@@ -115,6 +121,11 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
115
121
|
await command.run()
|
|
116
122
|
}
|
|
117
123
|
|
|
124
|
+
private async installSnippets() {
|
|
125
|
+
const command = new InstallSnippetsCommand()
|
|
126
|
+
await command.run()
|
|
127
|
+
}
|
|
128
|
+
|
|
118
129
|
private async upgradePackage() {
|
|
119
130
|
const command = new UpgradePackageCommand()
|
|
120
131
|
await command.run()
|
|
@@ -136,6 +147,7 @@ export default class CliCommandRunner implements CommandRunner {
|
|
|
136
147
|
- create.impl Create implementation for interface with test and fake.
|
|
137
148
|
- create.package Create npm package using latest template.
|
|
138
149
|
- create.ui Create React component with test and fake.
|
|
150
|
+
- install.snippets Install text snippets with vscode keybindings.
|
|
139
151
|
- upgrade.package Upgrade existing npm package to latest template.
|
|
140
152
|
- help, --help, -h Show this help text.
|
|
141
153
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TypescriptClassSnippetSuite } from '@neurodevs/meta-node'
|
|
2
|
+
|
|
3
|
+
export default class InstallSnippetsCommand {
|
|
4
|
+
public constructor() {}
|
|
5
|
+
|
|
6
|
+
public async run() {
|
|
7
|
+
const suite = this.TypescriptClassSnippetSuite()
|
|
8
|
+
await suite.install()
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
private TypescriptClassSnippetSuite() {
|
|
12
|
+
return TypescriptClassSnippetSuite.Create()
|
|
13
|
+
}
|
|
14
|
+
}
|