react-native-executorch
Version:
An easy way to run AI models in React Native with ExecuTorch
54 lines (53 loc) • 2.78 kB
JavaScript
export var ETError;
(function (ETError) {
// React-native-ExecuTorch errors
ETError[ETError["UndefinedError"] = 101] = "UndefinedError";
ETError[ETError["ModuleNotLoaded"] = 102] = "ModuleNotLoaded";
ETError[ETError["FileWriteFailed"] = 103] = "FileWriteFailed";
ETError[ETError["ModelGenerating"] = 104] = "ModelGenerating";
ETError[ETError["LanguageNotSupported"] = 105] = "LanguageNotSupported";
ETError[ETError["InvalidModelSource"] = 255] = "InvalidModelSource";
//SpeechToText errors
ETError[ETError["MultilingualConfiguration"] = 160] = "MultilingualConfiguration";
ETError[ETError["MissingDataChunk"] = 161] = "MissingDataChunk";
ETError[ETError["StreamingNotStarted"] = 162] = "StreamingNotStarted";
// ExecuTorch mapped errors
// Based on: https://github.com/pytorch/executorch/blob/main/runtime/core/error.h
// System errors
ETError[ETError["Ok"] = 0] = "Ok";
ETError[ETError["Internal"] = 1] = "Internal";
ETError[ETError["InvalidState"] = 2] = "InvalidState";
ETError[ETError["EndOfMethod"] = 3] = "EndOfMethod";
// Logical errors
ETError[ETError["NotSupported"] = 16] = "NotSupported";
ETError[ETError["NotImplemented"] = 17] = "NotImplemented";
ETError[ETError["InvalidArgument"] = 18] = "InvalidArgument";
ETError[ETError["InvalidType"] = 19] = "InvalidType";
ETError[ETError["OperatorMissing"] = 20] = "OperatorMissing";
// Resource errors
ETError[ETError["NotFound"] = 32] = "NotFound";
ETError[ETError["MemoryAllocationFailed"] = 33] = "MemoryAllocationFailed";
ETError[ETError["AccessFailed"] = 34] = "AccessFailed";
ETError[ETError["InvalidProgram"] = 35] = "InvalidProgram";
ETError[ETError["InvalidExternalData"] = 36] = "InvalidExternalData";
ETError[ETError["OutOfResources"] = 37] = "OutOfResources";
// Delegate errors
ETError[ETError["DelegateInvalidCompatibility"] = 48] = "DelegateInvalidCompatibility";
ETError[ETError["DelegateMemoryAllocationFailed"] = 49] = "DelegateMemoryAllocationFailed";
ETError[ETError["DelegateInvalidHandle"] = 50] = "DelegateInvalidHandle";
})(ETError || (ETError = {}));
export const getError = (e) => {
if (typeof e === 'number') {
if (e in ETError)
return ETError[e];
return ETError[ETError.UndefinedError];
}
// try to extract number from message (can contain false positives)
const error = e;
const errorCode = parseInt(error.message, 10);
const message = Number.isNaN(errorCode)
? error.message
: ' ' + error.message.slice(`${errorCode}`.length).trimStart();
const ETErrorMessage = (errorCode in ETError ? ETError[errorCode] : ETError[ETError.UndefinedError]);
return ETErrorMessage + message;
};