• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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