Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

adonis-kraken

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

adonis-kraken

Simplifies working with Kraken.io (image optimisation service) through Adonis

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

adonis-kraken

Service provider for working with Kraken.io (image optimisation service)

Installation

  • Run adonis install adonis-kraken within your Adonis project
  • Add 'adonis-kraken/providers/KrakenProvider' to the providers array within start/app.js

Configuration

There are two ways to configure this package, both of which require a config/kraken.js file to exist within your project. This file should have automatically been copied to your project during installation if you installed it via adonis-cli, however if you installed it with npm or Yarn, or the file was not copied across correctly, you can manually copy the config file from this package or run the following command to create it:

adonis kraken:getconfig

By default this configuration file is set up to read KRAKEN_API_KEY and KRAKEN_API_SECRET variables from your .env file so that they remain secret (as this file should not be included in your code repository!) however you are free to override this behaviour by modifying the config/kraken.js file and setting the apiKey and apiSecret properties there.

WARNING - It is dangerous to leave your API credentials directly in config/kraken.js in a public code repository as anyone will be able to read/use them - do so at your own risk!

Usage

Add const Kraken = use('Kraken') at the top of whatever file you wish to use this package. This package then exposes three methods:

MethodArgumentsDescription
urlObject {...}Optimize an image from a URL
uploadObject {...}Optimize an image directly from an upload. Must be a Stream or an image that can be converted to a Readable Stream!
userStatusBoolean formatSizesGives you a brief overview of your Kraken.io account (quota used, quota remaining etc). Passing true will automatically format data supplied by Kraken in KB/MB/GB etc (by default this will just be a number of Bytes)

See below for examples on how each method would be used.

Examples

'use strict'

const Kraken = use('Kraken')

class MyController {
  /**
   * Optimize an image via a URL
   */
  async optimizeImageViaURL () {
    const { data } = await Kraken.url({
      url: 'http://placehold.it/50x50',
      wait: true
    })
    console.log(data)
    return { status: 'success' }
  }

  /**
   * Optimize an image via a file upload
   */
  async optimizeImageViaUpload ({ request }) {
    // Get access to the uploaded file. We are using a method
    // which means we do not need to save the file to our local
    // filesystem first!
    // (http://adonisjs.com/docs/4.1/file-uploads#_streaming_files)
    request.multipart.file('file', {}, async (file) => {
      const { data } = await Kraken.upload({
        file: file.stream,
        wait: true
      })
      console.log(data)
    })

    // We must call the following when using this method of handling
    // uploaded files
    await request.multipart.process()

    return { status: 'success' }
  }

  /**
   * Get some quota stats based on the active API key/secret
   */
  async getUserStatus () {
    const { data } = await Kraken.userStatus({ formatSizes: true })
    return data
  }
}

module.exports = MyController

Keywords

FAQs

Package last updated on 12 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc