@kaynewang/simple-saver
Version:
This package can help you download multi-file easily.
70 lines (57 loc) • 1.64 kB
Markdown
This library helps you to download multi-file or single file easily, it's dependent on [StreamSaver.js](https://github.com/jimmywarting/StreamSaver.js) that's an awesome project.
- Auto compressed when you choose multiple files.
- Auto fetch when you set url.
- Support filesystem api.
> Note: If you want to use filesystem api, please check if [your browser](https://developer.mozilla.org/en-US/docs/Web/API/Window/showSaveFilePicker) supports it.
```shell
$ npm install @kaynewang/simple-saver
```
```js
import { SimpleSaver } from '@kaynewang/simple-saver'
// multi-file save
const bs = new SimpleSaver()
const files = [
{
name: 'test.txt',
stream: () => new Response('Kayne!!!').body
},
{
name: 'test2.txt',
stream: () => new Response('No.2 Kayne!!!').body
},
{
url: 'https://s3-us-west-2.amazonaws.com/bencmbrook/water.png',
name: 'water.png'
},
{
url: 'https://s3-us-west-2.amazonaws.com/bencmbrook/Earth.jpg',
name: 'Earth.jpg'
},
{
url: 'https://d8d913s460fub.cloudfront.net/videoserver/cat-test-video-320x240.mp4',
name: 'cat.mp4'
}
]
bs.saveFilesAs(batchFilename.value, files)
// single-file save
const ss = new SimpleSaver()
const file = {
name: 'kayne.txt',
stream: () => new Response('Kayne!!!').body
}
ss.saveFileAs(file)
// filesystem api single-file save
const ss = new SimpleSaver({
useFileSystem: true
})
const file = {
name: 'kayne.txt',
stream: () => new Response('Kayne!!!').body
}
ss.saveFileAs(file)
```
Apache-2.0