@mintlify/previewing 3.1.1 → 3.1.3

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.
Files changed (44) hide show
  1. package/dist/constants.d.ts +1 -1
  2. package/dist/constants.js +27 -28
  3. package/dist/downloadImage.js +112 -55
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.js +2 -3
  6. package/dist/local-preview/helper-commands/installDepsCommand.js +49 -10
  7. package/dist/local-preview/index.d.ts +1 -1
  8. package/dist/local-preview/index.js +221 -131
  9. package/dist/local-preview/listener/categorize.d.ts +1 -1
  10. package/dist/local-preview/listener/categorize.js +134 -80
  11. package/dist/local-preview/listener/generate.d.ts +1 -1
  12. package/dist/local-preview/listener/generate.js +138 -60
  13. package/dist/local-preview/listener/index.js +289 -172
  14. package/dist/local-preview/listener/update.js +75 -20
  15. package/dist/local-preview/listener/utils/createPage.d.ts +1 -1
  16. package/dist/local-preview/listener/utils/createPage.js +176 -123
  17. package/dist/local-preview/listener/utils/getOpenApiContext.d.ts +3 -3
  18. package/dist/local-preview/listener/utils/getOpenApiContext.js +22 -24
  19. package/dist/local-preview/listener/utils/mintConfigFile.js +71 -19
  20. package/dist/local-preview/listener/utils/toTitleCase.js +3 -4
  21. package/dist/local-preview/listener/utils/types.d.ts +2 -2
  22. package/dist/local-preview/listener/utils/types.js +0 -1
  23. package/dist/local-preview/listener/utils.d.ts +1 -1
  24. package/dist/local-preview/listener/utils.js +94 -35
  25. package/dist/tsconfig.tsbuildinfo +1 -0
  26. package/dist/util.d.ts +5 -5
  27. package/dist/util.js +30 -37
  28. package/package.json +5 -1
  29. package/dist/constants.js.map +0 -1
  30. package/dist/downloadImage.js.map +0 -1
  31. package/dist/index.js.map +0 -1
  32. package/dist/local-preview/helper-commands/installDepsCommand.js.map +0 -1
  33. package/dist/local-preview/index.js.map +0 -1
  34. package/dist/local-preview/listener/categorize.js.map +0 -1
  35. package/dist/local-preview/listener/generate.js.map +0 -1
  36. package/dist/local-preview/listener/index.js.map +0 -1
  37. package/dist/local-preview/listener/update.js.map +0 -1
  38. package/dist/local-preview/listener/utils/createPage.js.map +0 -1
  39. package/dist/local-preview/listener/utils/getOpenApiContext.js.map +0 -1
  40. package/dist/local-preview/listener/utils/mintConfigFile.js.map +0 -1
  41. package/dist/local-preview/listener/utils/toTitleCase.js.map +0 -1
  42. package/dist/local-preview/listener/utils/types.js.map +0 -1
  43. package/dist/local-preview/listener/utils.js.map +0 -1
  44. package/dist/util.js.map +0 -1
