@mintlify/prebuild 1.0.736 → 1.0.737
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/dist/prebuild/update/docsConfig/getCustomLanguages.d.ts +8 -0
- package/dist/prebuild/update/docsConfig/getCustomLanguages.js +21 -0
- package/dist/prebuild/update/docsConfig/index.d.ts +12 -1
- package/dist/prebuild/update/docsConfig/index.js +11 -2
- package/dist/prebuild/update/index.js +10 -4
- package/dist/prebuild/update/write/writeFiles.d.ts +1 -0
- package/dist/prebuild/update/write/writeFiles.js +6 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/prebuild/update/write/writeOpenApiFiles.d.ts +0 -2
- package/dist/prebuild/update/write/writeOpenApiFiles.js +0 -8
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import fse from 'fs-extra';
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
export async function getCustomLanguages({ config, contentDirectoryPath, }) {
|
|
5
|
+
const customLanguagesFilenames = typeof config.styling?.codeblocks === 'object' && config.styling.codeblocks.languages?.custom
|
|
6
|
+
? config.styling.codeblocks.languages.custom
|
|
7
|
+
: [];
|
|
8
|
+
if (customLanguagesFilenames.length === 0) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const customLanguages = await Promise.all(customLanguagesFilenames.map(async (filename) => {
|
|
12
|
+
const filePath = path.join(contentDirectoryPath, filename);
|
|
13
|
+
if (!fse.existsSync(filePath)) {
|
|
14
|
+
console.error(`Custom language file "${filePath}" defined in docs.json is not found`);
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const customLanguage = await readFile(filePath, 'utf8');
|
|
18
|
+
return { content: customLanguage, filePath: filename };
|
|
19
|
+
})).then((customLanguages) => customLanguages.filter((customLanguage) => customLanguage !== undefined));
|
|
20
|
+
return customLanguages;
|
|
21
|
+
}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import { AsyncAPIFile } from '@mintlify/common';
|
|
2
2
|
import { OpenApiFile, DecoratedNavigationPage } from '@mintlify/models';
|
|
3
3
|
import { DocsConfig } from '@mintlify/validation';
|
|
4
|
-
export declare function updateDocsConfigFile(contentDirectoryPath
|
|
4
|
+
export declare function updateDocsConfigFile({ contentDirectoryPath, openApiFiles, asyncApiFiles, docsConfig, localSchema, }: {
|
|
5
|
+
contentDirectoryPath: string;
|
|
6
|
+
openApiFiles: OpenApiFile[];
|
|
7
|
+
asyncApiFiles: AsyncAPIFile[];
|
|
8
|
+
docsConfig?: DocsConfig;
|
|
9
|
+
localSchema?: boolean;
|
|
10
|
+
}): Promise<{
|
|
5
11
|
docsConfig: DocsConfig;
|
|
6
12
|
pagesAcc: Record<string, DecoratedNavigationPage>;
|
|
7
13
|
newOpenApiFiles: OpenApiFile[];
|
|
8
14
|
newAsyncApiFiles: AsyncAPIFile[];
|
|
15
|
+
customLanguages: {
|
|
16
|
+
content: string;
|
|
17
|
+
filePath: string;
|
|
18
|
+
}[];
|
|
9
19
|
}>;
|
|
10
20
|
export { generateOpenApiDivisions } from './generateOpenApiDivisions.js';
|
|
11
21
|
export { generateOpenApiFromDocsConfig } from './generateOpenApiFromDocsConfig.js';
|
|
12
22
|
export { generateAsyncApiDivisions } from './generateAsyncApiDivisions.js';
|
|
13
23
|
export { generateAsyncApiFromDocsConfig } from './generateAsyncApiFromDocsConfig.js';
|
|
24
|
+
export { getCustomLanguages } from './getCustomLanguages.js';
|
|
@@ -2,8 +2,9 @@ import { getConfigPath } from '../../../utils.js';
|
|
|
2
2
|
import { DocsConfigUpdater } from '../ConfigUpdater.js';
|
|
3
3
|
import { generateAsyncApiDivisions } from './generateAsyncApiDivisions.js';
|
|
4
4
|
import { generateOpenApiDivisions } from './generateOpenApiDivisions.js';
|
|
5
|
+
import { getCustomLanguages } from './getCustomLanguages.js';
|
|
5
6
|
const NOT_CORRECT_PATH_ERROR = 'must be run in a directory where a docs.json file exists.';
|
|
6
|
-
export async function updateDocsConfigFile(contentDirectoryPath, openApiFiles, asyncApiFiles, docsConfig, localSchema) {
|
|
7
|
+
export async function updateDocsConfigFile({ contentDirectoryPath, openApiFiles, asyncApiFiles, docsConfig, localSchema, }) {
|
|
7
8
|
const configPath = await getConfigPath(contentDirectoryPath, 'docs');
|
|
8
9
|
if (configPath == null && docsConfig == null) {
|
|
9
10
|
throw Error(NOT_CORRECT_PATH_ERROR);
|
|
@@ -14,13 +15,21 @@ export async function updateDocsConfigFile(contentDirectoryPath, openApiFiles, a
|
|
|
14
15
|
if (docsConfig == null) {
|
|
15
16
|
throw Error(NOT_CORRECT_PATH_ERROR);
|
|
16
17
|
}
|
|
18
|
+
const customLanguages = await getCustomLanguages({ config: docsConfig, contentDirectoryPath });
|
|
17
19
|
const { newDocsConfig: docsConfigWithOpenApiPages, pagesAcc: pagesAccWithOpenApiPages, openApiFiles: newOpenApiFiles, } = await generateOpenApiDivisions(docsConfig, openApiFiles, undefined, localSchema);
|
|
18
20
|
const { newDocsConfig, pagesAcc: pagesAccWithAsyncApiPages, asyncApiFiles: newAsyncApiFiles, } = await generateAsyncApiDivisions(docsConfigWithOpenApiPages, asyncApiFiles, undefined, localSchema);
|
|
19
21
|
const pagesAcc = { ...pagesAccWithOpenApiPages, ...pagesAccWithAsyncApiPages };
|
|
20
22
|
await DocsConfigUpdater.writeConfigFile(newDocsConfig);
|
|
21
|
-
return {
|
|
23
|
+
return {
|
|
24
|
+
docsConfig: newDocsConfig,
|
|
25
|
+
pagesAcc,
|
|
26
|
+
newOpenApiFiles,
|
|
27
|
+
newAsyncApiFiles,
|
|
28
|
+
customLanguages,
|
|
29
|
+
};
|
|
22
30
|
}
|
|
23
31
|
export { generateOpenApiDivisions } from './generateOpenApiDivisions.js';
|
|
24
32
|
export { generateOpenApiFromDocsConfig } from './generateOpenApiFromDocsConfig.js';
|
|
25
33
|
export { generateAsyncApiDivisions } from './generateAsyncApiDivisions.js';
|
|
26
34
|
export { generateAsyncApiFromDocsConfig } from './generateAsyncApiFromDocsConfig.js';
|
|
35
|
+
export { getCustomLanguages } from './getCustomLanguages.js';
|
|
@@ -8,16 +8,21 @@ import { resolveImportsAndWriteFiles } from './resolveImportsAndWriteFiles.js';
|
|
|
8
8
|
import { updateFavicons } from './updateFavicons.js';
|
|
9
9
|
import { updateGeneratedDocsNav, updateGeneratedNav } from './updateGeneratedNav.js';
|
|
10
10
|
import { writeAsyncApiFiles } from './write/writeAsyncApiFiles.js';
|
|
11
|
-
import { writeFiles } from './write/writeFiles.js';
|
|
11
|
+
import { writeFiles, writeFile } from './write/writeFiles.js';
|
|
12
12
|
import { writeOpenApiData } from './write/writeOpenApiData.js';
|
|
13
|
-
import { writeOpenApiFiles } from './write/writeOpenApiFiles.js';
|
|
14
13
|
import { writeRssFiles } from './write/writeRssFiles.js';
|
|
15
14
|
export const update = async ({ contentDirectoryPath, staticFilenames, openApiFiles, asyncApiFiles, contentFilenames, snippets, snippetV2Filenames, docsConfigPath, localSchema, groups, }) => {
|
|
16
15
|
const mintConfigResult = await updateMintConfigFile(contentDirectoryPath, openApiFiles, localSchema);
|
|
17
16
|
// we used the original mint config without openapi pages injected
|
|
18
17
|
// because we will do it in `updateDocsConfigFile`, this will avoid duplicated openapi pages
|
|
19
18
|
const docsConfig = mintConfigResult != null ? upgradeToDocsConfig(mintConfigResult.originalMintConfig) : undefined;
|
|
20
|
-
const { docsConfig: newDocsConfig, pagesAcc, newOpenApiFiles, newAsyncApiFiles, } = await updateDocsConfigFile(
|
|
19
|
+
const { docsConfig: newDocsConfig, pagesAcc, newOpenApiFiles, newAsyncApiFiles, customLanguages, } = await updateDocsConfigFile({
|
|
20
|
+
contentDirectoryPath,
|
|
21
|
+
openApiFiles,
|
|
22
|
+
asyncApiFiles,
|
|
23
|
+
docsConfig: docsConfigPath ? undefined : docsConfig,
|
|
24
|
+
localSchema,
|
|
25
|
+
});
|
|
21
26
|
const pagePromises = readPageContents({
|
|
22
27
|
contentDirectoryPath,
|
|
23
28
|
openApiFiles: newOpenApiFiles,
|
|
@@ -43,7 +48,8 @@ export const update = async ({ contentDirectoryPath, staticFilenames, openApiFil
|
|
|
43
48
|
snippetsV2: snippetV2Contents,
|
|
44
49
|
filesWithImports,
|
|
45
50
|
}),
|
|
46
|
-
|
|
51
|
+
writeFile(newOpenApiFiles, 'src/_props/openApiFiles.json'),
|
|
52
|
+
writeFile(customLanguages, 'src/_props/customLanguages.json'),
|
|
47
53
|
writeOpenApiData(newOpenApiFiles),
|
|
48
54
|
writeAsyncApiFiles(newAsyncApiFiles),
|
|
49
55
|
writeRssFiles(newDocsConfig, rssPages),
|
|
@@ -12,3 +12,9 @@ export const writeFiles = (contentDirectoryPath, targetDirectoryPath, filenames)
|
|
|
12
12
|
});
|
|
13
13
|
return filePromises;
|
|
14
14
|
};
|
|
15
|
+
export const writeFile = async (contents, targetPath) => {
|
|
16
|
+
await fse.remove(targetPath);
|
|
17
|
+
await fse.outputFile(targetPath, JSON.stringify(contents), {
|
|
18
|
+
flag: 'w',
|
|
19
|
+
});
|
|
20
|
+
};
|