in src/rapid-client.cc [52:91]
void OnOK() override {
Napi::Env env = Env();
auto response_data = Napi::String::New(env, response.payload.c_str());
// TODO: The current javascript code (InvokeContext.js) to handle the header values itself.
// These type conversions might be replaced by returning the final context object.
auto headers = Napi::Object::New(env);
headers.Set(
Napi::String::New(env, "lambda-runtime-deadline-ms"),
Napi::Number::New(env,
std::chrono::duration_cast<std::chrono::milliseconds>(
response.deadline.time_since_epoch()
).count()
));
headers.Set(
Napi::String::New(env, "lambda-runtime-aws-request-id"),
Napi::String::New(env, response.request_id.c_str()));
headers.Set(
Napi::String::New(env, "lambda-runtime-trace-id"),
Napi::String::New(env, response.xray_trace_id.c_str()));
headers.Set(
Napi::String::New(env, "lambda-runtime-invoked-function-arn"),
Napi::String::New(env, response.function_arn.c_str()));
if (response.client_context != "") {
headers.Set(
Napi::String::New(env, "lambda-runtime-client-context"),
Napi::String::New(env, response.client_context.c_str()));
}
if (response.cognito_identity != "") {
headers.Set(
Napi::String::New(env, "lambda-runtime-cognito-identity"),
Napi::String::New(env, response.cognito_identity.c_str()));
}
auto ret = Napi::Object::New(env);
ret.Set(Napi::String::New(env, "bodyJson"), response_data);
ret.Set(Napi::String::New(env, "headers"), headers);
deferred.Resolve(ret);
}