@c8/simple-promised-file

0.1.4 • Public • Published

@c8/simple-promised-file

A small promise library with basic file functionality and promise-wrapped gm image module.

Features

  • Detects and uses proper MIME type (based on file's "magic" bytes)
  • Fully promised API
  • ES 6 object model
  • Image object wraps all graphicsmagic functionality, in a promised manner
  • fs-extra file functions (also promise wrapped) available on all File objects

Installation

npm i @c8/simple-promised-file

  • Image functions require either GraphicsMagic or ImageMagic

Usage

'use strict'

const PromisedFile = require('@c8/simple-promised-file')
const File = PromisedFile.File
const Image = PromisedFile.Image // extends PromisedFile.File with gm package image functionality

Get file info

Image(path.join(__dirname, '1.jpg'))
  .then((img) => {
    // Sync getters
    console.log(img.size) // 32114 (bytes, preloaded)
    console.log(img.extension) // jpg

    // Async getters
    img.mime.then(console.log) // image/jpeg
    img.isImage.then(console.log) // true
    img.depth().then(console.log) // 8

    img.dimensions()
      .then((dimensions) => {
        console.log(`Dimensions: ${dimensions.width}x${dimensions.height}px`)
      })

    // etc
  })
  .catch(console.log)

Get unique name

  • generates a short URL-friendly name with a proper extension (based on file's magic bytes), uses shortid
Image(path.join(__dirname, '1.jpg'))
  .then((img) => {
    return img.uniqueName
  })
  .then(console.log) // Sy8e7we7.jpg
  .catch(console.log)

Edit an image

  • Image object also provides all functionality of gm npm package in promised manner
const blurAndResize = (img) => {
  return img
    .resize(257, 257)
    .blur(23)
    .write(path.join(__dirname, '3.jpg'))
}

Image(path.join(__dirname, '1.jpg'))
  .then(blurAndResize)
  .then(console.log)
  .catch(console.log)

License

Developed for C8 MANAGEMENT LIMITED under MIT license

Readme

Keywords

none

Package Sidebar

Install

npm i @c8/simple-promised-file

Weekly Downloads

1

Version

0.1.4

License

MIT

Last publish

Collaborators

  • njo_c8
  • c8deploy
  • brooksyd2
  • unlucio