@lenne.tech/cli 0.0.104 → 0.0.106

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.
@@ -20,8 +20,100 @@ const AddComponentCommand = {
20
20
  const { parameters } = toolbox;
21
21
  const componentName = parameters.first;
22
22
  yield addComponent(toolbox, componentName);
23
+ process.exit();
24
+ return 'add';
23
25
  })
24
26
  };
27
+ function getConfigForComponent(fileName) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const data = yield getConfig();
30
+ const name = fileName.split('.').slice(0, -1).join('.');
31
+ return data.config[name] || {};
32
+ });
33
+ }
34
+ function getConfig() {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ const githubApiUrl = `https://raw.githubusercontent.com/lenneTech/nuxt-base-components/main/config.json`;
37
+ const response = yield axios_1.default.get(githubApiUrl);
38
+ if (response.status === 200) {
39
+ return response.data;
40
+ }
41
+ else {
42
+ throw new Error(`Fehler beim Abrufen der Konfiguration von GitHub: ${response.statusText}`);
43
+ }
44
+ });
45
+ }
46
+ function processConfig(config, toolbox) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const { prompt } = toolbox;
49
+ if (config === null || config === void 0 ? void 0 : config.npm) {
50
+ const npmPackages = config.npm;
51
+ for (const npmPackage of npmPackages) {
52
+ const confirm = yield prompt.confirm(`Das npm-Paket ${npmPackage} wird benötigt. Möchten Sie es installieren?`);
53
+ if (confirm) {
54
+ yield installPackage(npmPackage, toolbox);
55
+ }
56
+ }
57
+ }
58
+ if (config === null || config === void 0 ? void 0 : config.composables) {
59
+ const composables = config.composables;
60
+ for (const composable of composables) {
61
+ const confirm = yield prompt.confirm(`Das composable ${composable} wird benötigt. Möchten Sie es hinzufügen?`);
62
+ if (confirm) {
63
+ yield copyComposable(composable, toolbox);
64
+ }
65
+ }
66
+ }
67
+ if (config === null || config === void 0 ? void 0 : config.components) {
68
+ const components = config.components;
69
+ for (const component of components) {
70
+ const confirm = yield prompt.confirm(`Die component ${component} wird benötigt. Möchten Sie es hinzufügen?`);
71
+ if (confirm) {
72
+ yield copyComponent({ name: component + '.vue', type: 'file' }, toolbox);
73
+ }
74
+ }
75
+ }
76
+ });
77
+ }
78
+ function installPackage(packageName, toolbox) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const { print, system } = toolbox;
81
+ const installSpinner = print.spin(`Installiere npm-Paket ${packageName}...`);
82
+ yield system.run(`npm install ${packageName} --save-exact`);
83
+ installSpinner.succeed(`npm-Paket ${packageName} erfolgreich installiert`);
84
+ });
85
+ }
86
+ function copyComposable(composable, toolbox) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const { print } = toolbox;
89
+ const apiUrl = `https://raw.githubusercontent.com/lenneTech/nuxt-base-components/main/composables/${composable}.ts`;
90
+ const response = yield axios_1.default.get(apiUrl);
91
+ if (response.status === 200) {
92
+ const sourceCode = response.data;
93
+ const cwd = process.cwd();
94
+ let targetDirectory;
95
+ if (fs.existsSync(path.resolve(cwd, 'composables'))) {
96
+ targetDirectory = path.resolve(cwd, 'composables');
97
+ }
98
+ else {
99
+ const directories = glob.sync('*/composables', { cwd });
100
+ if (directories.length > 0) {
101
+ targetDirectory = path.join(cwd, directories[0]);
102
+ }
103
+ else {
104
+ targetDirectory = cwd;
105
+ }
106
+ }
107
+ const targetPath = path.join(targetDirectory, `${composable}.ts`);
108
+ const spinner = print.spin(`Kopiere das Composable ${composable} nach ${targetPath}...`);
109
+ fs.writeFileSync(targetPath, sourceCode);
110
+ spinner.succeed(`Das Composable ${composable} wurde erfolgreich kopiert nach ${targetPath}`);
111
+ }
112
+ else {
113
+ print.error(`Fehler beim Abrufen der Datei von GitHub: ${response.statusText}`);
114
+ }
115
+ });
116
+ }
25
117
  function getFileInfo(path) {
26
118
  return __awaiter(this, void 0, void 0, function* () {
27
119
  const githubApiUrl = `https://api.github.com/repos/lenneTech/nuxt-base-components/contents/components${path ? '/' + path : ''}`;
@@ -53,14 +145,14 @@ function addComponent(toolbox, componentName) {
53
145
  type: 'select',
54
146
  name: 'componentType',
55
147
  message: 'Welche Komponente möchten Sie hinzufügen:',
56
- choices: possibleComponents.map((c) => c.name.replace('.vue', ''))
148
+ choices: possibleComponents
57
149
  });
58
150
  selectedComponent = response.componentType;
59
151
  }
60
152
  else {
61
- selectedComponent = componentName;
153
+ selectedComponent = componentName + '.vue';
62
154
  }
63
- const selectedFile = possibleComponents.find((e) => e.type === 'file' ? e.name === selectedComponent + '.vue' : e.name === selectedComponent);
155
+ const selectedFile = possibleComponents.find((e) => e.name === selectedComponent);
64
156
  if ((selectedFile === null || selectedFile === void 0 ? void 0 : selectedFile.type) === 'dir') {
65
157
  print.success(`Das Verzeichnis ${selectedFile.name} wurde ausgewählt.`);
66
158
  const directoryFiles = yield getFileInfo(selectedFile.name);
@@ -97,6 +189,12 @@ function copyComponent(file, toolbox) {
97
189
  const apiUrl = `https://raw.githubusercontent.com/lenneTech/nuxt-base-components/main/components/${file.name}`;
98
190
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
99
191
  try {
192
+ const configSpinner = print.spin(`Checken der config für ${file.name}...`);
193
+ const config = yield getConfigForComponent(file.name);
194
+ configSpinner.succeed(`Config für ${file.name} erfolgreich geladen`);
195
+ if (config) {
196
+ yield processConfig(config, toolbox);
197
+ }
100
198
  const compSpinner = print.spin(`Lade Komponente ${file.name} von GitHub...`);
101
199
  const response = yield axios_1.default.get(apiUrl);
102
200
  compSpinner.succeed(`Komponente ${file.name} erfolgreich von GitHub geladen`);
@@ -116,15 +214,17 @@ function copyComponent(file, toolbox) {
116
214
  targetDirectory = cwd;
117
215
  }
118
216
  }
119
- print.info(`Found directory for components: ${targetDirectory}`);
120
217
  const targetPath = path.join(targetDirectory, `${file.name}`);
121
218
  if (!fs.existsSync(targetDirectory)) {
122
- const directoryName = file.name.split('/')[0];
123
- targetDirectory = targetDirectory + '/' + directoryName;
124
- if (!fs.existsSync(targetDirectory)) {
125
- const targetDirSpinner = print.spin(`Creating ${directoryName} directory...`);
126
- fs.mkdirSync(targetDirectory, { recursive: true });
127
- targetDirSpinner.succeed(`Directory created successfully`);
219
+ const targetDirSpinner = print.spin(`Erstellen des Zielverzeichnis...`);
220
+ fs.mkdirSync(targetDirectory, { recursive: true });
221
+ targetDirSpinner.succeed();
222
+ }
223
+ if (file.type === 'dir') {
224
+ const dirName = file.name.split('/')[0];
225
+ const dirPath = path.join(targetDirectory, dirName);
226
+ if (!fs.existsSync(dirPath)) {
227
+ fs.mkdirSync(dirPath, { recursive: true });
128
228
  }
129
229
  }
130
230
  const spinner = print.spin(`Kopiere die Komponente ${file.name} nach ${targetPath}...`);
@@ -145,4 +245,4 @@ function copyComponent(file, toolbox) {
145
245
  });
146
246
  }
147
247
  exports.default = AddComponentCommand;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbXBvbmVudHMvYWRkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUEseUJBQXdCO0FBQ3hCLDZCQUE2QjtBQUM3Qiw2QkFBNEI7QUFDNUIsaUNBQXlCO0FBRXpCLE1BQU0sbUJBQW1CLEdBQW1CO0lBQzFDLElBQUksRUFBRSxLQUFLO0lBQ1gsV0FBVyxFQUFFLG9FQUFvRTtJQUNqRixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUM5QixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFBO1FBQ3RDLE1BQU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQUE7Q0FDRixDQUFBO0FBRUQsU0FBZSxXQUFXLENBQUMsSUFBYTs7UUFDdEMsTUFBTSxZQUFZLEdBQUcsa0ZBQWtGLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUE7UUFDL0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBRTlDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNyQyxPQUFPO29CQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7aUJBQ2hCLENBQUE7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FB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
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbXBvbmVudHMvYWRkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUEseUJBQXdCO0FBQ3hCLDZCQUE0QjtBQUM1Qiw2QkFBNEI7QUFDNUIsaUNBQXlCO0FBRXpCLE1BQU0sbUJBQW1CLEdBQW1CO0lBQzFDLElBQUksRUFBRSxLQUFLO0lBQ1gsV0FBVyxFQUFFLG9FQUFvRTtJQUNqRixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUM5QixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFBO1FBQ3RDLE1BQU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDZCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsQ0FBQTtDQUNGLENBQUE7QUFFRCxTQUFlLHFCQUFxQixDQUFDLFFBQWdCOztRQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLFNBQVMsRUFBRSxDQUFBO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FBQTtBQUVELFNBQWUsU0FBUzs7UUFDdEIsTUFBTSxZQUFZLEdBQUcsbUZBQW1GLENBQUE7UUFDeEcsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9DLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFH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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lenne.tech/cli",
3
- "version": "0.0.104",
3
+ "version": "0.0.106",
4
4
  "description": "lenne.Tech CLI: lt",
5
5
  "keywords": [
6
6
  "lenne.Tech",