@picovoice/porcupine-node
Version:
Picovoice Porcupine Node.js binding
102 lines • 4.98 kB
JavaScript
//
// Copyright 2020-2022 Picovoice Inc.
//
// You may not use this file except in compliance with the license. A copy of the license is located in the "LICENSE"
// file accompanying this source.
//
// 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.
//
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.pvStatusToException = exports.PorcupineActivationRefusedError = exports.PorcupineActivationThrottledError = exports.PorcupineActivationLimitReachedError = exports.PorcupineActivationError = exports.PorcupineRuntimeError = exports.PorcupineInvalidStateError = exports.PorcupineKeyError = exports.PorcupineStopIterationError = exports.PorcupineInvalidArgumentError = exports.PorcupineIOError = exports.PorcupineOutOfMemoryError = exports.PorcupineError = void 0;
const pv_status_t_1 = require("./pv_status_t");
class PorcupineError extends Error {
_message;
_messageStack;
constructor(message, messageStack = []) {
super(PorcupineError.errorToString(message, messageStack));
this._message = message;
this._messageStack = messageStack;
}
get message() {
return this._message;
}
get messageStack() {
return this._messageStack;
}
static errorToString(initial, messageStack) {
let msg = initial;
if (messageStack.length > 0) {
msg += `: ${messageStack.reduce((acc, value, index) => acc + '\n [' + index + '] ' + value, '')}`;
}
return msg;
}
}
exports.PorcupineError = PorcupineError;
class PorcupineOutOfMemoryError extends PorcupineError {
}
exports.PorcupineOutOfMemoryError = PorcupineOutOfMemoryError;
class PorcupineIOError extends PorcupineError {
}
exports.PorcupineIOError = PorcupineIOError;
class PorcupineInvalidArgumentError extends PorcupineError {
}
exports.PorcupineInvalidArgumentError = PorcupineInvalidArgumentError;
class PorcupineStopIterationError extends PorcupineError {
}
exports.PorcupineStopIterationError = PorcupineStopIterationError;
class PorcupineKeyError extends PorcupineError {
}
exports.PorcupineKeyError = PorcupineKeyError;
class PorcupineInvalidStateError extends PorcupineError {
}
exports.PorcupineInvalidStateError = PorcupineInvalidStateError;
class PorcupineRuntimeError extends PorcupineError {
}
exports.PorcupineRuntimeError = PorcupineRuntimeError;
class PorcupineActivationError extends PorcupineError {
}
exports.PorcupineActivationError = PorcupineActivationError;
class PorcupineActivationLimitReachedError extends PorcupineError {
}
exports.PorcupineActivationLimitReachedError = PorcupineActivationLimitReachedError;
class PorcupineActivationThrottledError extends PorcupineError {
}
exports.PorcupineActivationThrottledError = PorcupineActivationThrottledError;
class PorcupineActivationRefusedError extends PorcupineError {
}
exports.PorcupineActivationRefusedError = PorcupineActivationRefusedError;
function pvStatusToException(pvStatus, errorMessage, messageStack = []) {
switch (pvStatus) {
case pv_status_t_1.default.OUT_OF_MEMORY:
throw new PorcupineOutOfMemoryError(errorMessage, messageStack);
case pv_status_t_1.default.IO_ERROR:
throw new PorcupineIOError(errorMessage, messageStack);
case pv_status_t_1.default.INVALID_ARGUMENT:
throw new PorcupineInvalidArgumentError(errorMessage, messageStack);
case pv_status_t_1.default.STOP_ITERATION:
throw new PorcupineStopIterationError(errorMessage, messageStack);
case pv_status_t_1.default.KEY_ERROR:
throw new PorcupineKeyError(errorMessage, messageStack);
case pv_status_t_1.default.INVALID_STATE:
throw new PorcupineInvalidStateError(errorMessage, messageStack);
case pv_status_t_1.default.RUNTIME_ERROR:
throw new PorcupineRuntimeError(errorMessage, messageStack);
case pv_status_t_1.default.ACTIVATION_ERROR:
throw new PorcupineActivationError(errorMessage, messageStack);
case pv_status_t_1.default.ACTIVATION_LIMIT_REACHED:
throw new PorcupineActivationLimitReachedError(errorMessage, messageStack);
case pv_status_t_1.default.ACTIVATION_THROTTLED:
throw new PorcupineActivationThrottledError(errorMessage, messageStack);
case pv_status_t_1.default.ACTIVATION_REFUSED:
throw new PorcupineActivationRefusedError(errorMessage, messageStack);
default:
// eslint-disable-next-line no-console
console.warn(`Unmapped error code: ${pvStatus}`);
throw new PorcupineError(errorMessage);
}
}
exports.pvStatusToException = pvStatusToException;
//# sourceMappingURL=errors.js.map