1 /*
2 * Copyright (C) 2025 Huawei Device Co., Ltd.
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
16 #include "env.h"
17
18 namespace NapiApi {
19
Env(napi_env env)20 Env::Env(napi_env env) : env_(env) {}
21
operator bool() const22 Env::operator bool() const
23 {
24 return (env_);
25 }
26
operator napi_env() const27 Env::operator napi_env() const
28 {
29 return env_;
30 }
31
GetNull() const32 napi_value Env::GetNull() const
33 {
34 if (!env_) {
35 return {};
36 }
37 napi_value null;
38 napi_get_null(env_, &null);
39 return null;
40 }
41
GetUndefined() const42 napi_value Env::GetUndefined() const
43 {
44 if (!env_) {
45 return {};
46 }
47 napi_value undefined;
48 napi_get_undefined(env_, &undefined);
49 return undefined;
50 }
51
GetBoolean(bool value) const52 napi_value Env::GetBoolean(bool value) const
53 {
54 if (!env_) {
55 return {};
56 }
57 napi_value val;
58 napi_get_boolean(env_, value, &val);
59 return val;
60 }
61
GetString(const BASE_NS::string_view value) const62 napi_value Env::GetString(const BASE_NS::string_view value) const
63 {
64 napi_value val;
65 napi_create_string_utf8(env_, value.data(), value.length(), &val);
66 return val;
67 }
68
GetNumber(uint32_t value) const69 napi_value Env::GetNumber(uint32_t value) const
70 {
71 if (!env_) {
72 return {};
73 }
74 napi_value val;
75 napi_create_uint32(env_, value, &val);
76 return val;
77 }
78
GetNumber(int32_t value) const79 napi_value Env::GetNumber(int32_t value) const
80 {
81 if (!env_) {
82 return {};
83 }
84 napi_value val;
85 napi_create_int32(env_, value, &val);
86 return val;
87 }
88
GetNumber(uint64_t value) const89 napi_value Env::GetNumber(uint64_t value) const
90 {
91 if (!env_) {
92 return {};
93 }
94 napi_value val;
95 napi_create_bigint_uint64(env_, value, &val);
96 return val;
97 }
98
GetNumber(int64_t value) const99 napi_value Env::GetNumber(int64_t value) const
100 {
101 if (!env_) {
102 return {};
103 }
104 napi_value val;
105 napi_create_bigint_int64(env_, value, &val);
106 return val;
107 }
108
GetNumber(float value) const109 napi_value Env::GetNumber(float value) const
110 {
111 if (!env_) {
112 return {};
113 }
114 napi_value val;
115 napi_create_double(env_, value, &val);
116 return val;
117 }
118
GetNumber(double value) const119 napi_value Env::GetNumber(double value) const
120 {
121 if (!env_) {
122 return {};
123 }
124 napi_value val;
125 napi_create_double(env_, value, &val);
126 return val;
127 }
128
129 } // namespace NapiApi
130