| 1174 | |
| 1175 | template <typename T> |
| 1176 | napi_value encodeArray(napi_env env, napi_callback_info info) { |
| 1177 | size_t argc = 6; |
| 1178 | napi_value args[6] = {nullptr}; |
| 1179 | NAPI_CALL(napi_get_cb_info(env, info, &argc, args, nullptr, nullptr)); |
| 1180 | |
| 1181 | auto handle = NValueToUInt64(env, args[0]); |
| 1182 | auto key = NValueToString(env, args[1]); |
| 1183 | MMKV *kv = reinterpret_cast<MMKV *>(handle); |
| 1184 | if (kv && key.length() > 0) { |
| 1185 | auto buffer = NValueToMMBuffer(env, args[2]); |
| 1186 | auto offset = NValueToUInt32(env, args[3]); |
| 1187 | auto length = NValueToUInt32(env, args[4]); |
| 1188 | auto ptr = (uint8_t *)buffer.getPtr() + offset; |
| 1189 | std::span<T> value((T *)ptr, length / sizeof(T)); |
| 1190 | if (IsNValueUndefined(env, args[5])) { |
| 1191 | auto ret = kv->set(value, key); |
| 1192 | return BoolToNValue(env, ret); |
| 1193 | } |
| 1194 | uint32_t expiration = NValueToUInt32(env, args[5]); |
| 1195 | auto ret = kv->set(value, key, expiration); |
| 1196 | return BoolToNValue(env, ret); |
| 1197 | } |
| 1198 | return BoolToNValue(env, false); |
| 1199 | } |
| 1200 | |
| 1201 | template <typename T> |
| 1202 | napi_value decodeArray(napi_env env, napi_callback_info info) { |
nothing calls this directly
no test coverage detected