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