fix: handle invalid Algolia keys gracefully in dev (#37088)
Invalid keys throw an error in production, but just cause invalid PropTypes and build warnings in development.pull/37114/head
parent
4889e0fdc6
commit
e72855dad3
|
@ -1,4 +1,4 @@
|
|||
require('dotenv').config();
|
||||
const env = require('../config/env');
|
||||
|
||||
const { createFilePath } = require('gatsby-source-filesystem');
|
||||
|
||||
|
@ -39,7 +39,18 @@ exports.onCreateNode = function onCreateNode({ node, actions, getNode }) {
|
|||
}
|
||||
};
|
||||
|
||||
exports.createPages = function createPages({ graphql, actions }) {
|
||||
exports.createPages = function createPages({ graphql, actions, reporter }) {
|
||||
if (!env.algoliaAPIKey || !env.algoliaAppId) {
|
||||
if (process.env.FREECODECAMP_NODE_ENV === 'production') {
|
||||
throw new Error(
|
||||
'Algolia App id and API key are required to start the client!'
|
||||
);
|
||||
} else {
|
||||
reporter.info(
|
||||
'Algolia keys missing or invalid. Required for search to yield results.'
|
||||
);
|
||||
}
|
||||
}
|
||||
const { createPage } = actions;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
|
|
|
@ -20,7 +20,11 @@ import { createSelector } from 'reselect';
|
|||
|
||||
const DEBOUNCE_TIME = 100;
|
||||
|
||||
const searchClient = algoliasearch(algoliaAppId, algoliaAPIKey);
|
||||
// If a key is missing, searches will fail, but the client will still render.
|
||||
const searchClient =
|
||||
algoliaAppId && algoliaAPIKey
|
||||
? algoliasearch(algoliaAppId, algoliaAPIKey)
|
||||
: {};
|
||||
|
||||
const propTypes = {
|
||||
children: PropTypes.any,
|
||||
|
|
|
@ -30,6 +30,12 @@ const locations = {
|
|||
module.exports = Object.assign(locations, {
|
||||
locale,
|
||||
stripePublicKey,
|
||||
algoliaAppId,
|
||||
algoliaAPIKey
|
||||
algoliaAppId:
|
||||
!algoliaAppId || algoliaAppId === 'Algolia app id from dashboard'
|
||||
? null
|
||||
: algoliaAppId,
|
||||
algoliaAPIKey:
|
||||
!algoliaAPIKey || algoliaAPIKey === 'Algolia api key from dashboard'
|
||||
? null
|
||||
: algoliaAPIKey
|
||||
});
|
||||
|
|
|
@ -5,8 +5,8 @@ ROLLBAR_APP_ID='my-rollbar-app-id'
|
|||
ROLLBAR_CLIENT_ID='post_client_id from rollbar dashboard'
|
||||
|
||||
ALGOLIA_ADMIN_KEY=123abc
|
||||
ALGOLIA_APP_ID=ACDEFG
|
||||
ALGOLIA_API_KEY=123abc
|
||||
ALGOLIA_APP_ID='Algolia app id from dashboard'
|
||||
ALGOLIA_API_KEY='Algolia api key from dashboard'
|
||||
|
||||
AUTH0_CLIENT_ID=stuff
|
||||
AUTH0_CLIENT_SECRET=stuff
|
||||
|
|
Loading…
Reference in New Issue