An open API service indexing awesome lists of open source software.

https://github.com/atayahmet/blobify

A Javascript automation tool to convert data (file, image etc.) to blob object and vice-versa.
https://github.com/atayahmet/blobify

blob blob-files blob-image chunking data-chunk inmemory-cache

Last synced: 3 months ago
JSON representation

A Javascript automation tool to convert data (file, image etc.) to blob object and vice-versa.

Awesome Lists containing this project

README

        

# Blobify
A Javascript automation tool to convert from html file object to blob object and more capabilities with creating custom helper function.

[![npm version](https://badge.fury.io/js/%40atayahmet%2Fblobify.svg)](https://badge.fury.io/js/%40atayahmet%2Fblobify)
[![Build Status](https://travis-ci.org/atayahmet/blobify.svg?branch=master)](https://travis-ci.org/atayahmet/blobify.svg?branch=master)
[![Dependency Status](https://img.shields.io/david/atayahmet/storage-based-queue.svg?style=flat-square)](https://david-dm.org/atayahmet/storage-based-queue)
[![Known Vulnerabilities](https://snyk.io/test/github/atayahmet/blobify/badge.svg?targetFile=package.json)](https://snyk.io/test/github/atayahmet/blobify?targetFile=package.json)
[![GitHub license](https://img.shields.io/github/license/atayahmet/storage-based-queue.svg)](https://github.com/atayahmet/blobify/blob/master/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/atayahmet/storage-based-queue.svg)](https://github.com/atayahmet/blobify/issues)

## Getting Started

```ts
import { chunk } from '@atayahmet/blobify';

chunk({ chars: stream, slice: 128, type: 'image/jpg' })
```

### Installing

```sh
npm i @atayahmet/blobify --save
```
or

```sh
yarn add @atayahmet/blobify
```

## Running the tests

```ts
npm test
```

### Built-in Helpers

| Name | Parameter Type | Return | Description |
|--------------|----------------|------------------------|-----------------------------------------|
| pipe | Function | Blobify class instance | Pipe itarator. |
| createBlob | string[] | Blob | Create blob object from chunks. |
| chunk | IChunkOptions | Uint8Array[] | Chunk generator. |
| base64Encode | File | Promise<string> | HTML5 File object. |
| base64Decode | string | any | Base64 encoded data. |
| toStream | Blob | Promise<string> | Convert blob object to readable content.|

### IChunkOptions

| Name | Type | Description |
|--------|----------------------|-------------------------------|
| chunks | string or Uint8Array | Data format. |
| slice | number (optional) | Per chunk size. (Default 512) |
| type | string | File content type. |

## Quick Example

Convert the file to uploadable form.

```ts
import { pipe, chunk, createBlob, base64Encode } from '@atayahmet/blobify';

const file = document.getElementById('image');

pipe(() => base64Encode(file))
.pipe(stream => chunk({ chars: stream, slice: 128 }))
.pipe(chunks => createBlob(chunks, "image/jpeg"))
.catch(console.error)
.run()
.then(resul => {
console.log(result);
});
```

Vice versa:

```ts
pipe(() => toStream(blob))
.pipe(stream => base64Decode(stream))
.pipe(data => {
// do some maniplation...
return data;
})
.run()
.then(result => {
// ...
});
```

## Built With

* [TypeScript](https://www.typescriptlang.org)

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).

## Authors

* [**Ahmet ATAY**](https://github.com/atayahmet) - *Initial work*

See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details