@@ -1,121 +1,199 @@
1
- import chokidar from "chokidar";
2
- import fse from "fs-extra";
3
- import pathUtil from "path";
4
- import Chalk from "chalk";
5
- import mintValidation from "@mintlify/validation";
6
- import { isFileSizeValid, openApiCheck } from "./utils.js";
7
- import { updateGeneratedNav, updateOpenApiFiles } from "./update.js";
8
- import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
9
- import { promises as _promises } from "fs";
10
- import createPage from "./utils/createPage.js";
11
- import { getCategory } from "./categorize.js";
12
- const { readFile } = _promises;
13
- const listener = () => {
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import mintValidation from '@mintlify/validation';
38
+ import Chalk from 'chalk';
39
+ import chokidar from 'chokidar';
40
+ import { promises as _promises } from 'fs';
41
+ import fse from 'fs-extra';
42
+ import pathUtil from 'path';
43
+ import { CLIENT_PATH, CMD_EXEC_PATH } from '../../constants.js';
44
+ import { getCategory } from './categorize.js';
45
+ import { updateGeneratedNav, updateOpenApiFiles } from './update.js';
46
+ import { isFileSizeValid, openApiCheck } from './utils.js';
47
+ import createPage from './utils/createPage.js';
48
+ var readFile = _promises.readFile;
49
+ var listener = function () {
14
50
  chokidar
15
51
  .watch(CMD_EXEC_PATH, {
16
52
  ignoreInitial: true,
17
- ignored: ["node_modules", ".git", ".idea"],
53
+ ignored: ['node_modules', '.git', '.idea'],
18
54
  cwd: CMD_EXEC_PATH,
19
55
  })
20
- .on("add", async (filename) => {
21
- try {
22
- const category = await onUpdateEvent(filename);
23
- switch (category) {
24
- case "page":
25
- console.log("New page detected: ", filename);
26
- break;
27
- case "snippet":
28
- console.log("New snippet detected: ", filename);
29
- break;
30
- case "mintConfig":
31
- console.log("Config added");
32
- break;
33
- case "openApi":
34
- console.log("OpenApi spec added: ", filename);
35
- break;
36
- case "staticFile":
37
- console.log("Static file added: ", filename);
38
- break;
39
- }
40
- }
41
- catch (error) {
42
- console.error(error.message);
43
- }
44
- })
45
- .on("change", async (filename) => {
46
- try {
47
- const category = await onUpdateEvent(filename);
48
- switch (category) {
49
- case "page":
50
- console.log("Page edited: ", filename);
51
- break;
52
- case "snippet":
53
- console.log("Snippet edited: ", filename);
54
- break;
55
- case "mintConfig":
56
- console.log("Config edited");
57
- break;
58
- case "openApi":
59
- console.log("OpenApi spec edited: ", filename);
60
- break;
61
- case "staticFile":
62
- console.log("Static file edited: ", filename);
63
- break;
56
+ .on('add', function (filename) { return __awaiter(void 0, void 0, void 0, function () {
57
+ var category, error_1;
58
+ return __generator(this, function (_a) {
59
+ switch (_a.label) {
60
+ case 0:
61
+ _a.trys.push([0, 2, , 3]);
62
+ return [4 /*yield*/, onUpdateEvent(filename)];
63
+ case 1:
64
+ category = _a.sent();
65
+ switch (category) {
66
+ case 'page':
67
+ console.log('New page detected: ', filename);
68
+ break;
69
+ case 'snippet':
70
+ console.log('New snippet detected: ', filename);
71
+ break;
72
+ case 'mintConfig':
73
+ console.log('Config added');
74
+ break;
75
+ case 'openApi':
76
+ console.log('OpenApi spec added: ', filename);
77
+ break;
78
+ case 'staticFile':
79
+ console.log('Static file added: ', filename);
80
+ break;
81
+ }
82
+ return [3 /*break*/, 3];
83
+ case 2:
84
+ error_1 = _a.sent();
85
+ console.error(error_1.message);
86
+ return [3 /*break*/, 3];
87
+ case 3: return [2 /*return*/];
64
88
  }
65
- }
66
- catch (error) {
67
- console.error(error.message);
68
- }
69
- })
70
- .on("unlink", async (filename) => {
71
- try {
72
- const potentialCategory = getCategory(filename);
73
- const targetPath = getTargetPath(potentialCategory, filename);
74
- if (potentialCategory === "page" ||
75
- potentialCategory === "snippet" ||
76
- potentialCategory === "mintConfig" ||
77
- potentialCategory === "staticFile") {
78
- await fse.remove(targetPath);
89
+ });
90
+ }); })
91
+ .on('change', function (filename) { return __awaiter(void 0, void 0, void 0, function () {
92
+ var category, error_2;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ _a.trys.push([0, 2, , 3]);
97
+ return [4 /*yield*/, onUpdateEvent(filename)];
98
+ case 1:
99
+ category = _a.sent();
100
+ switch (category) {
101
+ case 'page':
102
+ console.log('Page edited: ', filename);
103
+ break;
104
+ case 'snippet':
105
+ console.log('Snippet edited: ', filename);
106
+ break;
107
+ case 'mintConfig':
108
+ console.log('Config edited');
109
+ break;
110
+ case 'openApi':
111
+ console.log('OpenApi spec edited: ', filename);
112
+ break;
113
+ case 'staticFile':
114
+ console.log('Static file edited: ', filename);
115
+ break;
116
+ }
117
+ return [3 /*break*/, 3];
118
+ case 2:
119
+ error_2 = _a.sent();
120
+ console.error(error_2.message);
121
+ return [3 /*break*/, 3];
122
+ case 3: return [2 /*return*/];
79
123
  }
80
- switch (potentialCategory) {
81
- case "page":
82
- console.log(`Page deleted: ${filename}`);
83
- break;
84
- case "snippet":
85
- console.log(`Snippet deleted: ${filename}`);
86
- break;
87
- case "mintConfig":
88
- console.log("⚠️ mint.json deleted. Please create a new mint.json file as it is mandatory.");
124
+ });
125
+ }); })
126
+ .on('unlink', function (filename) { return __awaiter(void 0, void 0, void 0, function () {
127
+ var potentialCategory, targetPath, _a, error_3;
128
+ return __generator(this, function (_b) {
129
+ switch (_b.label) {
130
+ case 0:
131
+ _b.trys.push([0, 11, , 12]);
132
+ potentialCategory = getCategory(filename);
133
+ targetPath = getTargetPath(potentialCategory, filename);
134
+ if (!(potentialCategory === 'page' ||
135
+ potentialCategory === 'snippet' ||
136
+ potentialCategory === 'mintConfig' ||
137
+ potentialCategory === 'staticFile')) return [3 /*break*/, 2];
138
+ return [4 /*yield*/, fse.remove(targetPath)];
139
+ case 1:
140
+ _b.sent();
141
+ _b.label = 2;
142
+ case 2:
143
+ _a = potentialCategory;
144
+ switch (_a) {
145
+ case 'page': return [3 /*break*/, 3];
146
+ case 'snippet': return [3 /*break*/, 4];
147
+ case 'mintConfig': return [3 /*break*/, 5];
148
+ case 'potentialJsonOpenApiSpec': return [3 /*break*/, 6];
149
+ case 'potentialYamlOpenApiSpec': return [3 /*break*/, 6];
150
+ case 'staticFile': return [3 /*break*/, 9];
151
+ }
152
+ return [3 /*break*/, 10];
153
+ case 3:
154
+ console.log("Page deleted: ".concat(filename));
155
+ return [3 /*break*/, 10];
156
+ case 4:
157
+ console.log("Snippet deleted: ".concat(filename));
158
+ return [3 /*break*/, 10];
159
+ case 5:
160
+ console.log('⚠️ mint.json deleted. Please create a new mint.json file as it is mandatory.');
89
161
  process.exit(1);
90
- case "potentialJsonOpenApiSpec":
91
- case "potentialYamlOpenApiSpec":
92
- await updateOpenApiFiles();
93
- await updateGeneratedNav();
94
- break;
95
- case "staticFile":
96
- console.log("Static file deleted: ", filename);
97
- break;
162
+ _b.label = 6;
163
+ case 6: return [4 /*yield*/, updateOpenApiFiles()];
164
+ case 7:
165
+ _b.sent();
166
+ return [4 /*yield*/, updateGeneratedNav()];
167
+ case 8:
168
+ _b.sent();
169
+ return [3 /*break*/, 10];
170
+ case 9:
171
+ console.log('Static file deleted: ', filename);
172
+ return [3 /*break*/, 10];
173
+ case 10: return [3 /*break*/, 12];
174
+ case 11:
175
+ error_3 = _b.sent();
176
+ console.error(error_3.message);
177
+ return [3 /*break*/, 12];
178
+ case 12: return [2 /*return*/];
98
179
  }
99
- }
100
- catch (error) {
101
- console.error(error.message);
102
- }
103
- });
180
+ });
181
+ }); });
104
182
  };
105
- const getTargetPath = (potentialCategory, filePath) => {
183
+ var getTargetPath = function (potentialCategory, filePath) {
106
184
  switch (potentialCategory) {
107
- case "page":
108
- case "snippet":
109
- return pathUtil.join(CLIENT_PATH, "src", "_props", filePath);
110
- case "mintConfig":
111
- return pathUtil.join(CLIENT_PATH, "src", "_props", "mint.json");
112
- case "potentialYamlOpenApiSpec":
113
- case "potentialJsonOpenApiSpec":
114
- return pathUtil.join(CLIENT_PATH, "src", "_props", "openApiFiles.json");
115
- case "staticFile":
116
- return pathUtil.join(CLIENT_PATH, "public", filePath);
185
+ case 'page':
186
+ case 'snippet':
187
+ return pathUtil.join(CLIENT_PATH, 'src', '_props', filePath);
188
+ case 'mintConfig':
189
+ return pathUtil.join(CLIENT_PATH, 'src', '_props', 'mint.json');
190
+ case 'potentialYamlOpenApiSpec':
191
+ case 'potentialJsonOpenApiSpec':
192
+ return pathUtil.join(CLIENT_PATH, 'src', '_props', 'openApiFiles.json');
193
+ case 'staticFile':
194
+ return pathUtil.join(CLIENT_PATH, 'public', filePath);
117
195
  default:
118
- throw new Error("Invalid category");
196
+ throw new Error('Invalid category');
119
197
  }
120
198
  };
121
199
  /**
@@ -123,78 +201,117 @@ const getTargetPath = (potentialCategory, filePath) => {
123
201
  * @param filename
124
202
  * @returns FileCategory
125
203
  */
126
- const onUpdateEvent = async (filename) => {
127
- const filePath = pathUtil.join(CMD_EXEC_PATH, filename);
128
- const potentialCategory = getCategory(filename);
129
- const targetPath = getTargetPath(potentialCategory, filename);
130
- let regenerateNav = false;
131
- let category = potentialCategory === "potentialYamlOpenApiSpec" ||
132
- potentialCategory === "potentialJsonOpenApiSpec"
133
- ? "staticFile"
134
- : potentialCategory;
135
- switch (potentialCategory) {
136
- case "page":
137
- regenerateNav = true;
138
- const contentStr = (await readFile(filePath)).toString();
139
- const { pageContent } = await createPage(filename, contentStr, CMD_EXEC_PATH, []);
140
- await fse.outputFile(targetPath, pageContent, {
141
- flag: "w",
142
- });
143
- break;
144
- case "snippet":
145
- await fse.copy(filePath, targetPath);
146
- break;
147
- case "mintConfig":
148
- regenerateNav = true;
149
- const mintJsonFileContent = (await readFile(filePath)).toString();
150
- try {
151
- const mintConfig = JSON.parse(mintJsonFileContent);
152
- const { status, errors, warnings } = mintValidation.validateMintConfig(mintConfig);
153
- errors.forEach((error) => {
154
- console.error(`🚨 ${Chalk.red(error)}`);
204
+ var onUpdateEvent = function (filename) { return __awaiter(void 0, void 0, void 0, function () {
205
+ var filePath, potentialCategory, targetPath, regenerateNav, category, _a, contentStr, pageContent, mintJsonFileContent, mintConfig, _b, status_1, errors, warnings, e_1, error, isOpenApi, openApiInfo;
206
+ return __generator(this, function (_c) {
207
+ switch (_c.label) {
208
+ case 0:
209
+ filePath = pathUtil.join(CMD_EXEC_PATH, filename);
210
+ potentialCategory = getCategory(filename);
211
+ targetPath = getTargetPath(potentialCategory, filename);
212
+ regenerateNav = false;
213
+ category = potentialCategory === 'potentialYamlOpenApiSpec' ||
214
+ potentialCategory === 'potentialJsonOpenApiSpec'
215
+ ? 'staticFile'
216
+ : potentialCategory;
217
+ _a = potentialCategory;
218
+ switch (_a) {
219
+ case 'page': return [3 /*break*/, 1];
220
+ case 'snippet': return [3 /*break*/, 5];
221
+ case 'mintConfig': return [3 /*break*/, 7];
222
+ case 'potentialYamlOpenApiSpec': return [3 /*break*/, 14];
223
+ case 'potentialJsonOpenApiSpec': return [3 /*break*/, 14];
224
+ case 'staticFile': return [3 /*break*/, 18];
225
+ }
226
+ return [3 /*break*/, 23];
227
+ case 1:
228
+ regenerateNav = true;
229
+ return [4 /*yield*/, readFile(filePath)];
230
+ case 2:
231
+ contentStr = (_c.sent()).toString();
232
+ return [4 /*yield*/, createPage(filename, contentStr, CMD_EXEC_PATH, [])];
233
+ case 3:
234
+ pageContent = (_c.sent()).pageContent;
235
+ return [4 /*yield*/, fse.outputFile(targetPath, pageContent, {
236
+ flag: 'w',
237
+ })];
238
+ case 4:
239
+ _c.sent();
240
+ return [3 /*break*/, 23];
241
+ case 5: return [4 /*yield*/, fse.copy(filePath, targetPath)];
242
+ case 6:
243
+ _c.sent();
244
+ return [3 /*break*/, 23];
245
+ case 7:
246
+ regenerateNav = true;
247
+ return [4 /*yield*/, readFile(filePath)];
248
+ case 8:
249
+ mintJsonFileContent = (_c.sent()).toString();
250
+ _c.label = 9;
251
+ case 9:
252
+ _c.trys.push([9, 12, , 13]);
253
+ mintConfig = JSON.parse(mintJsonFileContent);
254
+ _b = mintValidation.validateMintConfig(mintConfig), status_1 = _b.status, errors = _b.errors, warnings = _b.warnings;
255
+ errors.forEach(function (error) {
256
+ console.error("\uD83D\uDEA8 ".concat(Chalk.red(error)));
155
257
  });
156
- warnings.forEach((warning) => {
157
- console.warn(`⚠️ ${Chalk.yellow(warning)}`);
258
+ warnings.forEach(function (warning) {
259
+ console.warn("\u26A0\uFE0F ".concat(Chalk.yellow(warning)));
158
260
  });
159
- if (status === "success") {
160
- await fse.copy(filePath, targetPath);
161
- }
162
- }
163
- catch (error) {
261
+ if (!(status_1 === 'success')) return [3 /*break*/, 11];
262
+ return [4 /*yield*/, fse.copy(filePath, targetPath)];
263
+ case 10:
264
+ _c.sent();
265
+ _c.label = 11;
266
+ case 11: return [3 /*break*/, 13];
267
+ case 12:
268
+ e_1 = _c.sent();
269
+ error = e_1;
164
270
  if (error.name === "SyntaxError") {
165
- console.error(`🚨 ${Chalk.red("mint.json has invalid JSON. You are likely missing a comma or a bracket. You can paste your mint.json file into https://jsonlint.com/ to get a more specific error message.")}`);
271
+ console.error("\uD83D\uDEA8 ".concat(Chalk.red('mint.json has invalid JSON. You are likely missing a comma or a bracket. You can paste your mint.json file into https://jsonlint.com/ to get a more specific error message.')));
166
272
  }
167
273
  else {
168
- console.error(`🚨 ${Chalk.red(error.message)}`);
274
+ console.error("\uD83D\uDEA8 ".concat(Chalk.red(error.message)));
169
275
  }
170
- }
171
- break;
172
- case "potentialYamlOpenApiSpec":
173
- case "potentialJsonOpenApiSpec":
174
- let isOpenApi = false;
175
- const openApiInfo = await openApiCheck(filePath);
176
- isOpenApi = openApiInfo.isOpenApi;
177
- if (isOpenApi) {
276
+ return [3 /*break*/, 13];
277
+ case 13: return [3 /*break*/, 23];
278
+ case 14:
279
+ isOpenApi = false;
280
+ return [4 /*yield*/, openApiCheck(filePath)];
281
+ case 15:
282
+ openApiInfo = _c.sent();
283
+ isOpenApi = openApiInfo.isOpenApi;
284
+ if (!isOpenApi) return [3 /*break*/, 17];
178
285
  // TODO: Instead of re-generating all openApi files, optimize by just updating the specific file that changed.
179
- await updateOpenApiFiles();
286
+ return [4 /*yield*/, updateOpenApiFiles()];
287
+ case 16:
288
+ // TODO: Instead of re-generating all openApi files, optimize by just updating the specific file that changed.
289
+ _c.sent();
180
290
  regenerateNav = true;
181
- category = "openApi";
182
- }
183
- break;
184
- case "staticFile":
185
- if (await isFileSizeValid(filePath, 5)) {
186
- await fse.copy(filePath, targetPath);
187
- }
188
- else {
189
- console.error(Chalk.red(`🚨 The file at ${filename} is too big. The maximum file size is 5 mb.`));
190
- }
191
- break;
192
- }
193
- if (regenerateNav) {
194
- // TODO: Instead of re-generating the entire nav, optimize by just updating the specific page that changed.
195
- await updateGeneratedNav();
196
- }
197
- return category;
198
- };
291
+ category = 'openApi';
292
+ _c.label = 17;
293
+ case 17: return [3 /*break*/, 23];
294
+ case 18: return [4 /*yield*/, isFileSizeValid(filePath, 5)];
295
+ case 19:
296
+ if (!_c.sent()) return [3 /*break*/, 21];
297
+ return [4 /*yield*/, fse.copy(filePath, targetPath)];
298
+ case 20:
299
+ _c.sent();
300
+ return [3 /*break*/, 22];
301
+ case 21:
302
+ console.error(Chalk.red("\uD83D\uDEA8 The file at ".concat(filename, " is too big. The maximum file size is 5 mb.")));
303
+ _c.label = 22;
304
+ case 22: return [3 /*break*/, 23];
305
+ case 23:
306
+ if (!regenerateNav) return [3 /*break*/, 25];
307
+ // TODO: Instead of re-generating the entire nav, optimize by just updating the specific page that changed.
308
+ return [4 /*yield*/, updateGeneratedNav()];
309
+ case 24:
310
+ // TODO: Instead of re-generating the entire nav, optimize by just updating the specific page that changed.
311
+ _c.sent();
312
+ _c.label = 25;
313
+ case 25: return [2 /*return*/, category];
314
+ }
315
+ });
316
+ }); };
199
317
  export default listener;
200
- //# sourceMappingURL=index.js.map
@@ -1,24 +1,79 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
1
37
  // TODO: Add Types
2
- import fse from "fs-extra";
3
- import { promises as _promises } from "fs";
4
- import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
5
- import { join } from "path";
6
- import { generateNav } from "./generate.js";
7
- import { categorizeFiles } from "./categorize.js";
8
- const { readFile } = _promises;
38
+ import { promises as _promises } from 'fs';
39
+ import fse from 'fs-extra';
40
+ import { join } from 'path';
41
+ import { CLIENT_PATH, CMD_EXEC_PATH } from '../../constants.js';
42
+ import { categorizeFiles } from './categorize.js';
43
+ import { generateNav } from './generate.js';
44
+ var readFile = _promises.readFile;
9
45
  // TODO: Put in prebuild package
10
- export const updateGeneratedNav = async () => {
11
- const generatedNav = await generateNav();
12
- const targetPath = join(CLIENT_PATH, "src", "_props", "generatedNav.json");
13
- await fse.outputFile(targetPath, JSON.stringify(generatedNav, null, 2), {
14
- flag: "w",
46
+ export var updateGeneratedNav = function () { return __awaiter(void 0, void 0, void 0, function () {
47
+ var generatedNav, targetPath;
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0: return [4 /*yield*/, generateNav()];
51
+ case 1:
52
+ generatedNav = _a.sent();
53
+ targetPath = join(CLIENT_PATH, 'src', '_props', 'generatedNav.json');
54
+ return [4 /*yield*/, fse.outputFile(targetPath, JSON.stringify(generatedNav, null, 2), {
55
+ flag: 'w',
56
+ })];
57
+ case 2:
58
+ _a.sent();
59
+ return [2 /*return*/];
60
+ }
15
61
  });
16
- };
17
- export const updateOpenApiFiles = async () => {
18
- const { openApiFiles } = await categorizeFiles(CMD_EXEC_PATH);
19
- const targetPath = join(CLIENT_PATH, "src", "_props", "openApiFiles.json");
20
- await fse.outputFile(targetPath, JSON.stringify(openApiFiles, null, 2), {
21
- flag: "w",
62
+ }); };
63
+ export var updateOpenApiFiles = function () { return __awaiter(void 0, void 0, void 0, function () {
64
+ var openApiFiles, targetPath;
65
+ return __generator(this, function (_a) {
66
+ switch (_a.label) {
67
+ case 0: return [4 /*yield*/, categorizeFiles(CMD_EXEC_PATH)];
68
+ case 1:
69
+ openApiFiles = (_a.sent()).openApiFiles;
70
+ targetPath = join(CLIENT_PATH, 'src', '_props', 'openApiFiles.json');
71
+ return [4 /*yield*/, fse.outputFile(targetPath, JSON.stringify(openApiFiles, null, 2), {
72
+ flag: 'w',
73
+ })];
74
+ case 2:
75
+ _a.sent();
76
+ return [2 /*return*/];
77
+ }
22
78
  });
23
- };
24
- //# sourceMappingURL=update.js.map
79
+ }); };
@@ -2,7 +2,7 @@ declare const createPage: (pagePath: string, pageContent: string, contentDirecto
2
2
  pageMetadata: {
3
3
  href: string;
4
4
  title: string;
5
- description: string;
5
+ description: string | undefined;
6
6
  };
7
7
  pageContent: string;
8
8
  slug: string;