in src/database.cc [706:735]
void Database::Work_AfterLoadExtension(napi_env e, napi_status status, void* data) {
std::unique_ptr<LoadExtensionBaton> baton(static_cast<LoadExtensionBaton*>(data));
Database* db = baton->db;
db->pending--;
Napi::Env env = db->Env();
Napi::HandleScope scope(env);
Napi::Function cb = baton->callback.Value();
if (baton->status != SQLITE_OK) {
EXCEPTION(Napi::String::New(env, baton->message.c_str()), baton->status, exception);
if (!cb.IsUndefined() && cb.IsFunction()) {
Napi::Value argv[] = { exception };
TRY_CATCH_CALL(db->Value(), cb, 1, argv);
}
else {
Napi::Value info[] = { Napi::String::New(env, "error"), exception };
EMIT_EVENT(db->Value(), 2, info);
}
}
else if (!cb.IsUndefined() && cb.IsFunction()) {
Napi::Value argv[] = { env.Null() };
TRY_CATCH_CALL(db->Value(), cb, 1, argv);
}
db->Process();
}