Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-evaporate

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-evaporate

AngularJS module for the EvaporateJS library

  • 2.0.0-beta.2
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Current release is in beta stage, it will be released as v2.0.0 when tests added. If you're using a 1.x version, please read the corresponding readme from your distribution.

angular-evaporate

Reinforces the Evaporate library to allow Angular-specific usage along with all the native functionality plus additional features. Available injectables:

  1. Evaporate - native lib.

  2. AngularEvaporateException - dedicated exception handler.

  3. AngularEvaporateUpload - file upload handler: + calculates name, url, content type for a new upload, + calculates progress percent and estimated time, + saves status updates with timestamps, + saves info, warning and error messages, + binds Evaporate's API to the upload id, + updates $scope on Evaporate's callbacks, + manages dependent states (e.g. pausing, paused, resumed - only one can be true), + adds meta states (e.g. stopped is when either completed, canceled or failed).

  4. AngularEvaporate - uploads queue handler (extends Evaporate): + manages uploads queue with an ability for every upload to be started later, + allows to specify a default config, which will be merged with every consequent upload's one, + allows to specify a custom naming function, where current instances of AngularEvaporateUpload and AngularEvaporate are available.

  5. angular-evaporate - directive: + lazy mode option - explicit uploading start, + same files uploading option - clean file input after every select.

Get

  1. Install
```bash
npm install --save angular-evaporate
```

2. Include

```html
<script src="node_modules/angular-evaporate/lib/angular-evaporate.min.js"></script>
```

3. Depend

```javascript
angular.module('yourApp', ['angular-evaporate']);
```

Use

  1. Inject
```javascript
yourApp.controller('yourCtrl', ['$scope', 'AngularEvaporate',
  function ($scope, AngularEvaporate) {...}
]);
```

2. Init

```javascript
$scope.ae = new AngularEvaporate(...);
```

`AngularEvaporate` extends [`Evaporate`](https://github.com/TTLabs/EvaporateJS), so its constructor accepts the same arguments.

3. Directive

```html
<div ng-controller="yourCtrl">
  <input type="file" multiple angular-evaporate="ae"/>
</div>
```

Example

  1. Configure
Follow the [Evaporate](https://github.com/TTLabs/EvaporateJS)'s instructions to set up an `S3` bucket, then accordingly update `AngularEvaporate`'s constructor parameters in the `example/index.js` file and `AWS_SECRET_KEY` value in the `example/server.js` file.
  1. Run
```bash
npm install && npm start
```

3. Check

```
http://localhost:8080/example
```

4. Hint

Always use server-side validation for incoming requests to the signerUrl, because in this simple example anyone could send you anything he wanted and just get it signed with your secret key.


AngularEvaporate class

Extends Evaporate, therefore accepts the same constructor arguments and provides the same functionality, but also introduces additional features. To not interfere with possible future versions, all added object keys start from the $ symbol.

Properties

PropertyTypeUsageDescription
$uploadsArrayessentialinstances of AngularEvaporateUpload
$applyFunctionrecommendedset this to your $scope.$apply.bind($scope) to update UI when needed
$configObjectoptionaldefault config for an upload (if properties explicitly specified on a consequent call of $enqueue() or $add(), they would have higher priority)
$namerFunctionoptionalcustom upload naming function (instance of AngularEvaporateUpload as an input argument, instance of AngularEvaporate as this), default one just returns a filename
$urlStringcautiouscustom url of the bucket's root directory
$slothmodeBooleanoptional(directive) lazy mode option - explicit uploading start
$rinserepeatBooleanoptional(directive) same files uploading option - clean file input after every select

API

FunctionArgumentsResultDescription
$addsame as for Evaporate.add()AngularEvaporateUploadenqueue and start uploading immediately
$enqueuesame as for Evaporate.add()AngularEvaporateUploadcreate an upload and append it to the queue
$dequeueAngularEvaporateUploadNumber - index in $uploadsremove an upload from the queue
$startAngularEvaporateUploadsame as from Evaporate.add()start uploading an already queued upload

AngularEvaporateUpload class

Properties

PropertyTypeUsageDescription
nameStringoptionaldesired path from bucket's root directory
contentTypeStringoptionalMIME type
$idNumberread onlyresult of the Evaporate.add()
$urlStringread onlyfull url of the file when it's uploaded
$started, $paused,
$resumed, $pausing,
$cancelled, $complete,
$info, $warn,
$error, $progress
NumberoptionalDate.now() of every Evaporate's callback fired
$stoppedNumberoptionalvalue of either $complete, $cancelled or $error
$infoMsg, $warnMsg, $errorMsgStringoptionalinput parameter of the corresponding callback
$percentNumberoptionalcurrent uploading progress
$secondsNumberoptionalestimated elapsed time

API

FunctionArgumentsResultDescription
$start-same as from Evaporate.add()start or resume this upload if already started
$pause, $resume, $cancel-same as from the corresponding Evaporate[fn](id)alter this upload correspondingly

Keywords

FAQs

Package last updated on 28 Aug 2016

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