| 139 | } |
| 140 | |
| 141 | void SetObjectWithIntKey(Napi::ObjectReference& obj, |
| 142 | Napi::Value key, |
| 143 | Napi::Value val, |
| 144 | int valType) { |
| 145 | uint32_t c_key = key.As<Napi::Number>().Uint32Value(); |
| 146 | switch (valType) { |
| 147 | case JS: |
| 148 | obj.Set(c_key, val); |
| 149 | break; |
| 150 | |
| 151 | case JS_CAST: |
| 152 | obj.Set(c_key, static_cast<napi_value>(val)); |
| 153 | break; |
| 154 | |
| 155 | case C_STR: { |
| 156 | std::string c_val = val.As<Napi::String>(); |
| 157 | obj.Set(c_key, c_val.c_str()); |
| 158 | break; |
| 159 | } |
| 160 | |
| 161 | case CPP_STR: { |
| 162 | std::string cpp_val = val.As<Napi::String>(); |
| 163 | obj.Set(c_key, cpp_val); |
| 164 | break; |
| 165 | } |
| 166 | |
| 167 | case BOOL: |
| 168 | obj.Set(c_key, val.As<Napi::Boolean>().Value()); |
| 169 | break; |
| 170 | |
| 171 | case DOUBLE: |
| 172 | obj.Set(c_key, val.As<Napi::Number>().DoubleValue()); |
| 173 | break; |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | void SetObject(const Napi::CallbackInfo& info) { |
| 178 | Env env = info.Env(); |