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

ember-cli-file-saver

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-cli-file-saver

Provides file saving capability to an Ember CLI application.

  • 1.2.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2K
decreased by-6.68%
Maintainers
1
Weekly downloads
 
Created
Source

Ember-cli-file-saver

Provides support to save binary file from an API for an Ember CLI application.

Installation

Install the ember-cli addon in your ember-cli project:

$ ember install ember-cli-file-saver

This should also automatically:

  • add an NPM dependency to FileSaver.
  • add a transport layer for jQuery to handle arraybuffer and blob dataType.

Note that to make this new transport layer works nicely with ember-data it is necessary to make your adapter extend the adapter-arraybuffer-mixin mixin and pass either arraybuffer:true or blob:true as an AJAX option, otherwise ember-data will try to interpret the response as JSON.

Usage

ES6 Import

This addon provides the ability to import FileSaver as an ES6 module.

import FileSaver from 'file-saver';

Adapter Mixin for ArrayBuffer / Blob response

import ActiveModelAdapter from 'active-model-adapter';
import AdapterArrayBufferMixin from 'ember-cli-file-saver/mixins/adapter-arraybuffer-mixin';

const ApplicationAdapter = ActiveModelAdapter.extend(AdapterArrayBufferMixin);

ApplicationAdapter.reopen({
 // 
});

export default ApplicationAdapter;

Download from a component

import Ember from 'ember';
import FileSaverMixin from 'ember-cli-file-saver/mixins/file-saver';

const { Component, computed } = Ember;

export default Component.extend(FileSaverMixin, {

  tagName: 'button',

  click() {
    this.get('ajax').request({
      url: this.get('downloadUrl'),
      method: 'GET',
      dataType: 'arraybuffer', // or 'blob'
      processData: false
    })
    .then((content) => this.saveFileAs(this.get('filename'), content, this.get('contentType')));
  }
});

Using from a model

This works well with the ember-api-actions project:

// models/invoice.js

import Ember from 'ember';
import DS from 'ember-data';
import { memberAction } from 'ember-api-actions';

const { computed } = Ember;
const { belongsTo, attr, Model } = DS;

export default Model.extend({

  invoiceNumber: attr('number'),

  download: memberAction({ path: 'download', type: 'GET', ajaxOptions: { arraybuffer: true } })
});
// in a component

invoiceModel
  .download()
  .then((pdfContent) => this.saveFileAs('invoice.pdf', pdfContent, 'application/pdf'));

Installation

  • git clone <repository-url> this repository
  • cd ember-cli-file-saver
  • npm install

Running

Running Tests

  • npm test (Runs ember try:each to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://ember-cli.com/.

Keywords

FAQs

Package last updated on 21 Mar 2018

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