@sprucelabs/spruce-cli 19.1.4 → 19.1.6
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/CHANGELOG.md +8 -0
- package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +1 -2
- package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +0 -2
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +75 -147
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.d.ts +3 -0
- package/build/__tests__/behavioral/tests/RunningTests.test.js +99 -43
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +3 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.d.ts +1 -0
- package/build/__tests__/implementation/TestRunner.test.js +22 -10
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/features/test/actions/CreateAction.js +13 -29
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +6 -1
- package/build/interfaces/SpyInterface.js +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js +3 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.d.ts +1 -0
- package/build/tests/utilities/uiAssert.utility.js +9 -0
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/widgets/types/window.types.js +2 -0
- package/build/widgets/types/window.types.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/parser/dist/parser.js +5 -1
- package/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +4 -4
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +30 -30
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +8 -47
- package/src/__tests__/behavioral/tests/RunningTests.test.ts +34 -14
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +2 -2
- package/src/__tests__/implementation/TestRunner.test.ts +9 -0
- package/src/features/test/actions/CreateAction.ts +13 -32
- package/src/interfaces/SpyInterface.ts +15 -3
- package/src/tests/utilities/uiAssert.utility.ts +9 -0
|
@@ -60,7 +60,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
60
60
|
break;
|
|
61
61
|
}
|
|
62
62
|
_context.next = 12;
|
|
63
|
-
return this.promptForSubDir(resolvedDestination
|
|
63
|
+
return this.promptForSubDir(resolvedDestination);
|
|
64
64
|
case 12:
|
|
65
65
|
resolvedDestination = _context.sent;
|
|
66
66
|
case 13:
|
|
@@ -102,47 +102,31 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
102
102
|
}, {
|
|
103
103
|
key: "promptForSubDir",
|
|
104
104
|
value: function () {
|
|
105
|
-
var _promptForSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolvedDestination
|
|
106
|
-
var
|
|
105
|
+
var _promptForSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolvedDestination) {
|
|
106
|
+
var match;
|
|
107
107
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
108
108
|
while (1) switch (_context2.prev = _context2.next) {
|
|
109
109
|
case 0:
|
|
110
|
-
|
|
111
|
-
return _spruceSkillUtils.diskUtil.isDir(_spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, d));
|
|
112
|
-
});
|
|
113
|
-
if (!(subdirs.length > 0)) {
|
|
114
|
-
_context2.next = 6;
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
_context2.next = 4;
|
|
110
|
+
_context2.next = 2;
|
|
118
111
|
return this.ui.prompt({
|
|
119
|
-
type: '
|
|
112
|
+
type: 'directory',
|
|
120
113
|
label: 'Where should I write this test?',
|
|
121
114
|
isRequired: true,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
value: '.',
|
|
125
|
-
label: "".concat(type)
|
|
126
|
-
}].concat((0, _toConsumableArray2["default"])(subdirs.map(function (dir) {
|
|
127
|
-
return {
|
|
128
|
-
value: "".concat(dir),
|
|
129
|
-
label: "".concat(type, "/").concat(dir)
|
|
130
|
-
};
|
|
131
|
-
})))
|
|
115
|
+
defaultValue: {
|
|
116
|
+
path: _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination)
|
|
132
117
|
}
|
|
133
118
|
});
|
|
134
|
-
case
|
|
119
|
+
case 2:
|
|
135
120
|
match = _context2.sent;
|
|
136
|
-
resolvedDestination = _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, match);
|
|
137
|
-
case 6:
|
|
121
|
+
resolvedDestination = _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, match.path);
|
|
138
122
|
return _context2.abrupt("return", resolvedDestination);
|
|
139
|
-
case
|
|
123
|
+
case 5:
|
|
140
124
|
case "end":
|
|
141
125
|
return _context2.stop();
|
|
142
126
|
}
|
|
143
127
|
}, _callee2, this);
|
|
144
128
|
}));
|
|
145
|
-
function promptForSubDir(_x2
|
|
129
|
+
function promptForSubDir(_x2) {
|
|
146
130
|
return _promptForSubDir.apply(this, arguments);
|
|
147
131
|
}
|
|
148
132
|
return promptForSubDir;
|
|
@@ -195,7 +179,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
195
179
|
}
|
|
196
180
|
}, _callee3, this);
|
|
197
181
|
}));
|
|
198
|
-
function promptForParentTestClassAndOptionallyInstallDependencies(_x4, _x5
|
|
182
|
+
function promptForParentTestClassAndOptionallyInstallDependencies(_x3, _x4, _x5) {
|
|
199
183
|
return _promptForParentTestClassAndOptionallyInstallDependencies.apply(this, arguments);
|
|
200
184
|
}
|
|
201
185
|
return promptForParentTestClassAndOptionallyInstallDependencies;
|
|
@@ -235,7 +219,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
235
219
|
}
|
|
236
220
|
}, _callee4, this);
|
|
237
221
|
}));
|
|
238
|
-
function optionallyInstallFeatureBasedOnSelection(
|
|
222
|
+
function optionallyInstallFeatureBasedOnSelection(_x6) {
|
|
239
223
|
return _optionallyInstallFeatureBasedOnSelection.apply(this, arguments);
|
|
240
224
|
}
|
|
241
225
|
return optionallyInstallFeatureBasedOnSelection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAction.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_createTestOptions","_AbstractAction2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","CreateAction","_AbstractAction","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","createTestActionSchema","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","options","normalizedOptions","testDestinationDir","namePascal","nameCamel","type","resolvedDestination","testFeature","parentTestClass","candidates","writer","results","wrap","_callee$","_context","prev","next","validateAndNormalizeOptions","diskUtil","resolvePath","cwd","ui","startLoading","parent","stopLoading","buildParentClassCandidates","sent","doesDirExist","promptForSubDir","promptForParentTestClassAndOptionallyInstallDependencies","Writer","generateTest","namesUtil","toPascal","abrupt","files","hints","stop","execute","_x","_promptForSubDir","_callee2","subdirs","match","_callee2$","_context2","readDir","d","isDir","prompt","label","isRequired","choices","_toConsumableArray2","map","dir","_x2","_x3","_promptForParentTestClassAndOptionallyInstallDependencies","_callee3","idx","_callee3$","_context3","candidate","optionallyInstallFeatureBasedOnSelection","buildParentClassFromCandidate","_x4","_x5","_x6","_optionallyInstallFeatureBasedOnSelection","_callee4","isInstalled","_callee4$","_context4","featureCode","features","name","install","code","_x7","_match$import","isDefaultExport","importPath","resolveRelativePath","path","replace","pathUtil","extname","AbstractAction","exports"],"sources":["../../../../src/features/test/actions/CreateAction.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createTestActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport TestFeature, { ParentClassCandidate } from '../TestFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createTestActionSchema\n\tpublic invocationMessage = 'Creating a test... 🛡'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { testDestinationDir, namePascal, nameCamel, type } =\n\t\t\tnormalizedOptions\n\n\t\tlet resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\ttestDestinationDir,\n\t\t\ttype\n\t\t)\n\n\t\tthis.ui.startLoading('Checking potential parent test classes')\n\n\t\tconst testFeature = this.parent as TestFeature\n\n\t\tthis.ui.stopLoading()\n\n\t\tlet parentTestClass:\n\t\t\t| undefined\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tif (diskUtil.doesDirExist(resolvedDestination)) {\n\t\t\tresolvedDestination = await this.promptForSubDir(\n\t\t\t\tresolvedDestination,\n\t\t\t\ttype\n\t\t\t)\n\t\t}\n\n\t\tif (candidates.length > 0) {\n\t\t\tparentTestClass =\n\t\t\t\tawait this.promptForParentTestClassAndOptionallyInstallDependencies(\n\t\t\t\t\tcandidates,\n\t\t\t\t\tparentTestClass,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t}\n\n\t\tthis.ui.startLoading('Generating test file...')\n\n\t\tconst writer = this.Writer('test')\n\n\t\tconst results = await writer.generateTest(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\ttype,\n\t\t\tnameCamel,\n\t\t\tparentTestClass,\n\t\t\tnamePascal: namePascal ?? namesUtil.toPascal(nameCamel),\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: results,\n\t\t\thints: [\"run `spruce test` in your skill when you're ready!\"],\n\t\t}\n\t}\n\tprivate async promptForSubDir(resolvedDestination: string, type: string) {\n\t\tconst subdirs = diskUtil\n\t\t\t.readDir(resolvedDestination)\n\t\t\t.filter((d) =>\n\t\t\t\tdiskUtil.isDir(diskUtil.resolvePath(resolvedDestination, d))\n\t\t\t)\n\n\t\tif (subdirs.length > 0) {\n\t\t\tconst match = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Where should I write this test?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: '.',\n\t\t\t\t\t\t\tlabel: `${type}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...subdirs.map((dir) => ({\n\t\t\t\t\t\t\tvalue: `${dir}`,\n\t\t\t\t\t\t\tlabel: `${type}/${dir}`,\n\t\t\t\t\t\t})),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tresolvedDestination = diskUtil.resolvePath(resolvedDestination, match)\n\t\t}\n\t\treturn resolvedDestination\n\t}\n\n\tprivate async promptForParentTestClassAndOptionallyInstallDependencies(\n\t\tcandidates: ParentClassCandidate[],\n\t\tparentTestClass:\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\t\t\t| undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tconst idx = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Which abstract test class do you want to extend?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: '', label: 'AbstractSpruceTest (default)' },\n\t\t\t\t\t...candidates.map((candidate, idx) => ({\n\t\t\t\t\t\tvalue: `${idx}`,\n\t\t\t\t\t\tlabel: candidate.label,\n\t\t\t\t\t})),\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tif (idx !== '' && candidates[+idx]) {\n\t\t\tconst match = candidates[+idx]\n\n\t\t\tif (match) {\n\t\t\t\tawait this.optionallyInstallFeatureBasedOnSelection(match)\n\n\t\t\t\tparentTestClass = this.buildParentClassFromCandidate(\n\t\t\t\t\tmatch,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn parentTestClass\n\t}\n\n\tprivate async optionallyInstallFeatureBasedOnSelection(\n\t\tmatch: ParentClassCandidate\n\t) {\n\t\tif (match.featureCode) {\n\t\t\tconst isInstalled = await this.features.isInstalled(match.featureCode)\n\n\t\t\tif (!isInstalled) {\n\t\t\t\tthis.ui.startLoading(`Installing ${match.name}...`)\n\t\t\t\tawait this.features.install({\n\t\t\t\t\tfeatures: [{ code: match.featureCode as any }],\n\t\t\t\t})\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildParentClassFromCandidate(\n\t\tmatch: ParentClassCandidate,\n\t\tresolvedDestination: string\n\t): {\n\t\tname: string\n\t\tlabel: string\n\t\timportPath: string\n\t\tisDefaultExport: boolean\n\t} {\n\t\treturn {\n\t\t\tname: match.name,\n\t\t\tlabel: match.label,\n\t\t\tisDefaultExport: match.isDefaultExport,\n\t\t\timportPath:\n\t\t\t\tmatch.import ??\n\t\t\t\tdiskUtil.resolveRelativePath(\n\t\t\t\t\tresolvedDestination,\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tmatch.path.replace(pathUtil.extname(match.path), '')\n\t\t\t\t),\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAiD,SAAAI,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,aAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAW,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,aAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,mBAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAd,SAAA,EAAAiB,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAlB,KAAA,OAAAI,SAAA,gBAAAqB,2BAAA,mBAAAL,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAE,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAR,OAAA,CAAAC,SAAA,CAAAI,OAAA,8CAAAI,CAAA;AAAA,IAO5BC,YAAY,0BAAAC,eAAA;EAAA,IAAAC,UAAA,aAAAF,YAAA,EAAAC,eAAA;EAAA,IAAAE,MAAA,GAAAvB,YAAA,CAAAoB,YAAA;EAAA,SAAAA,aAAA;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,mBAAAL,YAAA;IAAA,SAAAM,IAAA,GAAAnC,SAAA,CAAAC,MAAA,EAAAmC,IAAA,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAtC,SAAA,CAAAsC,IAAA;IAAA;IAAAL,KAAA,GAAAD,MAAA,CAAAL,IAAA,CAAA/B,KAAA,CAAAoC,MAAA,SAAAO,MAAA,CAAAH,IAAA;IAAA,IAAA/B,gBAAA,iBAAAmC,uBAAA,aAAAP,KAAA,oBACTQ,6BAAsB;IAAA,IAAApC,gBAAA,iBAAAmC,uBAAA,aAAAP,KAAA,wBAClB,uBAAuB;IAAA,OAAAA,KAAA;EAAA;EAAA,IAAAS,aAAA,aAAAb,YAAA;IAAAzB,GAAA;IAAAuC,KAAA;MAAA,IAAAC,QAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAElD,SAAAC,QAAqBC,OAAgB;QAAA,IAAAC,iBAAA,EAAAC,kBAAA,EAAAC,UAAA,EAAAC,SAAA,EAAAC,IAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,eAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,OAAA;QAAA,OAAAd,YAAA,YAAAe,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAC9Bf,iBAAiB,GAAG,IAAI,CAACgB,2BAA2B,CAACjB,OAAO,CAAC;cAC3DE,kBAAkB,GACzBD,iBAAiB,CADVC,kBAAkB,EAAEC,UAAU,GACrCF,iBAAiB,CADUE,UAAU,EAAEC,SAAS,GAChDH,iBAAiB,CADsBG,SAAS,EAAEC,IAAI,GACtDJ,iBAAiB,CADiCI,IAAI;cAGnDC,mBAAmB,GAAGY,0BAAQ,CAACC,WAAW,CAC7C,IAAI,CAACC,GAAG,EACRlB,kBAAkB,EAClBG,IAAI,CACJ;cAED,IAAI,CAACgB,EAAE,CAACC,YAAY,CAAC,wCAAwC,CAAC;cAExDf,WAAW,GAAG,IAAI,CAACgB,MAAM;cAE/B,IAAI,CAACF,EAAE,CAACG,WAAW,EAAE;cAAAV,QAAA,CAAAE,IAAA;cAAA,OAMIT,WAAW,CAACkB,0BAA0B,EAAE;YAAA;cAA3DhB,UAAU,GAAAK,QAAA,CAAAY,IAAA;cAAA,KAEZR,0BAAQ,CAACS,YAAY,CAACrB,mBAAmB,CAAC;gBAAAQ,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OACjB,IAAI,CAACY,eAAe,CAC/CtB,mBAAmB,EACnBD,IAAI,CACJ;YAAA;cAHDC,mBAAmB,GAAAQ,QAAA,CAAAY,IAAA;YAAA;cAAA,MAMhBjB,UAAU,CAACzD,MAAM,GAAG,CAAC;gBAAA8D,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OAEjB,IAAI,CAACa,wDAAwD,CAClEpB,UAAU,EACVD,eAAe,EACfF,mBAAmB,CACnB;YAAA;cALFE,eAAe,GAAAM,QAAA,CAAAY,IAAA;YAAA;cAQhB,IAAI,CAACL,EAAE,CAACC,YAAY,CAAC,yBAAyB,CAAC;cAEzCZ,MAAM,GAAG,IAAI,CAACoB,MAAM,CAAC,MAAM,CAAC;cAAAhB,QAAA,CAAAE,IAAA;cAAA,OAEZN,MAAM,CAACqB,YAAY,CAACzB,mBAAmB,EAAA1D,aAAA,CAAAA,aAAA,KACzDqD,iBAAiB;gBACpBI,IAAI,EAAJA,IAAI;gBACJD,SAAS,EAATA,SAAS;gBACTI,eAAe,EAAfA,eAAe;gBACfL,UAAU,EAAEA,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI6B,2BAAS,CAACC,QAAQ,CAAC7B,SAAS;cAAC,GACtD;YAAA;cANIO,OAAO,GAAAG,QAAA,CAAAY,IAAA;cAAA,OAAAZ,QAAA,CAAAoB,MAAA,WAQN;gBACNC,KAAK,EAAExB,OAAO;gBACdyB,KAAK,EAAE,CAAC,oDAAoD;cAC7D,CAAC;YAAA;YAAA;cAAA,OAAAtB,QAAA,CAAAuB,IAAA;UAAA;QAAA,GAAAtC,OAAA;MAAA,CACD;MAAA,SAAAuC,QAAAC,EAAA;QAAA,OAAA5C,QAAA,CAAAhD,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAuF,OAAA;IAAA;EAAA;IAAAnF,GAAA;IAAAuC,KAAA;MAAA,IAAA8C,gBAAA,OAAA5C,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CACD,SAAA2C,SAA8BnC,mBAA2B,EAAED,IAAY;QAAA,IAAAqC,OAAA,EAAAC,KAAA;QAAA,OAAA9C,YAAA,YAAAe,IAAA,UAAAgC,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9B,IAAA,GAAA8B,SAAA,CAAA7B,IAAA;YAAA;cAChE0B,OAAO,GAAGxB,0BAAQ,CACtB4B,OAAO,CAACxC,mBAAmB,CAAC,CAC5BhE,MAAM,CAAC,UAACyG,CAAC;gBAAA,OACT7B,0BAAQ,CAAC8B,KAAK,CAAC9B,0BAAQ,CAACC,WAAW,CAACb,mBAAmB,EAAEyC,CAAC,CAAC,CAAC;cAAA,EAC5D;cAAA,MAEEL,OAAO,CAAC1F,MAAM,GAAG,CAAC;gBAAA6F,SAAA,CAAA7B,IAAA;gBAAA;cAAA;cAAA6B,SAAA,CAAA7B,IAAA;cAAA,OACD,IAAI,CAACK,EAAE,CAAC4B,MAAM,CAAC;gBAClC5C,IAAI,EAAE,QAAQ;gBACd6C,KAAK,EAAE,iCAAiC;gBACxCC,UAAU,EAAE,IAAI;gBAChBnD,OAAO,EAAE;kBACRoD,OAAO,GACN;oBACC1D,KAAK,EAAE,GAAG;oBACVwD,KAAK,KAAA5D,MAAA,CAAKe,IAAI;kBACf,CAAC,EAAAf,MAAA,KAAA+D,mBAAA,aACEX,OAAO,CAACY,GAAG,CAAC,UAACC,GAAG;oBAAA,OAAM;sBACxB7D,KAAK,KAAAJ,MAAA,CAAKiE,GAAG,CAAE;sBACfL,KAAK,KAAA5D,MAAA,CAAKe,IAAI,OAAAf,MAAA,CAAIiE,GAAG;oBACtB,CAAC;kBAAA,CAAC,CAAC;gBAEL;cACD,CAAC,CAAC;YAAA;cAhBIZ,KAAK,GAAAE,SAAA,CAAAnB,IAAA;cAkBXpB,mBAAmB,GAAGY,0BAAQ,CAACC,WAAW,CAACb,mBAAmB,EAAEqC,KAAK,CAAC;YAAA;cAAA,OAAAE,SAAA,CAAAX,MAAA,WAEhE5B,mBAAmB;YAAA;YAAA;cAAA,OAAAuC,SAAA,CAAAR,IAAA;UAAA;QAAA,GAAAI,QAAA;MAAA,CAC1B;MAAA,SAAAb,gBAAA4B,GAAA,EAAAC,GAAA;QAAA,OAAAjB,gBAAA,CAAA7F,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA6E,eAAA;IAAA;EAAA;IAAAzE,GAAA;IAAAuC,KAAA;MAAA,IAAAgE,yDAAA,OAAA9D,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA6D,SACClD,UAAkC,EAClCD,eAEY,EACZF,mBAA2B;QAAA,IAAAsD,GAAA,EAAAjB,KAAA;QAAA,OAAA9C,YAAA,YAAAe,IAAA,UAAAiD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/C,IAAA,GAAA+C,SAAA,CAAA9C,IAAA;YAAA;cAAA8C,SAAA,CAAA9C,IAAA;cAAA,OAET,IAAI,CAACK,EAAE,CAAC4B,MAAM,CAAC;gBAChC5C,IAAI,EAAE,QAAQ;gBACd8C,UAAU,EAAE,IAAI;gBAChBD,KAAK,EAAE,kDAAkD;gBACzDlD,OAAO,EAAE;kBACRoD,OAAO,GACN;oBAAE1D,KAAK,EAAE,EAAE;oBAAEwD,KAAK,EAAE;kBAA+B,CAAC,EAAA5D,MAAA,KAAA+D,mBAAA,aACjD5C,UAAU,CAAC6C,GAAG,CAAC,UAACS,SAAS,EAAEH,GAAG;oBAAA,OAAM;sBACtClE,KAAK,KAAAJ,MAAA,CAAKsE,GAAG,CAAE;sBACfV,KAAK,EAAEa,SAAS,CAACb;oBAClB,CAAC;kBAAA,CAAC,CAAC;gBAEL;cACD,CAAC,CAAC;YAAA;cAbIU,GAAG,GAAAE,SAAA,CAAApC,IAAA;cAAA,MAeLkC,GAAG,KAAK,EAAE,IAAInD,UAAU,CAAC,CAACmD,GAAG,CAAC;gBAAAE,SAAA,CAAA9C,IAAA;gBAAA;cAAA;cAC3B2B,KAAK,GAAGlC,UAAU,CAAC,CAACmD,GAAG,CAAC;cAAA,KAE1BjB,KAAK;gBAAAmB,SAAA,CAAA9C,IAAA;gBAAA;cAAA;cAAA8C,SAAA,CAAA9C,IAAA;cAAA,OACF,IAAI,CAACgD,wCAAwC,CAACrB,KAAK,CAAC;YAAA;cAE1DnC,eAAe,GAAG,IAAI,CAACyD,6BAA6B,CACnDtB,KAAK,EACLrC,mBAAmB,CACnB;YAAA;cAAA,OAAAwD,SAAA,CAAA5B,MAAA,WAGI1B,eAAe;YAAA;YAAA;cAAA,OAAAsD,SAAA,CAAAzB,IAAA;UAAA;QAAA,GAAAsB,QAAA;MAAA,CACtB;MAAA,SAAA9B,yDAAAqC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAV,yDAAA,CAAA/G,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA8E,wDAAA;IAAA;EAAA;IAAA1E,GAAA;IAAAuC,KAAA;MAAA,IAAA2E,yCAAA,OAAAzE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwE,SACC3B,KAA2B;QAAA,IAAA4B,WAAA;QAAA,OAAA1E,YAAA,YAAAe,IAAA,UAAA4D,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1D,IAAA,GAAA0D,SAAA,CAAAzD,IAAA;YAAA;cAAA,KAEvB2B,KAAK,CAAC+B,WAAW;gBAAAD,SAAA,CAAAzD,IAAA;gBAAA;cAAA;cAAAyD,SAAA,CAAAzD,IAAA;cAAA,OACM,IAAI,CAAC2D,QAAQ,CAACJ,WAAW,CAAC5B,KAAK,CAAC+B,WAAW,CAAC;YAAA;cAAhEH,WAAW,GAAAE,SAAA,CAAA/C,IAAA;cAAA,IAEZ6C,WAAW;gBAAAE,SAAA,CAAAzD,IAAA;gBAAA;cAAA;cACf,IAAI,CAACK,EAAE,CAACC,YAAY,eAAAhC,MAAA,CAAeqD,KAAK,CAACiC,IAAI,SAAM;cAAAH,SAAA,CAAAzD,IAAA;cAAA,OAC7C,IAAI,CAAC2D,QAAQ,CAACE,OAAO,CAAC;gBAC3BF,QAAQ,EAAE,CAAC;kBAAEG,IAAI,EAAEnC,KAAK,CAAC+B;gBAAmB,CAAC;cAC9C,CAAC,CAAC;YAAA;cACF,IAAI,CAACrD,EAAE,CAACG,WAAW,EAAE;YAAA;YAAA;cAAA,OAAAiD,SAAA,CAAApC,IAAA;UAAA;QAAA,GAAAiC,QAAA;MAAA,CAGvB;MAAA,SAAAN,yCAAAe,GAAA;QAAA,OAAAV,yCAAA,CAAA1H,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiH,wCAAA;IAAA;EAAA;IAAA7G,GAAA;IAAAuC,KAAA,EAED,SAAAuE,8BACCtB,KAA2B,EAC3BrC,mBAA2B,EAM1B;MAAA,IAAA0E,aAAA;MACD,OAAO;QACNJ,IAAI,EAAEjC,KAAK,CAACiC,IAAI;QAChB1B,KAAK,EAAEP,KAAK,CAACO,KAAK;QAClB+B,eAAe,EAAEtC,KAAK,CAACsC,eAAe;QACtCC,UAAU,GAAAF,aAAA,GACTrC,KAAK,UAAO,cAAAqC,aAAA,cAAAA,aAAA,GACZ9D,0BAAQ,CAACiE,mBAAmB,CAC3B7E,mBAAmB;QACnB;QACAqC,KAAK,CAACyC,IAAI,CAACC,OAAO,CAACC,gBAAQ,CAACC,OAAO,CAAC5C,KAAK,CAACyC,IAAI,CAAC,EAAE,EAAE,CAAC;MAEvD,CAAC;IACF;EAAC;EAAA,OAAAxG,YAAA;AAAA,EArKwC4G,2BAAc;AAAAC,OAAA,cAAA7G,YAAA"}
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_createTestOptions","_AbstractAction2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","CreateAction","_AbstractAction","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","createTestActionSchema","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","options","normalizedOptions","testDestinationDir","namePascal","nameCamel","type","resolvedDestination","testFeature","parentTestClass","candidates","writer","results","wrap","_callee$","_context","prev","next","validateAndNormalizeOptions","diskUtil","resolvePath","cwd","ui","startLoading","parent","stopLoading","buildParentClassCandidates","sent","doesDirExist","promptForSubDir","promptForParentTestClassAndOptionallyInstallDependencies","Writer","generateTest","namesUtil","toPascal","abrupt","files","hints","stop","execute","_x","_promptForSubDir","_callee2","match","_callee2$","_context2","prompt","label","isRequired","defaultValue","path","_x2","_promptForParentTestClassAndOptionallyInstallDependencies","_callee3","idx","_callee3$","_context3","choices","_toConsumableArray2","map","candidate","optionallyInstallFeatureBasedOnSelection","buildParentClassFromCandidate","_x3","_x4","_x5","_optionallyInstallFeatureBasedOnSelection","_callee4","isInstalled","_callee4$","_context4","featureCode","features","name","install","code","_x6","_match$import","isDefaultExport","importPath","resolveRelativePath","replace","pathUtil","extname","AbstractAction","exports"],"sources":["../../../../src/features/test/actions/CreateAction.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createTestActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport TestFeature, { ParentClassCandidate } from '../TestFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createTestActionSchema\n\tpublic invocationMessage = 'Creating a test... 🛡'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { testDestinationDir, namePascal, nameCamel, type } =\n\t\t\tnormalizedOptions\n\n\t\tlet resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\ttestDestinationDir,\n\t\t\ttype\n\t\t)\n\n\t\tthis.ui.startLoading('Checking potential parent test classes')\n\n\t\tconst testFeature = this.parent as TestFeature\n\n\t\tthis.ui.stopLoading()\n\n\t\tlet parentTestClass:\n\t\t\t| undefined\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tif (diskUtil.doesDirExist(resolvedDestination)) {\n\t\t\tresolvedDestination = await this.promptForSubDir(resolvedDestination)\n\t\t}\n\n\t\tif (candidates.length > 0) {\n\t\t\tparentTestClass =\n\t\t\t\tawait this.promptForParentTestClassAndOptionallyInstallDependencies(\n\t\t\t\t\tcandidates,\n\t\t\t\t\tparentTestClass,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t}\n\n\t\tthis.ui.startLoading('Generating test file...')\n\n\t\tconst writer = this.Writer('test')\n\n\t\tconst results = await writer.generateTest(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\ttype,\n\t\t\tnameCamel,\n\t\t\tparentTestClass,\n\t\t\tnamePascal: namePascal ?? namesUtil.toPascal(nameCamel),\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: results,\n\t\t\thints: [\"run `spruce test` in your skill when you're ready!\"],\n\t\t}\n\t}\n\tprivate async promptForSubDir(resolvedDestination: string) {\n\t\tconst match = await this.ui.prompt({\n\t\t\ttype: 'directory',\n\t\t\tlabel: 'Where should I write this test?',\n\t\t\tisRequired: true,\n\t\t\tdefaultValue: {\n\t\t\t\tpath: diskUtil.resolvePath(resolvedDestination),\n\t\t\t},\n\t\t})\n\n\t\tresolvedDestination = diskUtil.resolvePath(resolvedDestination, match.path)\n\n\t\treturn resolvedDestination\n\t}\n\n\tprivate async promptForParentTestClassAndOptionallyInstallDependencies(\n\t\tcandidates: ParentClassCandidate[],\n\t\tparentTestClass:\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\t\t\t| undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tconst idx = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Which abstract test class do you want to extend?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: '', label: 'AbstractSpruceTest (default)' },\n\t\t\t\t\t...candidates.map((candidate, idx) => ({\n\t\t\t\t\t\tvalue: `${idx}`,\n\t\t\t\t\t\tlabel: candidate.label,\n\t\t\t\t\t})),\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tif (idx !== '' && candidates[+idx]) {\n\t\t\tconst match = candidates[+idx]\n\n\t\t\tif (match) {\n\t\t\t\tawait this.optionallyInstallFeatureBasedOnSelection(match)\n\n\t\t\t\tparentTestClass = this.buildParentClassFromCandidate(\n\t\t\t\t\tmatch,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn parentTestClass\n\t}\n\n\tprivate async optionallyInstallFeatureBasedOnSelection(\n\t\tmatch: ParentClassCandidate\n\t) {\n\t\tif (match.featureCode) {\n\t\t\tconst isInstalled = await this.features.isInstalled(match.featureCode)\n\n\t\t\tif (!isInstalled) {\n\t\t\t\tthis.ui.startLoading(`Installing ${match.name}...`)\n\t\t\t\tawait this.features.install({\n\t\t\t\t\tfeatures: [{ code: match.featureCode as any }],\n\t\t\t\t})\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildParentClassFromCandidate(\n\t\tmatch: ParentClassCandidate,\n\t\tresolvedDestination: string\n\t): {\n\t\tname: string\n\t\tlabel: string\n\t\timportPath: string\n\t\tisDefaultExport: boolean\n\t} {\n\t\treturn {\n\t\t\tname: match.name,\n\t\t\tlabel: match.label,\n\t\t\tisDefaultExport: match.isDefaultExport,\n\t\t\timportPath:\n\t\t\t\tmatch.import ??\n\t\t\t\tdiskUtil.resolveRelativePath(\n\t\t\t\t\tresolvedDestination,\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tmatch.path.replace(pathUtil.extname(match.path), '')\n\t\t\t\t),\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
17
17
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
18
18
|
var _AbstractFeature2 = _interopRequireDefault(require("../AbstractFeature"));
|
|
19
19
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
20
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable no-unreachable */
|
|
21
21
|
var VsCodeFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
22
22
|
(0, _inherits2["default"])(VsCodeFeature, _AbstractFeature);
|
|
23
23
|
var _super = _createSuper(VsCodeFeature);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VsCodeFeature.js","names":["_spruceSkillUtils","require","_AbstractFeature2","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","VsCodeFeature","_AbstractFeature","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","diskUtil","resolvePath","__dirname","path","description","shouldOverwriteWhenChanged","confirmPromptOnFirstWrite","_asyncToGenerator2","_regenerator","mark","_callee","command","wrap","_callee$","_context","prev","next","Service","execute","t0","abrupt","stop","_createClass2","AbstractFeature","exports"],"sources":["../../../src/features/vscode/VsCodeFeature.ts"],"sourcesContent":["/* eslint-disable no-unreachable */\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tvscode: VsCodeFeature\n\t}\n}\n\nexport default class VsCodeFeature extends AbstractFeature {\n\tpublic nameReadable = 'VSCode'\n\tpublic description = 'Create settings and install VSCode extensions'\n\tpublic code: FeatureCode = 'vscode'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t{\n\t\t\tpath: '.vscode/launch.json',\n\t\t\tdescription: 'Sets you up for debugging in Visual Studio Code.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite: 'Want me to setup debugging for you?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/settings.json',\n\t\t\tdescription: 'Ties everything together for optimal team productivity.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/tasks.json',\n\t\t\tdescription:\n\t\t\t\t'command+shift+t to open the Test Reporter, build watch on load, etc.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to start watchers when you start vscode?',\n\t\t},\n\t]\n\n\tpublic isInstalled = async () => {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('which code')\n\t\t} catch (err) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgD,SAAAG,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,aAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,mBAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAJ,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,mBAAAP,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAI,CAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"VsCodeFeature.js","names":["_spruceSkillUtils","require","_AbstractFeature2","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","VsCodeFeature","_AbstractFeature","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","diskUtil","resolvePath","__dirname","path","description","shouldOverwriteWhenChanged","confirmPromptOnFirstWrite","_asyncToGenerator2","_regenerator","mark","_callee","command","wrap","_callee$","_context","prev","next","Service","execute","t0","abrupt","stop","_createClass2","AbstractFeature","exports"],"sources":["../../../src/features/vscode/VsCodeFeature.ts"],"sourcesContent":["/* eslint-disable no-unreachable */\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tvscode: VsCodeFeature\n\t}\n}\n\nexport default class VsCodeFeature extends AbstractFeature {\n\tpublic nameReadable = 'VSCode'\n\tpublic description = 'Create settings and install VSCode extensions'\n\tpublic code: FeatureCode = 'vscode'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t{\n\t\t\tpath: '.vscode/launch.json',\n\t\t\tdescription: 'Sets you up for debugging in Visual Studio Code.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite: 'Want me to setup debugging for you?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/settings.json',\n\t\t\tdescription: 'Ties everything together for optimal team productivity.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/tasks.json',\n\t\t\tdescription:\n\t\t\t\t'command+shift+t to open the Test Reporter, build watch on load, etc.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to start watchers when you start vscode?',\n\t\t},\n\t]\n\n\tpublic isInstalled = async () => {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('which code')\n\t\t} catch (err) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export default class SpyInterface implements GraphicsInterface {
|
|
|
29
29
|
command: string;
|
|
30
30
|
options?: any;
|
|
31
31
|
};
|
|
32
|
-
sendInput(input:
|
|
32
|
+
sendInput(input: Input): Promise<void>;
|
|
33
33
|
renderSection(options: {
|
|
34
34
|
headline: string;
|
|
35
35
|
lines?: string[] | string[];
|
|
@@ -70,3 +70,8 @@ export default class SpyInterface implements GraphicsInterface {
|
|
|
70
70
|
moveCursorTo(x: number, y: number): void;
|
|
71
71
|
clearBelowCursor(): void;
|
|
72
72
|
}
|
|
73
|
+
declare type FilePromptInput = {
|
|
74
|
+
path: string;
|
|
75
|
+
};
|
|
76
|
+
declare type Input = string | string[] | FilePromptInput;
|
|
77
|
+
export {};
|
|
@@ -110,7 +110,7 @@ var SpyInterface = /*#__PURE__*/function () {
|
|
|
110
110
|
while (1) switch (_context.prev = _context.next) {
|
|
111
111
|
case 0:
|
|
112
112
|
this.trackInvocation('sendInput', input);
|
|
113
|
-
this.optionallyRenderLine("Sending input: \"".concat(input.length > 0 ? input : 'ENTER', "\""));
|
|
113
|
+
this.optionallyRenderLine("Sending input: \"".concat(input.path ? input.path : input.length > 0 ? input : 'ENTER', "\""));
|
|
114
114
|
if (!this.waitForEnterResolver) {
|
|
115
115
|
_context.next = 8;
|
|
116
116
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","_this","_classCallCheck2","_defineProperty2","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","_len","arguments","length","strs","Array","_key","optionallyRenderLine","join","undefined","_createClass2","key","value","setTitle","_title","env","SHOULD_RENDER_TEST_LOGS","renderWarning","message","effects","_this$term","trackInvocation","renderHint","_this$term2","concat","command","options","invocations","push","isWaitingForInput","promptResolver","confirmResolver","waitForEnterResolver","reset","clearTimeout","promptTimeout","setError","err","error","getLastInvocation","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","input","resolver","_resolver","_resolver2","wrap","_callee$","_context","prev","next","promptDefaultValue","toLowerCase","Error","abrupt","Promise","resolve","setTimeout","stop","sendInput","_x","apply","renderSection","_this$term3","renderObject","obj","_this$term4","renderError","_this$term5","renderCodeSample","code","_this$term6","renderActionSummary","results","_this$term7","renderHero","_this$term8","renderHeadline","dividerEffects","_this$term9","renderDivider","_this$term10","renderLine","_global$activeTest","_global$activeTest2","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","_renderImage","_callee2","path","_callee2$","_context2","renderImage","_x2","_x3","renderLines","messages","_this$term11","_prompt","_callee3","definition","_this2","msg","_callee3$","_context3","namesUtil","toPascal","type","label","choices","forEach","choice","reject","assert","fail","defaultValue","prompt","_x4","startLoading","stopLoading","_waitForEnter","_callee4","_this3","_callee4$","_context4","waitForEnter","_x5","_waitForInput","_callee5","ttl","checkInterval","loops","lastWriteCount","hasWritten","_callee5$","_context5","testUtil","log","waitForInput","confirm","question","_this4","clear","renderProgressBar","title","updateProgressBar","removeProgressBar","_getCursorPosition","_callee6","_callee6$","_context6","cursorPosition","getCursorPosition","setCursorPosition","pos","moveCursorTo","clearBelowCursor","exports"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\tprivate error?: Error\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tpublic setTitle(_title: string): void {}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic setError(err: Error) {\n\t\tthis.error = err\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.error) {\n\t\t\t\tthrow this.error\n\t\t\t}\n\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","_this","_classCallCheck2","_defineProperty2","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","_len","arguments","length","strs","Array","_key","optionallyRenderLine","join","undefined","_createClass2","key","value","setTitle","_title","env","SHOULD_RENDER_TEST_LOGS","renderWarning","message","effects","_this$term","trackInvocation","renderHint","_this$term2","concat","command","options","invocations","push","isWaitingForInput","promptResolver","confirmResolver","waitForEnterResolver","reset","clearTimeout","promptTimeout","setError","err","error","getLastInvocation","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","input","resolver","_resolver","_resolver2","wrap","_callee$","_context","prev","next","path","promptDefaultValue","toLowerCase","Error","abrupt","Promise","resolve","setTimeout","stop","sendInput","_x","apply","renderSection","_this$term3","renderObject","obj","_this$term4","renderError","_this$term5","renderCodeSample","code","_this$term6","renderActionSummary","results","_this$term7","renderHero","_this$term8","renderHeadline","dividerEffects","_this$term9","renderDivider","_this$term10","renderLine","_global$activeTest","_global$activeTest2","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","_renderImage","_callee2","_callee2$","_context2","renderImage","_x2","_x3","renderLines","messages","_this$term11","_prompt","_callee3","definition","_this2","msg","_callee3$","_context3","namesUtil","toPascal","type","label","choices","forEach","choice","reject","assert","fail","defaultValue","prompt","_x4","startLoading","stopLoading","_waitForEnter","_callee4","_this3","_callee4$","_context4","waitForEnter","_x5","_waitForInput","_callee5","ttl","checkInterval","loops","lastWriteCount","hasWritten","_callee5$","_context5","testUtil","log","waitForInput","confirm","question","_this4","clear","renderProgressBar","title","updateProgressBar","removeProgressBar","_getCursorPosition","_callee6","_callee6$","_context6","cursorPosition","getCursorPosition","setCursorPosition","pos","moveCursorTo","clearBelowCursor","exports"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\tprivate error?: Error\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tpublic setTitle(_title: string): void {}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic setError(err: Error) {\n\t\tthis.error = err\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: Input): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${\n\t\t\t\t(input as FilePromptInput).path\n\t\t\t\t\t? (input as FilePromptInput).path\n\t\t\t\t\t: (input as string).length > 0\n\t\t\t\t\t? input\n\t\t\t\t\t: 'ENTER'\n\t\t\t}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\t(input as string).length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.error) {\n\t\t\t\tthrow this.error\n\t\t\t}\n\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n\ntype FilePromptInput = {\n\tpath: string\n}\n\ntype Input = string | string[] | FilePromptInput\n"],"mappings":"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"}
|
|
@@ -38,7 +38,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
38
38
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
39
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
40
40
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
41
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
41
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } // @ts-ignore
|
|
42
|
+
// @ts-ignore No definition available
|
|
43
|
+
// @ts-ignore No definition available
|
|
42
44
|
var terminalImage = require('terminal-image');
|
|
43
45
|
var fieldCount = 0;
|
|
44
46
|
function generateInquirerFieldName() {
|