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.
yarn add fusion-tokens
import {FetchToken} from 'fusion-tokens';
A token for a fetch implementation.
type Fetch = (input: string, options: Object) => Promise<Response>
Typically, fetch
or a polyfill such as unfetch.
import {LoggerToken} from 'fusion-tokens';
A token for a logger implementation.
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.
import {SessionToken} from 'fusion-tokens';
A token for a session implementation.
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).
import {CacheToken} from 'fusion-tokens';
A token for a caching implementation.
type Cache = {
get(key: string): Promise<mixed>,
set(key: string, val: any): Promise<mixed>,
del(key: string): Promise<mixed>,
}
Standard API for caching.