file-promisify
TypeScript icon, indicating that this package has built-in type declarations

3.1.0 • Public • Published

file-promisify

Version Downloads License

Utilities for file and image handling, in Browsers, with Promise.

Live demo

Installation

Node.js

$ npm install --save file-promisify

Browser via CDN

<script src="https://cdn.jsdelivr.net/npm/file-promisify/dist/index.umd.js"></script>

Usage

import Files from 'file-promisify'

const instance = new Files()

/** open file dialog */
instance.select()
  .then(([blob]) => {})
  .catch(error => {})

/** open file dialog for selecting multiple files */
instance.select({ multiple: true })
  .then(blobs => {})
  .catch(error => {})

/** open file dialog for selecting an image file */
instance.select({ accept: 'image/*' })
  .then(blob => {
    /** wrap image into maximum 128 × 128 pixels */
    Files.processImage({ blob, width: 128, height: 128, crop: false })
      .then(dataUrl => {})
      .catch(error => {})

    /** crop image into 128 × 128 pixels exactly */
    Files.processImage({ blob, width: 128, height: 128, crop: true })
      .then(dataUrl => {})
      .catch(error => {})
  })
  .catch(error => {})

/** open directory dialog for selecting a directory (only webkit) */
instance.selectDirectory()
  .then(blobs => {})
  .catch(error => {})

API

instance.select({ multiple: [multiple], accept: [accept] })

Open a file dialog.

Parameter Type Description Default
multiple Boolean Multiple selection or not. false
accept String MIME type accepted. '*/*'
  • Returns: Promise<FileList>

instance.selectDirectory()

Open a directory dialog. (only webkit)

  • Returns: Promise<FileList>

Files.processImage({ blob: <blob>, width: [width], height: [height], crop: [crop] })

Process image.

Parameter Type Description Default
blob Blob The blob of image data. (required)
width Number Target width. null
height Number Target height. null
crop Boolean Should crop or not. true for cropping image into dimension exactly, while false for wrapping image into the maximum dimension. false
  • Returns: Promise<String>

Files.urlToImage(<url>)

Fetch image URL into Image instance.

Parameter Type Description Default
url String The URL of image. (required)
  • Returns: Promise<Image>

Files.blobToDataUrl(<blob>)

Transform Blob to data URL.

Parameter Type Description Default
blob Blob The blob. (required)
  • Returns: Promise<String>

Files.dataUrlToBlob(<dataUrl>)

Transform data URL to Blob.

Parameter Type Description Default
dataUrl String The data url. (required)
  • Returns: Promise<Blob>

Files.dataUrlToBase64(<dataUrl>)

Transform data URL to Base64 encoded string.

Parameter Type Description Default
dataUrl String The data url. (required)
  • Returns: Promise<String>

Files.blobToBase64(<blob>)

Transform Blob to Base64 encoded string.

Parameter Type Description Default
blob Blob The blob. (required)
  • Returns: Promise<String>

Files.blobToArrayBuffer(<blob>)

Transform Blob to ArrayBuffer.

Parameter Type Description Default
blob Blob The blob. (required)
  • Returns: Promise<ArrayBuffer>

Files.blobToString(<blob>, [encoding])

Transform Blob to string.

Parameter Type Description Default
blob Blob The blob. (required)
encoding String The encoding. 'UTF-8'
  • Returns: Promise<String>

Files.stringToBlob(<string>, [type])

Transform string to Blob.

Parameter Type Description Default
string String The string. (required)
type String The MIME type. 'application/octet-stream'
  • Returns: Promise<Blob>

Files.stringToByteArray(<string>)

Transform string to byte array.

Parameter Type Description Default
string String The string. (required)
  • Returns: Promise<Uint8Array>

Files.getImageOrientation(<blob>)

Get image orientation value from Blob.

Parameter Type Description Default
blob Blob The blob of image data. (required)
  • Returns: Promise<Number>

Files.getMimeTypeFromDataUrl(<dataUrl>)

Get MIME type from data URL.

Parameter Type Description Default
dataUrl String The data url. (required)
  • Returns: Promise<String>

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i file-promisify

Weekly Downloads

2

Version

3.1.0

License

MIT

Unpacked Size

109 kB

Total Files

12

Last publish

Collaborators

  • ychong