void TokenSupplierProxy()

in src/Authentication.cc [38:60]


void TokenSupplierProxy(Napi::Env env, Napi::Function jsCallback, TokenSupplierProxyData *data) {
  Napi::Value ret = jsCallback.Call({});
  if (ret.IsPromise()) {
    Napi::Promise promise = ret.As<Napi::Promise>();
    Napi::Value thenValue = promise.Get("then");
    if (thenValue.IsFunction()) {
      Napi::Function then = thenValue.As<Napi::Function>();
      Napi::Function callback = Napi::Function::New(env, [data](const Napi::CallbackInfo &info) {
        Napi::Value value = info[0];
        if (value.IsString()) {
          data->token = value.ToString().Utf8Value();
        }
        data->callback();
      });
      then.Call(promise, {callback});
      return;
    }
  }
  if (ret.IsString()) {
    data->token = ret.ToString().Utf8Value();
  }
  data->callback();
}