From 644074f3bd3d385df14ca539fd962f387d47637b Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Mon, 14 Apr 2025 18:08:28 +0800 Subject: [PATCH 1/2] feat(plugin-meilisearch): add pre-check when starting the plugin --- .../src/node/meilisearchPlugin.ts | 63 +++++++++++-------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts b/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts index b7a0a79aa4..64b4d5880c 100644 --- a/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts +++ b/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts @@ -1,11 +1,12 @@ import { + Logger, addViteSsrExternal, entries, fromEntries, getFullLocaleConfig, } from '@vuepress/helper' import type { Plugin } from 'vuepress' -import { getDirname, path } from 'vuepress/utils' +import { colors, getDirname, path } from 'vuepress/utils' import type { MeiliSearchOptions } from '../shared/index.js' import { localeInfo } from './locales.js' @@ -15,33 +16,45 @@ const __dirname = getDirname(import.meta.url) const PLUGIN_NAME = '@vuepress/plugin-meilisearch' +const logger = new Logger(PLUGIN_NAME) + export const meilisearchPlugin = ({ locales = {}, translations: rootTranslations, ...options }: MeiliSearchPluginOptions): Plugin => - (app) => ({ - name: PLUGIN_NAME, - - define: { - __ML_SEARCH_LOCALES__: getFullLocaleConfig({ - app, - name: PLUGIN_NAME, - default: localeInfo, - config: fromEntries( - entries({ - '/': { translations: rootTranslations }, - ...locales, - }).map(([key, { translations = {} }]) => [key, translations]), - ), - }), - __ML_SEARCH_OPTIONS__: options, - }, - - extendsBundlerOptions: (bundlerOptions) => { - addViteSsrExternal(bundlerOptions, app, 'meilisearch-docsearch') - }, - - clientConfigFile: path.resolve(__dirname, '../client/config.js'), - }) + (app) => { + if (!options.host || !options.apiKey || !options.indexUid) { + logger.error( + `${colors.cyan('host')}, ${colors.cyan('apiKey')} and${colors.cyan('indexUid')} options are required!`, + ) + + return { name: PLUGIN_NAME } + } + + return { + name: PLUGIN_NAME, + + define: { + __ML_SEARCH_LOCALES__: getFullLocaleConfig({ + app, + name: PLUGIN_NAME, + default: localeInfo, + config: fromEntries( + entries({ + '/': { translations: rootTranslations }, + ...locales, + }).map(([key, { translations = {} }]) => [key, translations]), + ), + }), + __ML_SEARCH_OPTIONS__: options, + }, + + extendsBundlerOptions: (bundlerOptions) => { + addViteSsrExternal(bundlerOptions, app, 'meilisearch-docsearch') + }, + + clientConfigFile: path.resolve(__dirname, '../client/config.js'), + } + } From c08555ef8f9c6497612bbf431677e1fe43cc6c52 Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Mon, 14 Apr 2025 18:14:21 +0800 Subject: [PATCH 2/2] Update plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts --- plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts b/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts index 64b4d5880c..8dba9ebc39 100644 --- a/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts +++ b/plugins/search/plugin-meilisearch/src/node/meilisearchPlugin.ts @@ -27,7 +27,7 @@ export const meilisearchPlugin = (app) => { if (!options.host || !options.apiKey || !options.indexUid) { logger.error( - `${colors.cyan('host')}, ${colors.cyan('apiKey')} and${colors.cyan('indexUid')} options are required!`, + `${colors.cyan('host')}, ${colors.cyan('apiKey')} and ${colors.cyan('indexUid')} options are required!`, ) return { name: PLUGIN_NAME }