1 // Copyright 2021 The Dawn Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #include "src/dawn_node/binding/Errors.h" 16 17 namespace wgpu { namespace binding { 18 19 namespace { 20 constexpr char kHierarchyRequestError[] = "HierarchyRequestError"; 21 constexpr char kWrongDocumentError[] = "WrongDocumentError"; 22 constexpr char kInvalidCharacterError[] = "InvalidCharacterError"; 23 constexpr char kNoModificationAllowedError[] = "NoModificationAllowedError"; 24 constexpr char kNotFoundError[] = "NotFoundError"; 25 constexpr char kNotSupportedError[] = "NotSupportedError"; 26 constexpr char kInUseAttributeError[] = "InUseAttributeError"; 27 constexpr char kInvalidStateError[] = "InvalidStateError"; 28 constexpr char kSyntaxError[] = "SyntaxError"; 29 constexpr char kInvalidModificationError[] = "InvalidModificationError"; 30 constexpr char kNamespaceError[] = "NamespaceError"; 31 constexpr char kSecurityError[] = "SecurityError"; 32 constexpr char kNetworkError[] = "NetworkError"; 33 constexpr char kAbortError[] = "AbortError"; 34 constexpr char kURLMismatchError[] = "URLMismatchError"; 35 constexpr char kQuotaExceededError[] = "QuotaExceededError"; 36 constexpr char kTimeoutError[] = "TimeoutError"; 37 constexpr char kInvalidNodeTypeError[] = "InvalidNodeTypeError"; 38 constexpr char kDataCloneError[] = "DataCloneError"; 39 constexpr char kEncodingError[] = "EncodingError"; 40 constexpr char kNotReadableError[] = "NotReadableError"; 41 constexpr char kUnknownError[] = "UnknownError"; 42 constexpr char kConstraintError[] = "ConstraintError"; 43 constexpr char kDataError[] = "DataError"; 44 constexpr char kTransactionInactiveError[] = "TransactionInactiveError"; 45 constexpr char kReadOnlyError[] = "ReadOnlyError"; 46 constexpr char kVersionError[] = "VersionError"; 47 constexpr char kOperationError[] = "OperationError"; 48 constexpr char kNotAllowedError[] = "NotAllowedError"; 49 New(Napi::Env env,std::string name,std::string message={},unsigned short code=0)50 static Napi::Error New(Napi::Env env, 51 std::string name, 52 std::string message = {}, 53 unsigned short code = 0) { 54 auto err = Napi::Error::New(env); 55 err.Set("name", name); 56 err.Set("message", message.empty() ? name : message); 57 err.Set("code", static_cast<double>(code)); 58 return err; 59 } 60 61 } // namespace 62 HierarchyRequestError(Napi::Env env)63 Napi::Error Errors::HierarchyRequestError(Napi::Env env) { 64 return New(env, kHierarchyRequestError); 65 } 66 WrongDocumentError(Napi::Env env)67 Napi::Error Errors::WrongDocumentError(Napi::Env env) { 68 return New(env, kWrongDocumentError); 69 } 70 InvalidCharacterError(Napi::Env env)71 Napi::Error Errors::InvalidCharacterError(Napi::Env env) { 72 return New(env, kInvalidCharacterError); 73 } 74 NoModificationAllowedError(Napi::Env env)75 Napi::Error Errors::NoModificationAllowedError(Napi::Env env) { 76 return New(env, kNoModificationAllowedError); 77 } 78 NotFoundError(Napi::Env env)79 Napi::Error Errors::NotFoundError(Napi::Env env) { 80 return New(env, kNotFoundError); 81 } 82 NotSupportedError(Napi::Env env)83 Napi::Error Errors::NotSupportedError(Napi::Env env) { 84 return New(env, kNotSupportedError); 85 } 86 InUseAttributeError(Napi::Env env)87 Napi::Error Errors::InUseAttributeError(Napi::Env env) { 88 return New(env, kInUseAttributeError); 89 } 90 InvalidStateError(Napi::Env env)91 Napi::Error Errors::InvalidStateError(Napi::Env env) { 92 return New(env, kInvalidStateError); 93 } 94 SyntaxError(Napi::Env env)95 Napi::Error Errors::SyntaxError(Napi::Env env) { 96 return New(env, kSyntaxError); 97 } 98 InvalidModificationError(Napi::Env env)99 Napi::Error Errors::InvalidModificationError(Napi::Env env) { 100 return New(env, kInvalidModificationError); 101 } 102 NamespaceError(Napi::Env env)103 Napi::Error Errors::NamespaceError(Napi::Env env) { 104 return New(env, kNamespaceError); 105 } 106 SecurityError(Napi::Env env)107 Napi::Error Errors::SecurityError(Napi::Env env) { 108 return New(env, kSecurityError); 109 } 110 NetworkError(Napi::Env env)111 Napi::Error Errors::NetworkError(Napi::Env env) { 112 return New(env, kNetworkError); 113 } 114 AbortError(Napi::Env env)115 Napi::Error Errors::AbortError(Napi::Env env) { 116 return New(env, kAbortError); 117 } 118 URLMismatchError(Napi::Env env)119 Napi::Error Errors::URLMismatchError(Napi::Env env) { 120 return New(env, kURLMismatchError); 121 } 122 QuotaExceededError(Napi::Env env)123 Napi::Error Errors::QuotaExceededError(Napi::Env env) { 124 return New(env, kQuotaExceededError); 125 } 126 TimeoutError(Napi::Env env)127 Napi::Error Errors::TimeoutError(Napi::Env env) { 128 return New(env, kTimeoutError); 129 } 130 InvalidNodeTypeError(Napi::Env env)131 Napi::Error Errors::InvalidNodeTypeError(Napi::Env env) { 132 return New(env, kInvalidNodeTypeError); 133 } 134 DataCloneError(Napi::Env env)135 Napi::Error Errors::DataCloneError(Napi::Env env) { 136 return New(env, kDataCloneError); 137 } 138 EncodingError(Napi::Env env)139 Napi::Error Errors::EncodingError(Napi::Env env) { 140 return New(env, kEncodingError); 141 } 142 NotReadableError(Napi::Env env)143 Napi::Error Errors::NotReadableError(Napi::Env env) { 144 return New(env, kNotReadableError); 145 } 146 UnknownError(Napi::Env env)147 Napi::Error Errors::UnknownError(Napi::Env env) { 148 return New(env, kUnknownError); 149 } 150 ConstraintError(Napi::Env env)151 Napi::Error Errors::ConstraintError(Napi::Env env) { 152 return New(env, kConstraintError); 153 } 154 DataError(Napi::Env env)155 Napi::Error Errors::DataError(Napi::Env env) { 156 return New(env, kDataError); 157 } 158 TransactionInactiveError(Napi::Env env)159 Napi::Error Errors::TransactionInactiveError(Napi::Env env) { 160 return New(env, kTransactionInactiveError); 161 } 162 ReadOnlyError(Napi::Env env)163 Napi::Error Errors::ReadOnlyError(Napi::Env env) { 164 return New(env, kReadOnlyError); 165 } 166 VersionError(Napi::Env env)167 Napi::Error Errors::VersionError(Napi::Env env) { 168 return New(env, kVersionError); 169 } 170 OperationError(Napi::Env env)171 Napi::Error Errors::OperationError(Napi::Env env) { 172 return New(env, kOperationError); 173 } 174 NotAllowedError(Napi::Env env)175 Napi::Error Errors::NotAllowedError(Napi::Env env) { 176 return New(env, kNotAllowedError); 177 } 178 179 }} // namespace wgpu::binding 180