@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.
@@ -0,0 +1,8 @@
1
+ import { DocsConfig } from '@mintlify/validation';
2
+ export declare function getCustomLanguages({ config, contentDirectoryPath, }: {
3
+ config: DocsConfig;
4
+ contentDirectoryPath: string;
5
+ }): Promise<{
6
+ content: string;
7
+ filePath: string;
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: string, openApiFiles: OpenApiFile[], asyncApiFiles: AsyncAPIFile[], docsConfig?: DocsConfig, localSchema?: boolean): Promise<{
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 { docsConfig: newDocsConfig, pagesAcc, newOpenApiFiles, newAsyncApiFiles };
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(contentDirectoryPath, openApiFiles, asyncApiFiles, docsConfigPath ? undefined : docsConfig, localSchema);
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
- writeOpenApiFiles(newOpenApiFiles),
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),
@@ -1 +1,2 @@
1
1
  export declare const writeFiles: (contentDirectoryPath: string, targetDirectoryPath: string, filenames: string[]) => Promise<void>[];
2
+ export declare const writeFile: (contents: unknown, targetPath: string) => Promise<void>;
@@ -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
+ };