Skip to content

Commit

Permalink
fix(ses,errors)!: toPassableError fixed. (is/assert)PassableError rem…
Browse files Browse the repository at this point in the history
…oved.
  • Loading branch information
erights committed Mar 18, 2024
1 parent 772e461 commit cf992eb
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 37 deletions.
2 changes: 0 additions & 2 deletions packages/pass-style/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ export {
passStyleOf,
isPassable,
assertPassable,
isPassableError,
assertPassableError,
toPassableError,
} from './src/passStyleOf.js';

Expand Down
40 changes: 5 additions & 35 deletions packages/pass-style/src/passStyleOf.js
Original file line number Diff line number Diff line change
Expand Up @@ -270,46 +270,17 @@ harden(isPassable);
*/
const isPassableErrorPropertyDesc = (name, desc) =>
checkRecursivelyPassableErrorPropertyDesc(name, desc, passStyleOf);
harden(isPassableErrorPropertyDesc);

/**
* @param {string} name
* @param {PropertyDescriptor} desc
*/
const assertPassableErrorPropertyDesc = (name, desc) => {
checkRecursivelyPassableErrorPropertyDesc(
name,
desc,
passStyleOf,
assertChecker,
);
};
harden(assertPassableErrorPropertyDesc);

/**
* @param {unknown} err
* @returns {err is Error}
*/
export const isPassableError = err =>
checkRecursivelyPassableError(err, passStyleOf);

/**
* @param {unknown} err
* @returns {asserts err is Error}
*/
export const assertPassableError = err => {
checkRecursivelyPassableError(err, passStyleOf, assertChecker);
};

/**
* Return a new passable error that propagates the diagnostic info of the
* Return a passable error that propagates the diagnostic info of the
* original, and is linked to the original as a note.
*
* @param {Error} err
* @returns {Error}
*/
export const toPassableError = err => {
if (isPassableError(err)) {
harden(err);
if (checkRecursivelyPassableError(err, passStyleOf)) {
return err;
}
const { name, message } = err;
Expand All @@ -318,11 +289,9 @@ export const toPassableError = err => {
let cause;
let errors;
if (causeDesc && isPassableErrorPropertyDesc('cause', causeDesc)) {
// @ts-expect-error data descriptors have "value" property
cause = causeDesc.value;
}
if (errorsDesc && isPassableErrorPropertyDesc('errors', errorsDesc)) {
// @ts-expect-error data descriptors have "value" property
errors = errorsDesc.value;
}

Expand All @@ -337,7 +306,8 @@ export const toPassableError = err => {
// cause hidden diagnostic information of the original error
// to be logged.
annotateError(newError, X`copied from error ${err}`);
assertPassableError(newError);
passStyleOf(newError) === 'error' ||
Fail`Expected ${newError} to be a passable error`;
return newError;
};
harden(toPassableError);

0 comments on commit cf992eb

Please sign in to comment.