New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ngx-uploadx

Package Overview
Dependencies
Maintainers
1
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-uploadx

Angular Resumable Upload Module

  • 2.7.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.9K
decreased by-21.27%
Maintainers
1
Weekly downloads
 
Created
Source

ngx-uploadx

Angular Resumable Upload Module

npm version Build status

Key Features

  • Pause / Resume / Cancel Uploads
  • Retries using exponential back-off strategy
  • Chunking

Setup

  • Add ngx-uploadx module as dependency :
  npm install ngx-uploadx
  • Import UploadxModule:
//...
import { UploadxModule } from 'ngx-uploadx';

@NgModule({
  imports: [
    UploadxModule,
   // ...
});

Basic usage

// Component code
//...
import { Observable } from 'rxjs';
import { UploadxOptions, UploadState } from 'ngx-uploadx';

@Component({
  selector: 'app-home',
  templateUrl: `
  <input type="file" [uploadx]="options" (uploadxState)="onUpload($event)">
  `
})

export class AppHomeComponent {
  options: UploadxOptions = { url: `[URL]`};
  onUpload(state: Observable<UploadState>) {
    state
      .subscribe((item: UploadState) => {
         console.log(item);
         //...
      }
 }

Server-side setup

Directive

<input
  type="file"
  [uploadx]="options"
  [uploadxAction]="control"
  (uploadxState)="onUpload($event)"
/>

Selector

[uploadx]

inputs

[uploadx]: UploadxOptions
[uploadxAction]: UploadxControlEvent

Output

(uploadxState): $event <Observable>UploadState

Service

UploadxService

Public Methods

init(options: UploadxOptions): Observable<UploadState>

Initializes service. Returns Observable that emits a new value on progress or status changes

// example:
uploadxOptions: UploadxOptions = {
  concurrency: 2,
  endpoint: `${environment.api}/upload`,
  token:  () => localStorage.getItem('access_token'),
  autoUpload: true,
  chunkSize: 1024 * 256 * 8
};
ngOnInit() {
  this.uploadService.init(this.uploadxOptions)
    .subscribe((item: UploadState) => {
      console.log(item);
      //...
    }
}
connect(options?: UploadxOptions): Observable<Uploader[]>

Initializes service. Returns Observable that emits the current queue

// example:
@Component({
  template: `
    <input type="file" uploadx">
    <div *ngFor="let item of uploads$ | async">{{item.name}}</div>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class UploadsComponent {
  uploads$: Observable<Uploader[]>;
  options: UploadxOptions = {
    endpoint: `${environment.api}/upload?uploadType=uploadx`,
    token:  () => localStorage.getItem('access_token'),
  }
  constructor(private uploadService: UploadxService) {
    this.uploads$ = this.uploadService.connect(this.options);
  }
disconnect(): <void>

Terminate all uploads and clears the queue

handleFile(file: File): <void>

Create Uploader for the file and add to the queue

handleFileList(fileList: FileList): <void>

Add files to the upload queue

control(event: UploadxControlEvent): void

Send event

// example:

pause(uploadId: string) {
  this.uploadService.control({ action: 'pause', uploadId });
}

Public props

queue: Uploader[]

Uploaders array

events: Observable<UploadState>

Uploadx Events

Interfaces

UploadxOptions

NameDefaults?Description
[allowedTypes]-Set "accept" attribute
[autoUpload]trueAuto upload with global options
[chunkSize]1MiBIf set to > 0 use chunked upload
[concurrency]2Limit the number of concurrent uploads
[headers]-Custom headers
[uploaderClass]UploaderXUpload API implementation
[token]-Auth Bearer token / token Getter
[endpoint]"/upload"API URL
[maxRetryAttempts]3Maximum number of retries to allow (client errors (4xx))

<Observable> UploadState

NameTypeDescription
fileFileFileAPI File
namestringfile name
percentagenumberprogress percentage
remainingnumberETA
responseObject | nullresponse body
responseStatusnumberresponse’s status
sizenumberfile size
speednumberupload speed bytes/sec
statusUploadStatus'added', 'queue', 'uploading', 'complete','retry', 'error', 'cancelled', 'paused'
uploadIdstringupload id
URIstringfile URI

UploadItem

Item custom options, override globals

NameTypeDescription
[method]stringAPI initial method
[uploadId]stringinternal upload id ( ReadOnly )
[URI]stringItem URL
[headers]{ [key: string]: string }Add custom headers
[metadata]anyAdd custom data
[endpoint]stringCustom url

UploadxControlEvent

NameTypeDescription
actionUploadAction'uploadAll', 'upload', 'cancel', 'cancelAll', 'pauseAll, 'pause', 'refreshToken'
[uploadId]stringupload id ( ReadOnly )
[itemOptions]UploadItemcustom options

Run demo

  • Start server npm run server
  • Run demo app npm start
  • Navigate to http://localhost:4200/

Build

Run npm run build to build the lib.

packaged by ng-packagr

Contributing

Pull requests are welcome!

Collaborators

wil92GitHub/wil92
kukharievGitHub/kukhariev

License

The MIT License (see the LICENSE file for the full text)

Keywords

FAQs

Package last updated on 22 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc