in src/process_worker.cc [27:57]
void GetProcessesWorker::HandleOKCallback() {
Nan::HandleScope scope;
// Transfer results into actual result object
v8::Local<v8::Array> result = Nan::New<v8::Array>(*process_count);
for (uint32_t i = 0; i < *process_count; i++) {
v8::Local<v8::Object> object = Nan::New<v8::Object>();
Nan::Set(object, Nan::New<v8::String>("name").ToLocalChecked(),
Nan::New<v8::String>(process_info[i].name).ToLocalChecked());
Nan::Set(object, Nan::New<v8::String>("pid").ToLocalChecked(),
Nan::New<v8::Number>(process_info[i].pid));
Nan::Set(object, Nan::New<v8::String>("ppid").ToLocalChecked(),
Nan::New<v8::Number>(process_info[i].ppid));
// Property should be undefined when memory flag isn't set
if (MEMORY & *process_data_flags) {
Nan::Set(object, Nan::New<v8::String>("memory").ToLocalChecked(),
Nan::New<v8::Number>(process_info[i].memory));
}
if (COMMANDLINE & *process_data_flags) {
Nan::Set(object, Nan::New<v8::String>("commandLine").ToLocalChecked(),
Nan::New<v8::String>(process_info[i].commandLine).ToLocalChecked());
}
Nan::Set(result, i, Nan::New<v8::Value>(object));
}
v8::Local<v8::Value> argv[] = { result };
Nan::AsyncResource resource("windows-process-tree:addon.HandleOKCallback");
callback->Call(1, argv, &resource);
}