Skip to content
This repository has been archived by the owner on Sep 6, 2020. It is now read-only.
/ app-env Public archive

Buttercup application environment configuration manager

License

Notifications You must be signed in to change notification settings

buttercup/app-env

Repository files navigation

App Env

Buttercup application environment configuration manager

Build Status

⚠️ Deprecated

This repository is deprecated since Buttercup core version 4, as it is now included in the core library. It is no longer required to include this library as its functionality can be found in the buttercup dependency.

About

Buttercup is a cross-platform password manager, and in being so requires vastly different configurations for each platform it runs on. Take for instance Buttercup for Desktop and the browser extension - one is Node (native) and the other is web-based. This project provides a method to set environment-specific tools and methods (for crypto, for instance). It also provides some presets for native and web.

React Native

There is no preset configuration in this library for React Native (Buttercup for Mobile), as this environment is extremely complex and highly-reliant on React-Native internals.

Usage

Step 1: Install @buttercup/app-env as a dependency:

npm install @buttercup/app-env --save

Step 2: Load a preset environment:

// For node:
require("@buttercup/app-env/native");
// For web:
import "@buttercup/app-env/web";

Or execute a custom environment configuration (see later section).

Step 3: Load Buttercup and other dependencies

Buttercup should always be loaded after the app-env:

const { ArchiveManager } = require("buttercup");

// ...

Custom environment configuration

You can easily specify your own configuration by specifying methods for each required property, for example:

const { getSharedAppEnv } = require("@buttercup/app-env");

function decryptText(/* ... */) {
    /* ... */
}

function encryptText(/* ... */) {
    /* ... */
}

getSharedAppEnv().setProperties({
    "crypto/v1/decryptText": decryptText,
    "crypto/v1/encryptText": encryptText
});

The following properties should be specified:

Property Description
compression/v1/compressText Method for compressing text -> text.
compression/v1/decompressText Method for decompressing text -> text.
crypto/v1/decryptText Decryption method for decrypting text.
crypto/v1/encryptText Encryption method for encrypting text.
crypto/v1/setDerivationRounds Set the number of derivation rounds to use for key derivation.

About

Buttercup application environment configuration manager

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published