kukhariev / ngx-uploadx

Angular Resumable Upload Module
https://github.com/kukhariev/ngx-uploadx
MIT License
43 stars 23 forks source link

feat: injectable ajax lib #267

Closed kukhariev closed 4 years ago

kukhariev commented 4 years ago

Allow using third-party packages for requests.

// Axios example: 

const instance = Axios.create({
  /* put axios common config here */
});
class AxiosRequest implements Ajax {
  request = (config: AjaxRequestConfig) => {
    const cancelToken = new Axios.CancelToken(c => (config.canceler.onCancel = c));
    return instance.request({ ...config, cancelToken });
  };
}
const axiosRequestFactory = (): Ajax => new AxiosRequest();

@NgModule({
  declarations: [
  //  ...
  ],
  imports: [
  // ...
    UploadxModule
  ],
  providers: [{ provide: UPLOADX_AJAX, useFactory: axiosRequestFactory }],
  bootstrap: [AppComponent],
  exports: []
})
export class AppModule {}