Skip to content
This repository has been archived by the owner on May 17, 2019. It is now read-only.

fusionjs/fusion-tokens

Repository files navigation

Build status

fusion-tokens

Dependency injection tokens for Fusion.js.

Fusion.js dependency injection is based on tokens rather than strings. This avoids naming collision issues. This package provides utilities to create named tokens, as well as common tokens that are used by packages maintained by the Fusion.js team.


Table of contents


Installation

yarn add fusion-tokens

API

FetchToken

import {FetchToken} from 'fusion-tokens';

A token for a fetch implementation.

Types
type Fetch = (input: string, options: Object) => Promise<Response>

Typically, fetch or a polyfill such as unfetch.

LoggerToken

import {LoggerToken} from 'fusion-tokens';

A token for a logger implementation.

Types
type Logger = {
  log(level: string, arg: any): void,
  error(arg: any): void,
  warn(arg: any): void,
  info(arg: any): void,
  verbose(arg: any): void,
  debug(arg: any): void,
  silly(arg: any): void,
}

Typically, console or a logger library such as Winston.

SessionToken

import {SessionToken} from 'fusion-tokens';

A token for a session implementation.

Types
type Session = {
  from(ctx: Context): {
    get(key: string): any,
    set(key: string, val: any): void,
  },
}

Typically, the service provided by fusion-plugin-jwt or a custom wrapper around similar key-value store APIs (such as Redis).

CacheToken

import {CacheToken} from 'fusion-tokens';

A token for a caching implementation.

Types
type Cache = {
  get(key: string): Promise<mixed>,
  set(key: string, val: any): Promise<mixed>,
  del(key: string): Promise<mixed>,
}

Standard API for caching.