rx-player
Version:
Canal+ HTML5 Video Player
42 lines (39 loc) • 1.24 kB
text/typescript
/**
* Copyright 2015 CANAL+ Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { IPlayerError } from "../public_types";
import isKnownError from "./is_known_error";
import OtherError from "./other_error";
/*
* Format an unknown error into an API-defined error.
* @param {*} error
* @returns {Error}
*/
export default function formatError(
error: unknown,
{
defaultCode,
defaultReason,
}: {
defaultCode: "PIPELINE_LOAD_ERROR" | "PIPELINE_PARSE_ERROR" | "NONE";
defaultReason: string;
},
): IPlayerError {
if (isKnownError(error)) {
return error;
}
const reason = error instanceof Error ? error.toString() : defaultReason;
return new OtherError(defaultCode, reason);
}