Add providers.json output plugin

This commit is contained in:
rtm516 committed 2024-08-31 19:31:10 +01:00
1 parent 1204f26b04
commit eb6d49c9c4
3 files changed
+45 -1

No files matched your search

+2 -1
View File
@@ -79,7 +79,8 @@ const config: Config = {
},
],
'docusaurus-plugin-sass',
'./src/plugins/create-versions-json.ts'
'./src/plugins/create-versions-json.ts',
'./src/plugins/create-providers-json.ts'
],
themes: ["docusaurus-theme-openapi-docs"],
+39
View File
@@ -0,0 +1,39 @@
import fs from 'fs';
import path from 'path';
import { LoadContext, Plugin, PluginOptions } from '@docusaurus/types';
import logger from '@docusaurus/logger';
import Module from 'module';
const createProvidersJsonPlugin = (context: LoadContext, options: PluginOptions): Plugin => {
return {
name: 'docusaurus-plugin-create-providers-json',
async postBuild({ outDir, routes, plugins }) {
const originalResolveFilename = Module._resolveFilename
// This is a hack to allow us to import a custom module instead of the normal translation module
Module._resolveFilename = function (request, parent, isMain, options) {
if (request == '@docusaurus/Translate') {
request = path.resolve(__dirname, 'custom_modules', 'translate.ts');
}
return originalResolveFilename.call(this, request, parent, isMain, options);
};
// Import the providers data
const { providersData } = await import('../data/providers');
// Restore the original resolve function
Module._resolveFilename = originalResolveFilename
const providersFilePath = path.join(outDir, 'data/providers.json');
fs.mkdirSync(path.dirname(providersFilePath), { recursive: true });
fs.writeFileSync(providersFilePath, JSON.stringify(providersData, null, 2), 'utf-8');
logger.success(`Created providers.json file at ${providersFilePath}`);
}
};
};
export default createProvidersJsonPlugin;
+4
View File
@@ -0,0 +1,4 @@
// This is a fake module that simulates @docusaurus/Translate
export function translate (data) {
return data.message
}