@grafana/create-plugin 0.0.1
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/.eslintrc +6 -0
- package/.github/workflows/create-release.yml +49 -0
- package/.github/workflows/npm-bump-version.yml +51 -0
- package/.github/workflows/test.yml +31 -0
- package/.prettierrc +10 -0
- package/CONTRIBUTING.md +42 -0
- package/README.md +143 -0
- package/dist/bin/run.js +17 -0
- package/dist/commands/generate.command.js +56 -0
- package/dist/commands/generate.plopfile.js +119 -0
- package/dist/commands/index.js +19 -0
- package/dist/commands/migrate.command.js +133 -0
- package/dist/commands/update.command.js +101 -0
- package/dist/constants.js +74 -0
- package/dist/utils/tests/utils.files.test.js +30 -0
- package/dist/utils/tests/utils.handlebars.test.js +26 -0
- package/dist/utils/tests/utils.npm.test.js +138 -0
- package/dist/utils/tests/utils.plugin.test.js +20 -0
- package/dist/utils/tests/utils.templates.test.js +32 -0
- package/dist/utils/utils.console.js +41 -0
- package/dist/utils/utils.files.js +61 -0
- package/dist/utils/utils.handlebars.js +73 -0
- package/dist/utils/utils.npm.js +162 -0
- package/dist/utils/utils.plugin.js +14 -0
- package/dist/utils/utils.templates.js +77 -0
- package/docs/example.mp4 +0 -0
- package/jest.config.js +20 -0
- package/package.json +69 -0
- package/src/bin/run.ts +15 -0
- package/src/commands/generate.command.ts +15 -0
- package/src/commands/generate.plopfile.ts +151 -0
- package/src/commands/index.ts +3 -0
- package/src/commands/migrate.command.ts +99 -0
- package/src/commands/update.command.ts +66 -0
- package/src/constants.ts +99 -0
- package/src/utils/tests/utils.files.test.ts +41 -0
- package/src/utils/tests/utils.handlebars.test.ts +35 -0
- package/src/utils/tests/utils.npm.test.ts +193 -0
- package/src/utils/tests/utils.plugin.test.ts +22 -0
- package/src/utils/tests/utils.templates.test.ts +44 -0
- package/src/utils/utils.console.ts +41 -0
- package/src/utils/utils.files.ts +65 -0
- package/src/utils/utils.handlebars.ts +47 -0
- package/src/utils/utils.npm.ts +189 -0
- package/src/utils/utils.plugin.ts +9 -0
- package/src/utils/utils.templates.ts +76 -0
- package/templates/_partials/backend-getting-started.md +20 -0
- package/templates/_partials/frontend-getting-started.md +59 -0
- package/templates/app/README.md +20 -0
- package/templates/app/src/components/App/App.test.tsx +32 -0
- package/templates/app/src/components/App/App.tsx +8 -0
- package/templates/app/src/components/App/index.tsx +1 -0
- package/templates/app/src/components/AppConfig/AppConfig.test.tsx +51 -0
- package/templates/app/src/components/AppConfig/AppConfig.tsx +92 -0
- package/templates/app/src/components/AppConfig/index.tsx +1 -0
- package/templates/app/src/module.ts +12 -0
- package/templates/app/src/plugin.json +33 -0
- package/templates/backend/Magefile.go +12 -0
- package/templates/backend/go.mod +5 -0
- package/templates/backend/go.sum +568 -0
- package/templates/backend/pkg/main.go +24 -0
- package/templates/backend/pkg/plugin/datasource.go +111 -0
- package/templates/backend/pkg/plugin/datasource_test.go +28 -0
- package/templates/common/.config/.eslintrc +12 -0
- package/templates/common/.config/.prettierrc.js +16 -0
- package/templates/common/.config/Dockerfile +15 -0
- package/templates/common/.config/README.md +115 -0
- package/templates/common/.config/jest-setup.js +24 -0
- package/templates/common/.config/jest.config.js +31 -0
- package/templates/common/.config/tsconfig.json +17 -0
- package/templates/common/.config/types/custom.d.ts +37 -0
- package/templates/common/.config/webpack/constants.ts +3 -0
- package/templates/common/.config/webpack/tsconfig.webpack.json +9 -0
- package/templates/common/.config/webpack/utils.ts +17 -0
- package/templates/common/.config/webpack/webpack.config.ts +187 -0
- package/templates/common/.eslintrc +3 -0
- package/templates/common/.nvmrc +1 -0
- package/templates/common/.prettierrc.js +4 -0
- package/templates/common/CHANGELOG.md +5 -0
- package/templates/common/LICENSE +201 -0
- package/templates/common/cypress/integration/01-smoke.spec.ts +10 -0
- package/templates/common/docker-compose.yaml +14 -0
- package/templates/common/jest-setup.js +2 -0
- package/templates/common/jest.config.js +4 -0
- package/templates/common/package.json +67 -0
- package/templates/common/src/README.md +5 -0
- package/templates/common/src/img/logo.svg +1 -0
- package/templates/common/tsconfig.json +3 -0
- package/templates/datasource/README.md +20 -0
- package/templates/datasource/src/components/ConfigEditor.tsx +83 -0
- package/templates/datasource/src/components/QueryEditor.tsx +50 -0
- package/templates/datasource/src/datasource.ts +46 -0
- package/templates/datasource/src/module.ts +9 -0
- package/templates/datasource/src/plugin.json +37 -0
- package/templates/datasource/src/types.ts +24 -0
- package/templates/github/ci/.github/workflows/ci.yml +76 -0
- package/templates/github/ci/.github/workflows/release.yml +165 -0
- package/templates/github/is-compatible/.github/workflows/is-compatible.yml +17 -0
- package/templates/panel/README.md +22 -0
- package/templates/panel/src/components/SimplePanel.tsx +62 -0
- package/templates/panel/src/module.test.ts +6 -0
- package/templates/panel/src/module.ts +40 -0
- package/templates/panel/src/plugin.json +33 -0
- package/templates/panel/src/types.ts +7 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.__esModule = true;
|
|
39
|
+
exports.migrate = void 0;
|
|
40
|
+
var constants_1 = require("../constants");
|
|
41
|
+
var utils_console_1 = require("../utils/utils.console");
|
|
42
|
+
var utils_templates_1 = require("../utils/utils.templates");
|
|
43
|
+
var utils_files_1 = require("../utils/utils.files");
|
|
44
|
+
var utils_npm_1 = require("../utils/utils.npm");
|
|
45
|
+
var migrate = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
+
var filesToExist, filesToRemove, dependenciesToRemove, devDependenciesToRemove, error_1;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
_a.trys.push([0, 11, , 12]);
|
|
51
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.migrationCommandWarning);
|
|
52
|
+
return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.overrideFilesPrompt + '\n' + (0, utils_console_1.displayArrayAsList)(constants_1.MIGRATION_CONFIG.filesToOverride))];
|
|
53
|
+
case 1:
|
|
54
|
+
if (_a.sent()) {
|
|
55
|
+
(0, utils_templates_1.compileTemplateFiles)(constants_1.MIGRATION_CONFIG.filesToOverride, (0, utils_templates_1.getTemplateData)());
|
|
56
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.overrideFilesSuccess);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.overrideFilesAborted);
|
|
60
|
+
process.exit(0);
|
|
61
|
+
}
|
|
62
|
+
filesToExist = (0, utils_files_1.getOnlyNotExistingInCwd)(constants_1.MIGRATION_CONFIG.filesToExist);
|
|
63
|
+
if (!filesToExist.length) return [3, 3];
|
|
64
|
+
return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.filesToExistPrompt + '\n' + (0, utils_console_1.displayArrayAsList)(filesToExist))];
|
|
65
|
+
case 2:
|
|
66
|
+
if (_a.sent()) {
|
|
67
|
+
(0, utils_templates_1.compileTemplateFiles)(filesToExist, (0, utils_templates_1.getTemplateData)());
|
|
68
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.filesToExistSuccess);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.filesToExistAborted);
|
|
72
|
+
}
|
|
73
|
+
_a.label = 3;
|
|
74
|
+
case 3:
|
|
75
|
+
filesToRemove = (0, utils_files_1.getOnlyExistingInCwd)(constants_1.MIGRATION_CONFIG.filesToRemove);
|
|
76
|
+
if (!filesToRemove.length) return [3, 5];
|
|
77
|
+
return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.removeFilesPrompt + '\n' + (0, utils_console_1.displayArrayAsList)(filesToRemove))];
|
|
78
|
+
case 4:
|
|
79
|
+
if (_a.sent()) {
|
|
80
|
+
(0, utils_files_1.removeFilesInCwd)(filesToRemove);
|
|
81
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.removeFilesSuccess);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.removeFilesAborted);
|
|
85
|
+
}
|
|
86
|
+
_a.label = 5;
|
|
87
|
+
case 5:
|
|
88
|
+
if (!(0, utils_npm_1.hasNpmDependenciesToUpdate)()) return [3, 7];
|
|
89
|
+
return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.updateNpmDependenciesPrompt + (0, utils_npm_1.getPackageJsonUpdatesAsText)())];
|
|
90
|
+
case 6:
|
|
91
|
+
if (_a.sent()) {
|
|
92
|
+
(0, utils_npm_1.updatePackageJson)();
|
|
93
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.updateNpmDependenciesSuccess);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.updateNpmDependenciesAborted);
|
|
97
|
+
}
|
|
98
|
+
_a.label = 7;
|
|
99
|
+
case 7:
|
|
100
|
+
dependenciesToRemove = (0, utils_npm_1.getRemovableNpmDependencies)(constants_1.MIGRATION_CONFIG.npmDependenciesToRemove);
|
|
101
|
+
devDependenciesToRemove = (0, utils_npm_1.getRemovableNpmDependencies)(constants_1.MIGRATION_CONFIG.devNpmDependenciesToRemove);
|
|
102
|
+
if (!dependenciesToRemove.length) return [3, 9];
|
|
103
|
+
return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.removeNpmDependenciesPrompt + '\n' + (0, utils_console_1.displayArrayAsList)(dependenciesToRemove))];
|
|
104
|
+
case 8:
|
|
105
|
+
if (_a.sent()) {
|
|
106
|
+
(0, utils_npm_1.removeNpmDependencies)(dependenciesToRemove);
|
|
107
|
+
(0, utils_npm_1.removeNpmDependencies)(devDependenciesToRemove, { devOnly: true });
|
|
108
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.removeNpmDependenciesSuccess);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.removeNpmDependenciesAborted);
|
|
112
|
+
}
|
|
113
|
+
_a.label = 9;
|
|
114
|
+
case 9: return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.updateNpmScriptsPrompt)];
|
|
115
|
+
case 10:
|
|
116
|
+
if (_a.sent()) {
|
|
117
|
+
(0, utils_npm_1.updateNpmScripts)();
|
|
118
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.updateNpmScriptsSuccess);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.updateNpmScriptsAborted);
|
|
122
|
+
}
|
|
123
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.migrationCommandSuccess);
|
|
124
|
+
return [3, 12];
|
|
125
|
+
case 11:
|
|
126
|
+
error_1 = _a.sent();
|
|
127
|
+
console.error(error_1);
|
|
128
|
+
return [3, 12];
|
|
129
|
+
case 12: return [2];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}); };
|
|
133
|
+
exports.migrate = migrate;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.__esModule = true;
|
|
39
|
+
exports.update = void 0;
|
|
40
|
+
var constants_1 = require("../constants");
|
|
41
|
+
var utils_templates_1 = require("../utils/utils.templates");
|
|
42
|
+
var utils_console_1 = require("../utils/utils.console");
|
|
43
|
+
var utils_npm_1 = require("../utils/utils.npm");
|
|
44
|
+
var update = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
45
|
+
var PROMPT_CHOICES, shouldUpdateDeps, error_1;
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
_a.trys.push([0, 5, , 6]);
|
|
50
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.updateCommandWarning);
|
|
51
|
+
return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.overrideFilesPrompt)];
|
|
52
|
+
case 1:
|
|
53
|
+
if (_a.sent()) {
|
|
54
|
+
(0, utils_templates_1.compileTemplateFiles)(constants_1.UDPATE_CONFIG.filesToOverride, (0, utils_templates_1.getTemplateData)());
|
|
55
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.overrideFilesSuccess);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.overrideFilesAborted);
|
|
59
|
+
process.exit(0);
|
|
60
|
+
}
|
|
61
|
+
if (!(0, utils_npm_1.hasNpmDependenciesToUpdate)()) return [3, 3];
|
|
62
|
+
PROMPT_CHOICES = {
|
|
63
|
+
ALL: 'Yes, all of them',
|
|
64
|
+
ONLY_OUTDATED: 'Yes, but only the outdated ones',
|
|
65
|
+
NONE: 'No'
|
|
66
|
+
};
|
|
67
|
+
return [4, (0, utils_console_1.selectPrompt)(constants_1.TEXT.updateNpmDependenciesPrompt + (0, utils_npm_1.getPackageJsonUpdatesAsText)(), [
|
|
68
|
+
PROMPT_CHOICES.ALL,
|
|
69
|
+
PROMPT_CHOICES.ONLY_OUTDATED,
|
|
70
|
+
PROMPT_CHOICES.NONE,
|
|
71
|
+
])];
|
|
72
|
+
case 2:
|
|
73
|
+
shouldUpdateDeps = _a.sent();
|
|
74
|
+
if (shouldUpdateDeps && shouldUpdateDeps !== PROMPT_CHOICES.NONE) {
|
|
75
|
+
(0, utils_npm_1.updatePackageJson)({ onlyOutdated: shouldUpdateDeps === PROMPT_CHOICES.ONLY_OUTDATED });
|
|
76
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.updateNpmDependenciesSuccess);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.updateNpmDependenciesAborted);
|
|
80
|
+
}
|
|
81
|
+
_a.label = 3;
|
|
82
|
+
case 3: return [4, (0, utils_console_1.confirmPrompt)(constants_1.TEXT.updateNpmScriptsPrompt)];
|
|
83
|
+
case 4:
|
|
84
|
+
if (_a.sent()) {
|
|
85
|
+
(0, utils_npm_1.updateNpmScripts)();
|
|
86
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.updateNpmScriptsSuccess);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
(0, utils_console_1.printMessage)(constants_1.TEXT.updateNpmScriptsAborted);
|
|
90
|
+
}
|
|
91
|
+
(0, utils_console_1.printSuccessMessage)(constants_1.TEXT.updateCommandSuccess);
|
|
92
|
+
return [3, 6];
|
|
93
|
+
case 5:
|
|
94
|
+
error_1 = _a.sent();
|
|
95
|
+
console.error(error_1);
|
|
96
|
+
return [3, 6];
|
|
97
|
+
case 6: return [2];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}); };
|
|
101
|
+
exports.update = update;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.TEXT = exports.UDPATE_CONFIG = exports.MIGRATION_CONFIG = exports.EXTRA_TEMPLATE_VARIABLES = exports.PLUGIN_TYPES = exports.TEMPLATE_PATHS = exports.PARTIALS_DIR = exports.TEMPLATES_DIR = exports.DIST_DIR = exports.EXPORT_PATH_PREFIX = exports.DEV_EXPORT_DIR = exports.IS_DEV = void 0;
|
|
7
|
+
var path_1 = __importDefault(require("path"));
|
|
8
|
+
exports.IS_DEV = process.env.CREATE_PLUGIN_DEV !== undefined;
|
|
9
|
+
exports.DEV_EXPORT_DIR = path_1["default"].join(__dirname, '..', 'generated');
|
|
10
|
+
exports.EXPORT_PATH_PREFIX = exports.IS_DEV ? exports.DEV_EXPORT_DIR : process.cwd();
|
|
11
|
+
exports.DIST_DIR = path_1["default"].join(__dirname, 'dist');
|
|
12
|
+
exports.TEMPLATES_DIR = path_1["default"].join(__dirname, '..', 'templates');
|
|
13
|
+
exports.PARTIALS_DIR = path_1["default"].join(exports.TEMPLATES_DIR, '_partials');
|
|
14
|
+
exports.TEMPLATE_PATHS = {
|
|
15
|
+
app: path_1["default"].join(exports.TEMPLATES_DIR, 'app'),
|
|
16
|
+
backend: path_1["default"].join(exports.TEMPLATES_DIR, 'backend'),
|
|
17
|
+
common: path_1["default"].join(exports.TEMPLATES_DIR, 'common'),
|
|
18
|
+
datasource: path_1["default"].join(exports.TEMPLATES_DIR, 'datasource'),
|
|
19
|
+
panel: path_1["default"].join(exports.TEMPLATES_DIR, 'panel'),
|
|
20
|
+
ciWorkflows: path_1["default"].join(exports.TEMPLATES_DIR, 'github', 'ci'),
|
|
21
|
+
isCompatibleWorkflow: path_1["default"].join(exports.TEMPLATES_DIR, 'github', 'is-compatible')
|
|
22
|
+
};
|
|
23
|
+
var PLUGIN_TYPES;
|
|
24
|
+
(function (PLUGIN_TYPES) {
|
|
25
|
+
PLUGIN_TYPES["app"] = "app";
|
|
26
|
+
PLUGIN_TYPES["panel"] = "panel";
|
|
27
|
+
PLUGIN_TYPES["datasource"] = "datasource";
|
|
28
|
+
})(PLUGIN_TYPES = exports.PLUGIN_TYPES || (exports.PLUGIN_TYPES = {}));
|
|
29
|
+
exports.EXTRA_TEMPLATE_VARIABLES = {
|
|
30
|
+
grafanaVersion: '9.1.2'
|
|
31
|
+
};
|
|
32
|
+
exports.MIGRATION_CONFIG = {
|
|
33
|
+
filesToOverride: [
|
|
34
|
+
'.config/',
|
|
35
|
+
'.eslintrc',
|
|
36
|
+
'.nvmrc',
|
|
37
|
+
'.prettierrc.js',
|
|
38
|
+
'docker-compose.yaml',
|
|
39
|
+
'jest-setup.js',
|
|
40
|
+
'jest.config.js',
|
|
41
|
+
'tsconfig.json',
|
|
42
|
+
],
|
|
43
|
+
filesToExist: ['CHANGELOG.md'],
|
|
44
|
+
filesToRemove: ['Dockerfile', 'docker-compose.yml', 'webpack/', '.webpack/', '.prettierrc'],
|
|
45
|
+
npmDependenciesToRemove: ['ts-loader', 'babel-loader', '@grafana/toolkit'],
|
|
46
|
+
devNpmDependenciesToRemove: ['@grafana/toolkit', '@grafana/runtime', '@grafana/data', '@grafana/ui']
|
|
47
|
+
};
|
|
48
|
+
exports.UDPATE_CONFIG = {
|
|
49
|
+
filesToOverride: ['.config/']
|
|
50
|
+
};
|
|
51
|
+
exports.TEXT = {
|
|
52
|
+
overrideFilesPrompt: '**The following files will be overriden, would you like to continue?**',
|
|
53
|
+
overrideFilesSuccess: 'Configuration files updated successfully.',
|
|
54
|
+
overrideFilesAborted: 'Migration aborted.',
|
|
55
|
+
filesToExistPrompt: '**The following files are necessary for the project to work, can we scaffold them for you?**',
|
|
56
|
+
filesToExistSuccess: 'Extra necessaryily files created successfully.',
|
|
57
|
+
filesToExistAborted: 'No extra necessary files were scaffolded.',
|
|
58
|
+
removeFilesPrompt: '**The following files are possibly not needed for the project anymore, are you ok with us removing them?**',
|
|
59
|
+
removeFilesSuccess: 'Unnecessary files have been removed successfully.',
|
|
60
|
+
removeFilesAborted: 'No unnecessary files were deleted.',
|
|
61
|
+
updateNpmDependenciesPrompt: '**Would you like to update the following dependencies in the `package.json?`**',
|
|
62
|
+
updateNpmDependenciesSuccess: 'Successfully updated the NPM dependencies.',
|
|
63
|
+
updateNpmDependenciesAborted: 'No NPM dependencies have been updated.',
|
|
64
|
+
removeNpmDependenciesPrompt: '**Would you like to remove the following possibly unnecessary NPM dependencies?**',
|
|
65
|
+
removeNpmDependenciesSuccess: 'Unnecessary NPM dependencies removed successfully.',
|
|
66
|
+
removeNpmDependenciesAborted: 'No NPM dependencies have been removed.',
|
|
67
|
+
updateNpmScriptsPrompt: '**Would you like to update the `{ scripts }` in your `package.json`?**',
|
|
68
|
+
updateNpmScriptsSuccess: 'NPM scripts updated successfully.',
|
|
69
|
+
updateNpmScriptsAborted: 'No NPM scripts have been added or updated.',
|
|
70
|
+
migrationCommandWarning: '**⚠️ Warning!**\nThis is going to change files in your current project to make it up-to-date with the latest plugin configuration.\nPlease make sure that you have backed up your changes.',
|
|
71
|
+
migrationCommandSuccess: '**Done.**\nIf you have any questions please open an issue/discussion in https://github.com/grafana/create-plugin.',
|
|
72
|
+
updateCommandWarning: '**⚠️ Warning!**\nThis is going to update files under the `.config/` folder.\nMake sure to commit your changes before running this script.',
|
|
73
|
+
updateCommandSuccess: '**Done.**\nIf you have any questions please open an issue/discussion in https://github.com/grafana/create-plugin.'
|
|
74
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var constants_1 = require("../../constants");
|
|
4
|
+
var utils_files_1 = require("../utils.files");
|
|
5
|
+
describe('Utils/Files', function () {
|
|
6
|
+
describe('filterOutCommonFiles()', function () {
|
|
7
|
+
test('should remove common template files from the list that have a plugin-specific override', function () {
|
|
8
|
+
expect((0, utils_files_1.filterOutCommonFiles)([
|
|
9
|
+
"".concat(constants_1.TEMPLATE_PATHS.common, "/.config/.eslintrc"),
|
|
10
|
+
"".concat(constants_1.TEMPLATE_PATHS.common, "/.config/.gitignore"),
|
|
11
|
+
"".concat(constants_1.TEMPLATE_PATHS.common, "/.config/package.json"),
|
|
12
|
+
"".concat(constants_1.TEMPLATE_PATHS.app, "/.config/package.json"),
|
|
13
|
+
"".concat(constants_1.TEMPLATE_PATHS.app, "/.config/README.md"),
|
|
14
|
+
], constants_1.PLUGIN_TYPES.app)).toEqual([
|
|
15
|
+
"".concat(constants_1.TEMPLATE_PATHS.common, "/.config/.eslintrc"),
|
|
16
|
+
"".concat(constants_1.TEMPLATE_PATHS.common, "/.config/.gitignore"),
|
|
17
|
+
"".concat(constants_1.TEMPLATE_PATHS.app, "/.config/package.json"),
|
|
18
|
+
"".concat(constants_1.TEMPLATE_PATHS.app, "/.config/README.md"),
|
|
19
|
+
]);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('isFile()', function () {
|
|
23
|
+
test('should return TRUE if the path is pointing to a file', function () {
|
|
24
|
+
expect((0, utils_files_1.isFile)("".concat(constants_1.TEMPLATE_PATHS.common, "/LICENSE"))).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
test('should return FALSE if the path is pointing to a directory', function () {
|
|
27
|
+
expect((0, utils_files_1.isFile)(constants_1.TEMPLATE_PATHS.common)).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var constants_1 = require("../../constants");
|
|
4
|
+
var utils_handlebars_1 = require("../utils.handlebars");
|
|
5
|
+
describe('Handlebars helpers', function () {
|
|
6
|
+
describe('normalize id', function () {
|
|
7
|
+
test.each([constants_1.PLUGIN_TYPES.app, constants_1.PLUGIN_TYPES.datasource, constants_1.PLUGIN_TYPES.panel])('should return the id with the type appended', function (type) {
|
|
8
|
+
var pluginName = 'my-plugin';
|
|
9
|
+
var orgName = 'my-org';
|
|
10
|
+
var actual = (0, utils_handlebars_1.normalizeId)(pluginName, orgName, type);
|
|
11
|
+
expect(actual).toEqual("my-org-my-plugin-".concat(type));
|
|
12
|
+
});
|
|
13
|
+
test.each([constants_1.PLUGIN_TYPES.app, constants_1.PLUGIN_TYPES.datasource, constants_1.PLUGIN_TYPES.panel])('should not duplicate the type if it is already present', function (type) {
|
|
14
|
+
var pluginName = "my-plugin-".concat(type);
|
|
15
|
+
var orgName = 'my-org';
|
|
16
|
+
var actual = (0, utils_handlebars_1.normalizeId)(pluginName, orgName, type);
|
|
17
|
+
expect(actual).toEqual("my-org-my-plugin-".concat(type));
|
|
18
|
+
});
|
|
19
|
+
test.each([constants_1.PLUGIN_TYPES.app, constants_1.PLUGIN_TYPES.datasource, constants_1.PLUGIN_TYPES.panel])('should not duplicate the type if it is already present (no dash before type)', function (type) {
|
|
20
|
+
var pluginName = "my-plugin".concat(type);
|
|
21
|
+
var orgName = 'my-org';
|
|
22
|
+
var actual = (0, utils_handlebars_1.normalizeId)(pluginName, orgName, type);
|
|
23
|
+
expect(actual).toEqual("my-org-my-plugin-".concat(type));
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var utils_npm_1 = require("../utils.npm");
|
|
4
|
+
describe('Utils / NPM', function () {
|
|
5
|
+
describe('getDepenciesToBeUpdated()', function () {
|
|
6
|
+
test('it should return a summary of dependencies to be updated', function () {
|
|
7
|
+
expect((0, utils_npm_1.getUpdatableNpmDependencies)({
|
|
8
|
+
'@grafana/tsconfig': '^1.2.0-rc1',
|
|
9
|
+
'@swc/core': '^1.2.162',
|
|
10
|
+
'@types/minimist': '^1.6.2',
|
|
11
|
+
'@types/mkdirp': '^1.0.2',
|
|
12
|
+
'@types/semver': '^7.3.9',
|
|
13
|
+
'node-plop': '0.26.3'
|
|
14
|
+
}, {
|
|
15
|
+
'@grafana/tsconfig': '^2.0.0',
|
|
16
|
+
'@swc/core': '^1.2.162',
|
|
17
|
+
'@types/minimist': '^1.4.2',
|
|
18
|
+
'@types/mkdirp': '^1.0.2',
|
|
19
|
+
'@types/semver': '^7.3.9'
|
|
20
|
+
})).toEqual({
|
|
21
|
+
'@grafana/tsconfig': { prev: '^1.2.0-rc1', next: '^2.0.0' },
|
|
22
|
+
'@types/minimist': { prev: '^1.6.2', next: '^1.4.2' }
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
test('it should be possible to only update dependencies that are outdated', function () {
|
|
26
|
+
expect((0, utils_npm_1.getUpdatableNpmDependencies)({
|
|
27
|
+
'@grafana/tsconfig': '^1.2.0-rc1',
|
|
28
|
+
'@swc/core': '^1.2.162',
|
|
29
|
+
'@types/minimist': '^1.6.2',
|
|
30
|
+
'@types/mkdirp': '^1.0.2',
|
|
31
|
+
'@types/semver': '^7.3.9',
|
|
32
|
+
'node-plop': '0.26.3'
|
|
33
|
+
}, {
|
|
34
|
+
'@grafana/tsconfig': '^2.0.0',
|
|
35
|
+
'@swc/core': '^1.2.162',
|
|
36
|
+
'@types/minimist': '^1.4.2',
|
|
37
|
+
'@types/mkdirp': '^1.0.2',
|
|
38
|
+
'@types/semver': '^7.3.9'
|
|
39
|
+
}, { onlyOutdated: true })).toEqual({
|
|
40
|
+
'@grafana/tsconfig': { prev: '^1.2.0-rc1', next: '^2.0.0' }
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
test('it should be able to override with using release channels like "latest"', function () {
|
|
44
|
+
expect((0, utils_npm_1.getUpdatableNpmDependencies)({
|
|
45
|
+
'@grafana/tsconfig': 'latest',
|
|
46
|
+
'@swc/core': '^1.2.162',
|
|
47
|
+
'@types/minimist': '^1.6.2',
|
|
48
|
+
'@types/mkdirp': '^1.0.2',
|
|
49
|
+
'@types/semver': '^7.3.9',
|
|
50
|
+
'node-plop': '0.26.3'
|
|
51
|
+
}, {
|
|
52
|
+
'@grafana/tsconfig': '^2.0.0',
|
|
53
|
+
'@swc/core': 'latest',
|
|
54
|
+
'@types/minimist': '^1.4.2',
|
|
55
|
+
'@types/mkdirp': '^1.0.2',
|
|
56
|
+
'@types/semver': '^7.3.9'
|
|
57
|
+
})).toEqual({
|
|
58
|
+
'@grafana/tsconfig': { prev: 'latest', next: '^2.0.0' },
|
|
59
|
+
'@swc/core': { prev: '^1.2.162', next: 'latest' },
|
|
60
|
+
'@types/minimist': { prev: '^1.6.2', next: '^1.4.2' }
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('updateDependencies()', function () {
|
|
65
|
+
test('it should update existing dependencies', function () {
|
|
66
|
+
expect((0, utils_npm_1.updateNpmDependencies)({
|
|
67
|
+
'@grafana/tsconfig': '^1.2.0-rc1',
|
|
68
|
+
'@swc/core': '^1.2.162',
|
|
69
|
+
'@types/minimist': '^1.2.2',
|
|
70
|
+
'@types/mkdirp': '^1.0.2',
|
|
71
|
+
'@types/semver': '^7.3.9',
|
|
72
|
+
'node-plop': '0.26.3'
|
|
73
|
+
}, {
|
|
74
|
+
'@grafana/tsconfig': { prev: '^1.2.0-rc1', next: '^2.0.0' },
|
|
75
|
+
'@types/minimist': { prev: '^1.2.2', next: '^1.4.2' }
|
|
76
|
+
})).toEqual({
|
|
77
|
+
'@grafana/tsconfig': '^2.0.0',
|
|
78
|
+
'@swc/core': '^1.2.162',
|
|
79
|
+
'@types/minimist': '^1.4.2',
|
|
80
|
+
'@types/mkdirp': '^1.0.2',
|
|
81
|
+
'@types/semver': '^7.3.9',
|
|
82
|
+
'node-plop': '0.26.3'
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
test('it should add new depdendencies', function () {
|
|
86
|
+
expect((0, utils_npm_1.updateNpmDependencies)({
|
|
87
|
+
'@grafana/tsconfig': '^1.2.0-rc1',
|
|
88
|
+
'@swc/core': '^1.2.162'
|
|
89
|
+
}, {
|
|
90
|
+
'@grafana/tsconfig': { prev: '^1.2.0-rc1', next: '^1.2.0-rc1' },
|
|
91
|
+
'@swc/core': { prev: '^1.2.162', next: '^1.2.162' },
|
|
92
|
+
'@types/minimist': { prev: null, next: '^1.4.2' }
|
|
93
|
+
})).toEqual({
|
|
94
|
+
'@grafana/tsconfig': '^1.2.0-rc1',
|
|
95
|
+
'@swc/core': '^1.2.162',
|
|
96
|
+
'@types/minimist': '^1.4.2'
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
test('it should override `latest` and other release channels', function () {
|
|
100
|
+
expect((0, utils_npm_1.updateNpmDependencies)({
|
|
101
|
+
'@grafana/tsconfig': 'latest',
|
|
102
|
+
'@swc/core': '^1.2.162',
|
|
103
|
+
'@types/minimist': '^1.2.2',
|
|
104
|
+
'@types/mkdirp': '^1.0.2',
|
|
105
|
+
'@types/semver': '^8.0.0',
|
|
106
|
+
'node-plop': '0.26.3'
|
|
107
|
+
}, {
|
|
108
|
+
'@grafana/tsconfig': { prev: 'latest', next: '^2.0.0' }
|
|
109
|
+
})).toEqual({
|
|
110
|
+
'@grafana/tsconfig': '^2.0.0',
|
|
111
|
+
'@swc/core': '^1.2.162',
|
|
112
|
+
'@types/minimist': '^1.2.2',
|
|
113
|
+
'@types/mkdirp': '^1.0.2',
|
|
114
|
+
'@types/semver': '^8.0.0',
|
|
115
|
+
'node-plop': '0.26.3'
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
test('it should be able to override with using release channels like "latest"', function () {
|
|
119
|
+
expect((0, utils_npm_1.updateNpmDependencies)({
|
|
120
|
+
'@grafana/tsconfig': '^2.0.0',
|
|
121
|
+
'@swc/core': '^1.2.162',
|
|
122
|
+
'@types/minimist': '^1.2.2',
|
|
123
|
+
'@types/mkdirp': '^1.0.2',
|
|
124
|
+
'@types/semver': '^8.0.0',
|
|
125
|
+
'node-plop': '0.26.3'
|
|
126
|
+
}, {
|
|
127
|
+
'@grafana/tsconfig': { prev: '', next: 'latest' }
|
|
128
|
+
})).toEqual({
|
|
129
|
+
'@grafana/tsconfig': 'latest',
|
|
130
|
+
'@swc/core': '^1.2.162',
|
|
131
|
+
'@types/minimist': '^1.2.2',
|
|
132
|
+
'@types/mkdirp': '^1.0.2',
|
|
133
|
+
'@types/semver': '^8.0.0',
|
|
134
|
+
'node-plop': '0.26.3'
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var constants_1 = require("../../constants");
|
|
4
|
+
var utils_plugin_1 = require("../utils.plugin");
|
|
5
|
+
describe('Utils / Plugins', function () {
|
|
6
|
+
describe('getPluginJson()', function () {
|
|
7
|
+
test('should return the parsed plugin JSON if the file exits', function () {
|
|
8
|
+
var srcDir = "".concat(constants_1.TEMPLATE_PATHS.app, "/src");
|
|
9
|
+
var pluginJson = (0, utils_plugin_1.getPluginJson)(srcDir);
|
|
10
|
+
expect(pluginJson).toBeDefined();
|
|
11
|
+
expect(pluginJson.type).toBe('app');
|
|
12
|
+
});
|
|
13
|
+
test('should throw an error if the plugin.json is not found', function () {
|
|
14
|
+
var srcDir = "".concat(constants_1.TEMPLATE_PATHS.app, "/src/unknown");
|
|
15
|
+
expect(function () {
|
|
16
|
+
(0, utils_plugin_1.getPluginJson)(srcDir);
|
|
17
|
+
}).toThrow();
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var constants_1 = require("../../constants");
|
|
4
|
+
var utils_templates_1 = require("../utils.templates");
|
|
5
|
+
describe('Utils / Templates', function () {
|
|
6
|
+
describe('getTemplateFiles()', function () {
|
|
7
|
+
test('should return with a list of files', function () {
|
|
8
|
+
expect((0, utils_templates_1.getTemplateFiles)(constants_1.PLUGIN_TYPES.app).length).toBeGreaterThan(0);
|
|
9
|
+
});
|
|
10
|
+
test('should be possible to filter templates by a sub-folder', function () {
|
|
11
|
+
var templateFiles = (0, utils_templates_1.getTemplateFiles)(constants_1.PLUGIN_TYPES.app, '.config/types');
|
|
12
|
+
expect(templateFiles.length).toBeGreaterThan(0);
|
|
13
|
+
expect(templateFiles.find(function (t) { return t.includes('custom.d.ts'); })).not.toBeUndefined();
|
|
14
|
+
expect(templateFiles.find(function (t) { return t.includes('Dockerfile'); })).toBeUndefined();
|
|
15
|
+
});
|
|
16
|
+
test('should return an empty array when filtering by a non-existing sub-folder', function () {
|
|
17
|
+
var templateFiles = (0, utils_templates_1.getTemplateFiles)(constants_1.PLUGIN_TYPES.app, '.config/types/foo/bar/unknown');
|
|
18
|
+
expect(Array.isArray(templateFiles)).toBe(true);
|
|
19
|
+
expect(templateFiles.length).toBe(0);
|
|
20
|
+
});
|
|
21
|
+
test('should be possible to filter for multiple different files', function () {
|
|
22
|
+
var templateFiles = (0, utils_templates_1.getTemplateFiles)(constants_1.PLUGIN_TYPES.app, ['.eslintrc', '.prettierrc.js', 'tsconfig.json']);
|
|
23
|
+
expect(Array.isArray(templateFiles)).toBe(true);
|
|
24
|
+
expect(templateFiles.length).toBe(3);
|
|
25
|
+
});
|
|
26
|
+
test('should be possible to filter for a single file', function () {
|
|
27
|
+
var templateFiles = (0, utils_templates_1.getTemplateFiles)(constants_1.PLUGIN_TYPES.app, '.config/types/custom.d.ts');
|
|
28
|
+
expect(Array.isArray(templateFiles)).toBe(true);
|
|
29
|
+
expect(templateFiles.length).toBe(1);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.selectPrompt = exports.confirmPrompt = exports.printSuccessMessage = exports.printMessage = exports.displayArrayAsList = exports.displayAsMarkdown = void 0;
|
|
4
|
+
var marked = require('marked').marked;
|
|
5
|
+
var TerminalRenderer = require('marked-terminal');
|
|
6
|
+
var _a = require('enquirer'), Confirm = _a.Confirm, Select = _a.Select;
|
|
7
|
+
marked.setOptions({
|
|
8
|
+
renderer: new TerminalRenderer()
|
|
9
|
+
});
|
|
10
|
+
function displayAsMarkdown(msg) {
|
|
11
|
+
return marked(msg);
|
|
12
|
+
}
|
|
13
|
+
exports.displayAsMarkdown = displayAsMarkdown;
|
|
14
|
+
function displayArrayAsList(files) {
|
|
15
|
+
return " - ".concat(files.map(function (t) { return "`".concat(t, "`"); }).join('\n - '));
|
|
16
|
+
}
|
|
17
|
+
exports.displayArrayAsList = displayArrayAsList;
|
|
18
|
+
function printMessage(msg) {
|
|
19
|
+
console.log(displayAsMarkdown("\n".concat(msg)));
|
|
20
|
+
}
|
|
21
|
+
exports.printMessage = printMessage;
|
|
22
|
+
function printSuccessMessage(msg) {
|
|
23
|
+
console.log(displayAsMarkdown("\n\u2714 ".concat(msg)));
|
|
24
|
+
}
|
|
25
|
+
exports.printSuccessMessage = printSuccessMessage;
|
|
26
|
+
function confirmPrompt(message) {
|
|
27
|
+
var prompt = new Confirm({
|
|
28
|
+
name: 'question',
|
|
29
|
+
message: displayAsMarkdown(message)
|
|
30
|
+
});
|
|
31
|
+
return prompt.run();
|
|
32
|
+
}
|
|
33
|
+
exports.confirmPrompt = confirmPrompt;
|
|
34
|
+
function selectPrompt(message, choices) {
|
|
35
|
+
var prompt = new Select({
|
|
36
|
+
choices: choices,
|
|
37
|
+
message: displayAsMarkdown(message)
|
|
38
|
+
});
|
|
39
|
+
return prompt.run();
|
|
40
|
+
}
|
|
41
|
+
exports.selectPrompt = selectPrompt;
|