mintlify 1.3.0 → 2.0.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.
- package/CONTRIBUTING.md +2 -0
- package/README.md +3 -3
- package/bin/local-preview/index.js +14 -60
- package/bin/local-preview/index.js.map +1 -1
- package/bin/local-preview/listener/categorizeFiles.js +47 -0
- package/bin/local-preview/listener/categorizeFiles.js.map +1 -0
- package/bin/local-preview/listener/generate.js +89 -0
- package/bin/local-preview/listener/generate.js.map +1 -0
- package/bin/local-preview/listener/index.js +135 -0
- package/bin/local-preview/listener/index.js.map +1 -0
- package/bin/local-preview/listener/update.js +41 -0
- package/bin/local-preview/listener/update.js.map +1 -0
- package/bin/local-preview/listener/utils/createPage.js +167 -0
- package/bin/local-preview/listener/utils/createPage.js.map +1 -0
- package/bin/local-preview/listener/utils/fileIsMdxOrMd.js +12 -0
- package/bin/local-preview/listener/utils/fileIsMdxOrMd.js.map +1 -0
- package/bin/local-preview/listener/utils/getOpenApiContext.js +57 -0
- package/bin/local-preview/listener/utils/getOpenApiContext.js.map +1 -0
- package/bin/local-preview/listener/utils/mintConfigFile.js +22 -0
- package/bin/local-preview/listener/utils/mintConfigFile.js.map +1 -0
- package/bin/local-preview/listener/utils/toTitleCase.js +36 -0
- package/bin/local-preview/listener/utils/toTitleCase.js.map +1 -0
- package/bin/local-preview/listener/utils/types.js +2 -0
- package/bin/local-preview/listener/utils/types.js.map +1 -0
- package/bin/local-preview/listener/utils.js +62 -0
- package/bin/local-preview/listener/utils.js.map +1 -0
- package/bin/local-preview/utils/mintConfigFile.js +1 -1
- package/bin/local-preview/utils/mintConfigFile.js.map +1 -1
- package/bin/scraping/detectFramework.js +1 -1
- package/bin/scraping/detectFramework.js.map +1 -1
- package/bin/scraping/scrapePageCommands.js +2 -2
- package/bin/scraping/scrapePageCommands.js.map +1 -1
- package/bin/scraping/site-scrapers/alternateGroupTitle.js +1 -1
- package/bin/scraping/site-scrapers/alternateGroupTitle.js.map +1 -1
- package/bin/scraping/site-scrapers/openNestedDocusaurusMenus.js +3 -3
- package/bin/scraping/site-scrapers/openNestedDocusaurusMenus.js.map +1 -1
- package/bin/scraping/site-scrapers/openNestedGitbookMenus.js +1 -2
- package/bin/scraping/site-scrapers/openNestedGitbookMenus.js.map +1 -1
- package/package.json +12 -6
- package/src/local-preview/index.ts +19 -74
- package/src/local-preview/listener/categorizeFiles.ts +55 -0
- package/src/local-preview/listener/generate.ts +110 -0
- package/src/local-preview/listener/index.ts +169 -0
- package/src/local-preview/listener/update.ts +45 -0
- package/src/local-preview/listener/utils/createPage.ts +211 -0
- package/src/local-preview/listener/utils/fileIsMdxOrMd.ts +11 -0
- package/src/local-preview/{utils → listener/utils}/getOpenApiContext.ts +0 -0
- package/src/local-preview/listener/utils/mintConfigFile.ts +28 -0
- package/src/local-preview/listener/utils/toTitleCase.ts +40 -0
- package/src/local-preview/listener/utils/types.ts +1 -0
- package/src/local-preview/listener/utils.ts +69 -0
- package/src/scraping/scrapePageCommands.ts +2 -2
- package/tsconfig.json +6 -5
- package/bin/init-command/index.js +0 -51
- package/bin/init-command/index.js.map +0 -1
- package/bin/init-command/templates.js +0 -41
- package/bin/init-command/templates.js.map +0 -1
- package/src/local-preview/utils/categorizeFiles.ts +0 -82
- package/src/local-preview/utils/injectFavicons.ts +0 -76
- package/src/local-preview/utils/listener.ts +0 -124
- package/src/local-preview/utils/metadata.ts +0 -151
- package/src/local-preview/utils/mintConfigFile.ts +0 -48
- package/src/local-preview/utils/openApiCheck.ts +0 -18
- package/src/local-preview/utils/slugToTitle.ts +0 -7
package/CONTRIBUTING.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Running CLI Locally
|
|
2
2
|
|
|
3
|
+
Note - contributing requires `yarn` and it's recommended you install it as a global installation. If you don't have yarn installed already run `npm install --global yarn` in your terminal.
|
|
4
|
+
|
|
3
5
|
Run `npm run local` to build and install the CLI locally.
|
|
4
6
|
|
|
5
7
|
You need to run the command after every change you want to test.
|
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
</p>
|
|
20
20
|
<p>
|
|
21
21
|
|
|
22
|
-
[](/) [](https://mintlify.com) [](/) [](https://mintlify.com) [](https://github.com/mintlify/mint/actions/workflows/unit-tests.yaml) [](https://twitter.com/intent/tweet?url=&text=Check%20out%20%40mintlify) [](https://discord.gg/MPNgtSZkgK) [](https://github.com/mintlify/mint/discussions)
|
|
23
23
|
|
|
24
24
|
</p>
|
|
25
25
|
<p>
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
Download the Mintlify CLI using the following command
|
|
38
38
|
|
|
39
39
|
```
|
|
40
|
-
npm i
|
|
40
|
+
npm i -g mintlify
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
### 👩💻 Development
|
|
@@ -54,10 +54,10 @@ Note - `mintlify dev` requires `yarn` and it's recommended you install it as a g
|
|
|
54
54
|
|
|
55
55
|
Steps you can take if the dev CLI is not working (After each step try to run `mintlify dev` again):
|
|
56
56
|
|
|
57
|
+
- Make sure you are running in a folder with a `mint.json` file.
|
|
57
58
|
- Make sure you are using Node v18 or higher.
|
|
58
59
|
- Run `mintlify install` to re-install dependencies.
|
|
59
60
|
- Navigate to the `.mintlify` folder in your home directory and delete its contents.
|
|
60
|
-
- If all else fails navigate to `~/.mintlify` and `git clone https://github.com/mintlify/mint.git --branch legacy-components-import`
|
|
61
61
|
|
|
62
62
|
### 🏃 Get Started
|
|
63
63
|
|
|
@@ -1,67 +1,13 @@
|
|
|
1
1
|
import Chalk from "chalk";
|
|
2
2
|
import open from "open";
|
|
3
|
-
import { promises as _promises } from "fs";
|
|
4
3
|
import fse, { pathExists } from "fs-extra";
|
|
5
4
|
import inquirer from "inquirer";
|
|
6
5
|
import { isInternetAvailable } from "is-internet-available";
|
|
7
6
|
import path from "path";
|
|
8
7
|
import shell from "shelljs";
|
|
9
|
-
import
|
|
10
|
-
import { CMD_EXEC_PATH, CLIENT_PATH, HOME_DIR, DOT_MINTLIFY, } from "../constants.js";
|
|
11
|
-
import { injectFavicons } from "./utils/injectFavicons.js";
|
|
12
|
-
import listener from "./utils/listener.js";
|
|
13
|
-
import { createPage, createMetadataFileFromPages } from "./utils/metadata.js";
|
|
14
|
-
import { updateConfigFile } from "./utils/mintConfigFile.js";
|
|
8
|
+
import { CLIENT_PATH, HOME_DIR, DOT_MINTLIFY, CMD_EXEC_PATH, } from "../constants.js";
|
|
15
9
|
import { buildLogger, ensureYarn } from "../util.js";
|
|
16
|
-
|
|
17
|
-
const copyFiles = async (logger) => {
|
|
18
|
-
logger.start("Syncing doc files...");
|
|
19
|
-
shell.cd(CMD_EXEC_PATH);
|
|
20
|
-
const { markdownFiles, staticFiles, openApi } = await categorizeFiles();
|
|
21
|
-
const configObj = await updateConfigFile(logger);
|
|
22
|
-
const openApiTargetPath = path.join(CLIENT_PATH, "src", "openapi.json");
|
|
23
|
-
if (openApi) {
|
|
24
|
-
logger.succeed("OpenApi file synced");
|
|
25
|
-
await fse.outputFile(openApiTargetPath, JSON.stringify(openApi), {
|
|
26
|
-
flag: "w",
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
await fse.outputFile(openApiTargetPath, "{}", { flag: "w" });
|
|
31
|
-
}
|
|
32
|
-
let pages = {};
|
|
33
|
-
const mdPromises = [];
|
|
34
|
-
markdownFiles.forEach((filename) => {
|
|
35
|
-
mdPromises.push((async () => {
|
|
36
|
-
const sourcePath = path.join(CMD_EXEC_PATH, filename);
|
|
37
|
-
const pagesDir = path.join(CLIENT_PATH, "src", "pages");
|
|
38
|
-
const targetPath = path.join(pagesDir, filename);
|
|
39
|
-
await fse.remove(targetPath);
|
|
40
|
-
await fse.copy(sourcePath, targetPath);
|
|
41
|
-
const fileContent = await readFile(sourcePath);
|
|
42
|
-
const contentStr = fileContent.toString();
|
|
43
|
-
const page = createPage(filename, contentStr, openApi);
|
|
44
|
-
pages = Object.assign(Object.assign({}, pages), page);
|
|
45
|
-
})());
|
|
46
|
-
});
|
|
47
|
-
const staticFilePromises = [];
|
|
48
|
-
staticFiles.forEach((filename) => {
|
|
49
|
-
staticFilePromises.push((async () => {
|
|
50
|
-
const sourcePath = path.join(CMD_EXEC_PATH, filename);
|
|
51
|
-
const publicDir = path.join(CLIENT_PATH, "public");
|
|
52
|
-
const targetPath = path.join(publicDir, filename);
|
|
53
|
-
await fse.remove(targetPath);
|
|
54
|
-
await fse.copy(sourcePath, targetPath);
|
|
55
|
-
})());
|
|
56
|
-
});
|
|
57
|
-
await Promise.all([
|
|
58
|
-
...mdPromises,
|
|
59
|
-
...staticFilePromises,
|
|
60
|
-
await injectFavicons(configObj, logger),
|
|
61
|
-
]);
|
|
62
|
-
createMetadataFileFromPages(pages, configObj);
|
|
63
|
-
logger.succeed("All files synced");
|
|
64
|
-
};
|
|
10
|
+
import listener from "./listener/index.js";
|
|
65
11
|
const shellExec = (cmd) => {
|
|
66
12
|
return shell.exec(cmd, { silent: true });
|
|
67
13
|
};
|
|
@@ -95,7 +41,14 @@ const dev = async () => {
|
|
|
95
41
|
await promptForYarn();
|
|
96
42
|
const logger = buildLogger("Starting a local Mintlify instance...");
|
|
97
43
|
await fse.ensureDir(path.join(DOT_MINTLIFY, "mint"));
|
|
98
|
-
|
|
44
|
+
const MINT_PATH = path.join(DOT_MINTLIFY, "mint");
|
|
45
|
+
shell.cd(MINT_PATH);
|
|
46
|
+
const gitPullStatus = shellExec("git show").stdout;
|
|
47
|
+
const currBranch = shellExec("git rev-parse --abbrev-ref HEAD").stdout;
|
|
48
|
+
if (gitPullStatus.startsWith("commit 78d764335877932a0dc305d615411dedd18bd18a") ||
|
|
49
|
+
currBranch === "legacy-components-import") {
|
|
50
|
+
await fse.emptyDir(MINT_PATH);
|
|
51
|
+
}
|
|
99
52
|
let runYarn = true;
|
|
100
53
|
const gitInstalled = shell.which("git");
|
|
101
54
|
let firstInstallation = false;
|
|
@@ -117,7 +70,7 @@ const dev = async () => {
|
|
|
117
70
|
if (internet && gitInstalled) {
|
|
118
71
|
shellExec("git config core.sparseCheckout true");
|
|
119
72
|
shellExec('echo "client/" >> .git/info/sparse-checkout');
|
|
120
|
-
pullOutput = shellExec("git pull mint-origin
|
|
73
|
+
pullOutput = shellExec("git pull mint-origin main").stdout;
|
|
121
74
|
shellExec("git config core.sparseCheckout false");
|
|
122
75
|
shellExec("rm .git/info/sparse-checkout");
|
|
123
76
|
}
|
|
@@ -147,13 +100,14 @@ const dev = async () => {
|
|
|
147
100
|
`);
|
|
148
101
|
process.exit(1);
|
|
149
102
|
}
|
|
150
|
-
|
|
103
|
+
shellExec(`yarn preconfigure ../../../../..${CMD_EXEC_PATH}`);
|
|
104
|
+
logger.succeed("Local Mintlify instance initialized");
|
|
151
105
|
run();
|
|
152
106
|
};
|
|
153
107
|
const run = () => {
|
|
154
108
|
shell.cd(CLIENT_PATH);
|
|
155
109
|
console.log(`🌿 ${Chalk.green("Navigate to your local preview at http://localhost:3000")}`);
|
|
156
|
-
shell.exec("npm run dev", { async: true });
|
|
110
|
+
shell.exec("npm run dev-watch", { async: true });
|
|
157
111
|
open("http://localhost:3000");
|
|
158
112
|
listener();
|
|
159
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-preview/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// TODO - put in prebuild package
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { getFileExtension, openApiCheck, getFileList } from "./utils.js";
|
|
4
|
+
const categorizeFiles = async (contentDirectoryPath) => {
|
|
5
|
+
const allFilesInCmdExecutionPath = await getFileList(contentDirectoryPath);
|
|
6
|
+
const contentFilenames = [];
|
|
7
|
+
const staticFilenames = [];
|
|
8
|
+
const promises = [];
|
|
9
|
+
const openApiFiles = [];
|
|
10
|
+
const snippets = [];
|
|
11
|
+
allFilesInCmdExecutionPath.forEach((filename) => {
|
|
12
|
+
promises.push((async () => {
|
|
13
|
+
const extension = getFileExtension(filename);
|
|
14
|
+
let isOpenApi = false;
|
|
15
|
+
if (extension && (extension === "mdx" || extension === "md")) {
|
|
16
|
+
if (filename.startsWith("/_snippets")) {
|
|
17
|
+
snippets.push(filename);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
contentFilenames.push(filename);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (extension &&
|
|
24
|
+
(extension === "json" || extension === "yaml" || extension === "yml")) {
|
|
25
|
+
const openApiInfo = await openApiCheck(path.join(contentDirectoryPath, filename));
|
|
26
|
+
isOpenApi = openApiInfo.isOpenApi;
|
|
27
|
+
if (isOpenApi) {
|
|
28
|
+
const fileName = path.parse(filename).base;
|
|
29
|
+
openApiFiles.push({
|
|
30
|
+
filename: fileName.substring(0, fileName.lastIndexOf(".")),
|
|
31
|
+
spec: openApiInfo.spec,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if ((!filename.endsWith("mint.config.json") ||
|
|
36
|
+
!filename.endsWith("mint.json")) &&
|
|
37
|
+
!isOpenApi) {
|
|
38
|
+
// all other files
|
|
39
|
+
staticFilenames.push(filename);
|
|
40
|
+
}
|
|
41
|
+
})());
|
|
42
|
+
});
|
|
43
|
+
await Promise.all(promises);
|
|
44
|
+
return { contentFilenames, staticFilenames, openApiFiles, snippets };
|
|
45
|
+
};
|
|
46
|
+
export default categorizeFiles;
|
|
47
|
+
//# sourceMappingURL=categorizeFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"categorizeFiles.js","sourceRoot":"","sources":["../../../src/local-preview/listener/categorizeFiles.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,eAAe,GAAG,KAAK,EAAE,oBAA4B,EAAE,EAAE;IAC7D,MAAM,0BAA0B,GAAG,MAAM,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,0BAA0B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9C,QAAQ,CAAC,IAAI,CACX,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,SAAS,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,CAAC,EAAE;gBAC5D,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;oBACrC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;qBAAM;oBACL,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACjC;aACF;iBAAM,IACL,SAAS;gBACT,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,KAAK,CAAC,EACrE;gBACA,MAAM,WAAW,GAAG,MAAM,YAAY,CACpC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAC1C,CAAC;gBACF,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;gBAClC,IAAI,SAAS,EAAE;oBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC3C,YAAY,CAAC,IAAI,CAAC;wBAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBAC1D,IAAI,EAAE,WAAW,CAAC,IAAI;qBACvB,CAAC,CAAC;iBACJ;aACF;iBAAM,IACL,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACrC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC,SAAS,EACV;gBACA,kBAAkB;gBAClB,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,EAAE,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACvE,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// TODO - add types
|
|
2
|
+
import { promises as _promises } from "fs";
|
|
3
|
+
import { outputFile } from "fs-extra";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import createPage from "./utils/createPage.js";
|
|
6
|
+
import categorizeFiles from "./categorizeFiles.js";
|
|
7
|
+
import { CMD_EXEC_PATH } from "../../constants.js";
|
|
8
|
+
import { getConfigObj } from "./utils/mintConfigFile.js";
|
|
9
|
+
const { readFile } = _promises;
|
|
10
|
+
// TODO: Put in prebuild package
|
|
11
|
+
const generateNavFromPages = (pages, mintConfigNav) => {
|
|
12
|
+
const createNav = (nav) => {
|
|
13
|
+
return {
|
|
14
|
+
group: nav.group,
|
|
15
|
+
version: nav.version,
|
|
16
|
+
pages: nav.pages.map((page) => {
|
|
17
|
+
if (typeof page === "string") {
|
|
18
|
+
return pages[page];
|
|
19
|
+
}
|
|
20
|
+
return createNav(page);
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
if (mintConfigNav == null) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let navFile = mintConfigNav.map((nav) => createNav(nav));
|
|
28
|
+
const filterOutNullInPages = (pages) => {
|
|
29
|
+
const newPages = [];
|
|
30
|
+
pages.forEach((page) => {
|
|
31
|
+
if (page == null) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (page?.pages) {
|
|
35
|
+
const newGroup = filterOutNullInGroup(page);
|
|
36
|
+
newPages.push(newGroup);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
newPages.push(page);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return newPages;
|
|
43
|
+
};
|
|
44
|
+
const filterOutNullInGroup = (group) => {
|
|
45
|
+
const newPages = filterOutNullInPages(group.pages);
|
|
46
|
+
const newGroup = {
|
|
47
|
+
...group,
|
|
48
|
+
pages: newPages,
|
|
49
|
+
};
|
|
50
|
+
return newGroup;
|
|
51
|
+
};
|
|
52
|
+
const newNavFile = navFile.map((group) => {
|
|
53
|
+
return filterOutNullInGroup(group);
|
|
54
|
+
});
|
|
55
|
+
return newNavFile;
|
|
56
|
+
};
|
|
57
|
+
// TODO: Put in prebuild package
|
|
58
|
+
const createPagesAcc = async (contentDirectoryPath, contentFilenames, openApiFiles, clientPath, writeFiles = false) => {
|
|
59
|
+
let pagesAcc = {};
|
|
60
|
+
const contentPromises = [];
|
|
61
|
+
contentFilenames.forEach((filename) => {
|
|
62
|
+
contentPromises.push((async () => {
|
|
63
|
+
const sourcePath = path.join(contentDirectoryPath, filename);
|
|
64
|
+
const contentStr = (await readFile(sourcePath)).toString();
|
|
65
|
+
const { slug, pageMetadata, pageContent } = await createPage(filename, contentStr, contentDirectoryPath, openApiFiles);
|
|
66
|
+
if (clientPath && writeFiles) {
|
|
67
|
+
const targetPath = path.join(clientPath, "src", "_props", filename);
|
|
68
|
+
await outputFile(targetPath, pageContent, {
|
|
69
|
+
flag: "w",
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
pagesAcc = {
|
|
73
|
+
...pagesAcc,
|
|
74
|
+
[slug]: pageMetadata,
|
|
75
|
+
};
|
|
76
|
+
})());
|
|
77
|
+
});
|
|
78
|
+
await Promise.all(contentPromises);
|
|
79
|
+
return pagesAcc;
|
|
80
|
+
};
|
|
81
|
+
export const generateNav = async () => {
|
|
82
|
+
const { contentFilenames, openApiFiles } = await categorizeFiles(CMD_EXEC_PATH);
|
|
83
|
+
const [pageAcc, configObj] = await Promise.all([
|
|
84
|
+
createPagesAcc(CMD_EXEC_PATH, contentFilenames, openApiFiles),
|
|
85
|
+
getConfigObj(CMD_EXEC_PATH),
|
|
86
|
+
]);
|
|
87
|
+
return generateNavFromPages(pageAcc, configObj?.navigation);
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/local-preview/listener/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import chokidar from "chokidar";
|
|
2
|
+
import fse from "fs-extra";
|
|
3
|
+
import pathUtil from "path";
|
|
4
|
+
import { fileIsMdxOrMd } from "./utils/fileIsMdxOrMd.js";
|
|
5
|
+
import { openApiCheck } from "./utils.js";
|
|
6
|
+
import { updateGeneratedNav, updateOpenApiFiles } from "./update.js";
|
|
7
|
+
import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
|
|
8
|
+
import { promises as _promises } from "fs";
|
|
9
|
+
import createPage from "./utils/createPage.js";
|
|
10
|
+
const { readFile } = _promises;
|
|
11
|
+
const listener = () => {
|
|
12
|
+
chokidar
|
|
13
|
+
.watch(CMD_EXEC_PATH, {
|
|
14
|
+
ignoreInitial: true,
|
|
15
|
+
ignored: ["node_modules", ".git"],
|
|
16
|
+
cwd: CMD_EXEC_PATH,
|
|
17
|
+
})
|
|
18
|
+
.on("all", async (event, filename) => {
|
|
19
|
+
if (event === "unlink" || event === "unlinkDir") {
|
|
20
|
+
if (fileIsMdxOrMd(filename)) {
|
|
21
|
+
const targetPath = pathUtil.join(CLIENT_PATH, "src", "_props", filename);
|
|
22
|
+
await fse.remove(targetPath);
|
|
23
|
+
console.log(`${filename.startsWith("_snippets") ? "Snippet" : "Page"} deleted: `, filename);
|
|
24
|
+
}
|
|
25
|
+
else if (filename === "mint.json") {
|
|
26
|
+
const targetPath = pathUtil.join(CLIENT_PATH, "src", "_props", "mint.json");
|
|
27
|
+
await fse.remove(targetPath);
|
|
28
|
+
console.log("⚠️ mint.json deleted. Please create a new mint.json file as it is mandatory.");
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const extension = pathUtil.parse(filename).ext.slice(1);
|
|
33
|
+
if (extension &&
|
|
34
|
+
(extension === "json" ||
|
|
35
|
+
extension === "yaml" ||
|
|
36
|
+
extension === "yml")) {
|
|
37
|
+
await updateOpenApiFiles();
|
|
38
|
+
await updateGeneratedNav();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// all other files
|
|
42
|
+
const targetPath = pathUtil.join(CLIENT_PATH, "public", filename);
|
|
43
|
+
await fse.remove(targetPath);
|
|
44
|
+
console.log("Static file deleted: ", filename);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const filePath = pathUtil.join(CMD_EXEC_PATH, filename);
|
|
49
|
+
let regenerateNav = false;
|
|
50
|
+
if (fileIsMdxOrMd(filename)) {
|
|
51
|
+
const targetPath = pathUtil.join(CLIENT_PATH, "src", "_props", filename);
|
|
52
|
+
if (filename.startsWith("_snippets")) {
|
|
53
|
+
const sourcePath = pathUtil.join(CMD_EXEC_PATH, filename);
|
|
54
|
+
await fse.remove(targetPath);
|
|
55
|
+
await fse.copy(sourcePath, targetPath);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
regenerateNav = true;
|
|
59
|
+
const contentStr = (await readFile(filePath)).toString();
|
|
60
|
+
const { pageContent } = await createPage(filename, contentStr, CMD_EXEC_PATH, []);
|
|
61
|
+
await fse.outputFile(targetPath, pageContent, {
|
|
62
|
+
flag: "w",
|
|
63
|
+
});
|
|
64
|
+
switch (event) {
|
|
65
|
+
case "add":
|
|
66
|
+
case "addDir":
|
|
67
|
+
console.log("New page detected: ", filename);
|
|
68
|
+
break;
|
|
69
|
+
default:
|
|
70
|
+
console.log("Page edited: ", filename);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (filename === "mint.json") {
|
|
75
|
+
regenerateNav = true;
|
|
76
|
+
const targetPath = pathUtil.join(CLIENT_PATH, "src", "_props", "mint.json");
|
|
77
|
+
await fse.copy(filePath, targetPath);
|
|
78
|
+
switch (event) {
|
|
79
|
+
case "add":
|
|
80
|
+
case "addDir":
|
|
81
|
+
console.log("Config added");
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
console.log("Config edited");
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const extension = pathUtil.parse(filename).ext.slice(1);
|
|
90
|
+
let isOpenApi = false;
|
|
91
|
+
if (extension &&
|
|
92
|
+
(extension === "json" ||
|
|
93
|
+
extension === "yaml" ||
|
|
94
|
+
extension === "yml")) {
|
|
95
|
+
const openApiInfo = await openApiCheck(pathUtil.join(CMD_EXEC_PATH, filename));
|
|
96
|
+
isOpenApi = openApiInfo.isOpenApi;
|
|
97
|
+
if (isOpenApi) {
|
|
98
|
+
await updateOpenApiFiles();
|
|
99
|
+
regenerateNav = true;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!isOpenApi) {
|
|
103
|
+
// all other files
|
|
104
|
+
const targetPath = pathUtil.join(CLIENT_PATH, "public", filename);
|
|
105
|
+
await fse.copy(filePath, targetPath);
|
|
106
|
+
}
|
|
107
|
+
switch (event) {
|
|
108
|
+
case "add":
|
|
109
|
+
case "addDir":
|
|
110
|
+
if (isOpenApi) {
|
|
111
|
+
console.log("OpenApi file added: ", filename);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.log("Static file added: ", filename);
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
if (isOpenApi) {
|
|
119
|
+
console.log("OpenApi file edited: ", filename);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
console.log("Static file edited: ", filename);
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (regenerateNav) {
|
|
128
|
+
// TODO: Instead of re-generating the entire nav, optimize by just updating the specific page that changed.
|
|
129
|
+
await updateGeneratedNav();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
export default listener;
|
|
135
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/local-preview/listener/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// TODO: Add Types
|
|
2
|
+
import fse from "fs-extra";
|
|
3
|
+
import { promises as _promises } from "fs";
|
|
4
|
+
import { getConfigPath } from "./utils/mintConfigFile.js";
|
|
5
|
+
import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
import { generateNav } from "./generate.js";
|
|
8
|
+
import categorizeFiles from "./categorizeFiles.js";
|
|
9
|
+
const { readFile } = _promises;
|
|
10
|
+
// TODO: Put in prebuild package
|
|
11
|
+
export const updateConfigFile = async (contentDirectoryPath) => {
|
|
12
|
+
const configTargetPath = join(CLIENT_PATH, "src/_props/mint.json");
|
|
13
|
+
await fse.remove(configTargetPath);
|
|
14
|
+
let configObj = null;
|
|
15
|
+
const configPath = await getConfigPath(contentDirectoryPath);
|
|
16
|
+
if (configPath) {
|
|
17
|
+
await fse.remove(configTargetPath);
|
|
18
|
+
await fse.copy(configPath, configTargetPath);
|
|
19
|
+
const configContents = await readFile(configPath);
|
|
20
|
+
configObj = JSON.parse(configContents.toString());
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
return configObj;
|
|
26
|
+
};
|
|
27
|
+
export const updateGeneratedNav = async () => {
|
|
28
|
+
const generatedNav = await generateNav();
|
|
29
|
+
const targetPath = join(CLIENT_PATH, "src", "_props", "generatedNav.json");
|
|
30
|
+
await fse.outputFile(targetPath, JSON.stringify(generatedNav, null, 2), {
|
|
31
|
+
flag: "w",
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
export const updateOpenApiFiles = async () => {
|
|
35
|
+
const { openApiFiles } = await categorizeFiles(CMD_EXEC_PATH);
|
|
36
|
+
const targetPath = join(CLIENT_PATH, "src", "_props", "openApiFiles.json");
|
|
37
|
+
await fse.outputFile(targetPath, JSON.stringify(openApiFiles, null, 2), {
|
|
38
|
+
flag: "w",
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/local-preview/listener/update.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;AAE/B,gCAAgC;AAEhC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,oBAA4B,EAAE,EAAE;IACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IACnE,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAE7D,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,YAAY,GAAG,MAAM,WAAW,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACtE,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACtE,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC,CAAC"}
|