| 77 | } |
| 78 | |
| 79 | static vector<string> NValueToStringArray(napi_env env, napi_value value, bool maybeUndefined = false) { |
| 80 | vector<string> keys; |
| 81 | if (maybeUndefined && IsNValueUndefined(env, value)) { |
| 82 | return keys; |
| 83 | } |
| 84 | |
| 85 | uint32_t length = 0; |
| 86 | if (napi_get_array_length(env, value, &length) != napi_ok || length == 0) { |
| 87 | return keys; |
| 88 | } |
| 89 | keys.reserve(length); |
| 90 | |
| 91 | for (uint32_t index = 0; index < length; index++) { |
| 92 | napi_value jsKey = nullptr; |
| 93 | if (napi_get_element(env, value, index, &jsKey) != napi_ok) { |
| 94 | continue; |
| 95 | } |
| 96 | keys.push_back(NValueToString(env, jsKey)); |
| 97 | } |
| 98 | return keys; |
| 99 | } |
| 100 | |
| 101 | static napi_value StringArrayToNValue(napi_env env, const vector<string> &value) { |
| 102 | napi_value jsArr = nullptr; |
no test coverage detected