mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-17 00:35:50 +02:00
polish(theme): better error messages on navbar item rendering failures + ErrorCauseBoundary API (#8735)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
This commit is contained in:
parent
7961c5b8d5
commit
ea2b13ea94
9 changed files with 98 additions and 9 deletions
|
@ -0,0 +1,26 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import {getErrorCausalChain} from '../errorUtils';
|
||||
|
||||
describe('getErrorCausalChain', () => {
|
||||
it('works for simple error', () => {
|
||||
const error = new Error('msg');
|
||||
expect(getErrorCausalChain(error)).toEqual([error]);
|
||||
});
|
||||
|
||||
it('works for nested errors', () => {
|
||||
const error = new Error('msg', {
|
||||
cause: new Error('msg', {cause: new Error('msg')}),
|
||||
});
|
||||
expect(getErrorCausalChain(error)).toEqual([
|
||||
error,
|
||||
error.cause,
|
||||
(error.cause as Error).cause,
|
||||
]);
|
||||
});
|
||||
});
|
14
packages/docusaurus-utils-common/src/errorUtils.ts
Normal file
14
packages/docusaurus-utils-common/src/errorUtils.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
type CausalChain = [Error, ...Error[]];
|
||||
|
||||
export function getErrorCausalChain(error: Error): CausalChain {
|
||||
if (error.cause) {
|
||||
return [error, ...getErrorCausalChain(error.cause as Error)];
|
||||
}
|
||||
return [error];
|
||||
}
|
|
@ -10,3 +10,4 @@ export {
|
|||
default as applyTrailingSlash,
|
||||
type ApplyTrailingSlashParams,
|
||||
} from './applyTrailingSlash';
|
||||
export {getErrorCausalChain} from './errorUtils';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue