4.0.0 • Published 2 years ago

@tanker/file-ponyfill v4.0.0

Weekly downloads
1,203
License
Apache-2.0
Repository
github
Last release
2 years ago

A cross-browser ponyfill for File

Why

A common issue with the JavaScript File class is the lack of a constructor in some browsers:

new File(['Hi!'], 'file.txt'); // will throw in Edge and Internet Explorer

Using feature detection, this package will either expose a File ponyfill in browsers lacking a proper constructor, or the native File class in others.

Usage

You can safely use this package as a drop-in replacement for the native File class in all browsers, e.g.:

import FilePonyfill from '@tanker/file-ponyfill';

// Get bits from whatever method you want, using fetch() as an example
const response = await fetch('https://your.server.com/path/to/a/report.pdf');
const bits = [await response.arrayBuffer()];

// Construct a file in a cross-browser fashion
const file = new FilePonyfill(bits, 'report.pdf', { type: 'application/pdf' });

// Check what we've got
file instanceof window.Blob; // true
file instanceof window.File; // true
file instanceof FilePonyfill; // true
file.name; // 'report.pdf'
file.type; // 'application/pdf'
file.size; // the size of report.pdf

Note that the ponyfill is built using a clever class hierarchy so that instances will appear as regular File and Blob instances, which can safely be read by a FileReader and used with other APIs working with files.

License

Developped by Tanker, under the Apache-2.0 license.

Tanker allows seamless integration of end-to-end encryption in your application.

Read the documentation to get started.

Go to tanker.io for more informations about Tanker.

4.0.1-alpha1

2 years ago

4.0.1-alpha2

2 years ago

4.0.0

2 years ago

4.0.0-alpha1

2 years ago

4.0.0-beta1

2 years ago

3.3.2

2 years ago

3.3.2-beta1

2 years ago

3.3.1-beta1

2 years ago

3.3.1

2 years ago

3.3.0-beta2

2 years ago

3.3.0

2 years ago

3.3.0-alpha4

2 years ago

3.3.0-alpha3

2 years ago

3.3.0-beta1

2 years ago

3.3.0-alpha2

2 years ago

3.3.0-alpha1

2 years ago

3.2.0

3 years ago

3.2.0-alpha2

3 years ago

3.2.0-beta1

3 years ago

3.2.0-alpha1

3 years ago

3.1.0

3 years ago

3.1.0-alpha1

3 years ago

3.1.0-alpha2

3 years ago

3.1.0-beta1

3 years ago

3.0.0

3 years ago

3.0.0-beta1

3 years ago

3.0.0-alpha1

3 years ago

2.32.2

3 years ago

2.32.2-beta1

3 years ago

2.32.0

3 years ago

2.32.1

3 years ago

2.32.0-alpha42

3 years ago

2.32.1-beta1

3 years ago

2.32.0-beta6

3 years ago

2.32.0-beta7

3 years ago

2.32.0-beta4

3 years ago

2.32.0-beta2

3 years ago

2.32.0-alpha1

3 years ago

2.31.0-beta1

3 years ago

2.31.0

3 years ago

2.30.0

3 years ago

2.29.0-beta1

3 years ago

2.29.0

3 years ago

2.29.1

3 years ago

2.31.0-alpha1

3 years ago

2.29.1-beta1

3 years ago

2.30.0-beta3

3 years ago

2.30.0-beta2

3 years ago

2.30.0-beta1

3 years ago

2.30.0-alpha2

3 years ago

2.30.0-alpha3

3 years ago

2.30.0-alpha1

3 years ago

2.29.0-alpha1

3 years ago

2.28.0

3 years ago

2.28.0-beta1

3 years ago

2.26.0-beta1

4 years ago

2.26.0-alpha1

4 years ago

2.26.0-alpha2

4 years ago

2.27.0

3 years ago

2.26.0

4 years ago

2.27.0-beta1

3 years ago

2.27.0-alpha1

3 years ago

2.24.0-beta3

4 years ago

2.24.0-beta1

4 years ago

2.24.1-alpha0

4 years ago

2.24.1-alpha1

4 years ago

2.24.1-alpha2

4 years ago

2.24.1-alpha3

4 years ago

2.24.1-alpha4

4 years ago

2.23.2-alpha1

4 years ago

2.23.2-alpha2

4 years ago

2.23.2-alpha3

4 years ago

2.23.2-alpha4

4 years ago

2.23.2-alpha5

4 years ago

2.25.0-beta1

4 years ago

2.24.0-alpha1

4 years ago

2.25.0

4 years ago

2.25.0-alpha2

4 years ago

2.25.0-alpha3

4 years ago

2.25.0-alpha1

4 years ago

2.24.1

4 years ago

2.24.0

4 years ago

2.23.1

4 years ago

2.23.1-alpha10

4 years ago

2.23.1-beta1

4 years ago

2.23.1-alpha7

4 years ago

2.23.1-alpha8

4 years ago

2.23.1-alpha6

4 years ago

2.23.1-alpha3

4 years ago

2.23.1-alpha4

4 years ago

2.23.1-alpha1

4 years ago

2.23.1-alpha2

4 years ago

2.23.1-alpha9

4 years ago

2.23.0-beta3

4 years ago

2.23.0-beta2

4 years ago

2.23.0

4 years ago

2.23.0-alpha6

4 years ago

2.23.0-beta1

4 years ago

2.23.0-alpha5

4 years ago

2.23.0-alpha4

4 years ago

2.22.0

4 years ago

2.22.0-alpha1

4 years ago

2.21.0-beta1

4 years ago

2.21.0

4 years ago

2.21.0-alpha1

4 years ago

2.20.1-alpha1

4 years ago

2.20.0

4 years ago

2.20.0-beta1

4 years ago

2.19.1-beta1

4 years ago

2.19.1

4 years ago

2.19.0

4 years ago

2.19.0-beta1

4 years ago

2.17.2-alpha1

4 years ago

2.15.1

4 years ago

2.18.0

4 years ago

2.17.1

4 years ago

2.16.1

4 years ago

2.17.1-beta1

4 years ago

2.17.0-alpha1

4 years ago

2.17.0

4 years ago

2.16.0

4 years ago

2.16.0-beta1

4 years ago

2.15.0-beta1

4 years ago

2.15.0

4 years ago

2.15.0-alpha2

4 years ago

2.15.0-alpha3

4 years ago

2.15.0-alpha1

4 years ago

2.14.0-alpha1

4 years ago

2.14.0

4 years ago

2.14.0-beta1

4 years ago

2.14.0-alpha2

4 years ago

2.13.2-beta1

4 years ago

2.13.2-beta2

4 years ago

2.13.1-beta1

4 years ago

2.13.1

4 years ago

2.13.0-beta1

4 years ago

2.13.0

4 years ago

2.12.1-beta1

4 years ago

2.12.0-beta1

4 years ago

2.12.0

4 years ago

2.12.0-alpha2

4 years ago

2.12.0-alpha1

4 years ago

2.11.1-alpha3

4 years ago

2.11.0

4 years ago

2.11.0-beta1

4 years ago

2.11.0-alpha1

4 years ago

2.10.0

4 years ago

2.10.0-beta1

4 years ago

2.9.2-alpha3

4 years ago

2.9.2-alpha2

4 years ago

2.9.2-alpha1

4 years ago

2.9.1

4 years ago

2.9.1-beta2

4 years ago

2.9.1-alpha2

4 years ago

2.9.1-alpha1

4 years ago

2.9.0

4 years ago

2.9.0-alpha1

4 years ago

2.9.0-beta1

4 years ago

2.8.0

4 years ago

2.8.0-beta1

4 years ago

2.7.0

4 years ago

2.6.5-alpha1

5 years ago

2.6.4

5 years ago

2.6.4-beta1

5 years ago

2.6.4-beta2

5 years ago

2.6.3

5 years ago

2.6.3-beta1

5 years ago

2.6.2-beta1

5 years ago

2.6.2-beta2

5 years ago

2.6.2

5 years ago

2.6.1

5 years ago

2.6.1-beta1

5 years ago

2.6.0

5 years ago

2.6.0-beta2

5 years ago

2.6.0-beta1

5 years ago

2.5.1-alpha2

5 years ago

2.5.1-alpha1

5 years ago

2.5.0-beta1

5 years ago

2.5.0

5 years ago

2.4.0

5 years ago

2.4.0-beta1

5 years ago

2.3.1-beta1

5 years ago

2.3.1-beta2

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.3.0-beta1

5 years ago

2.2.7

5 years ago

2.2.7-beta1

5 years ago

2.2.6

5 years ago

2.2.6-alpha1

6 years ago

2.2.5

6 years ago

2.2.5-beta1

6 years ago

2.2.4

6 years ago

2.2.4-beta1

6 years ago

2.2.3

6 years ago

2.2.3-beta1

6 years ago

2.2.2

6 years ago

2.2.2-beta1

6 years ago

2.2.1

6 years ago

2.2.1-beta2

6 years ago

2.2.1-beta1

6 years ago

2.2.0

6 years ago

2.2.0-beta1

6 years ago

2.1.4

6 years ago

2.1.4-beta1

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.2-beta3

6 years ago

2.1.2-beta2

6 years ago

2.1.2-beta1

6 years ago

2.1.1

6 years ago

2.1.1-beta3

6 years ago

2.1.1-beta2

6 years ago

2.1.1-beta1

6 years ago

2.0.2-alpha16

6 years ago

2.0.2-alpha15

6 years ago

2.0.2-alpha14

6 years ago

2.0.2-alpha13

6 years ago

2.0.2-alpha12

6 years ago

2.0.2-alpha11

6 years ago

2.0.2-alpha10

6 years ago

2.0.2-alpha9

6 years ago

2.0.2-alpha8

6 years ago

2.0.2-alpha7

6 years ago

2.0.2-alpha5

6 years ago

2.0.2-alpha4

6 years ago

2.0.2-alpha3

6 years ago

2.0.2-alpha2

6 years ago

2.0.1

6 years ago

2.0.1-beta2

6 years ago

2.0.1-beta1

6 years ago

2.0.0

6 years ago

2.0.0-beta3

6 years ago

2.0.0-beta2

6 years ago

2.0.0-beta1

6 years ago

2.0.0-alpha15

6 years ago

2.0.0-alpha14

6 years ago

1.10.4

6 years ago

1.10.4-beta1

6 years ago

1.10.3

6 years ago

1.10.3-beta1

6 years ago

2.0.0-alpha12

6 years ago

1.10.2

6 years ago

2.0.0-alpha11

6 years ago

2.0.0-alpha9

6 years ago

2.0.0-alpha7

6 years ago

2.0.0-alpha6

6 years ago

1.10.1

6 years ago

1.10.1-beta1

6 years ago

2.0.0-alpha5

6 years ago

2.0.0-alpha3

6 years ago

1.10.0

6 years ago

1.10.0-beta3

6 years ago

1.10.0-beta2

6 years ago

1.10.0-beta1

6 years ago