@ztimson/momentum
Version:
Client library for momentum
50 lines • 1.71 kB
TypeScript
import { PathEvent, Unsubscribe } from '@ztimson/utils';
import { Meta, PathEventEmitter } from './core';
import { Momentum } from './momentum';
export type Token = Meta & {
/** Token value */
readonly token?: string;
/** User defined name */
readonly name: string;
/** Assigned to */
readonly owner: string;
/** Expiration */
readonly expire?: Date;
};
/** Manage user tokens */
export declare class Tokens extends PathEventEmitter {
protected momentum: Momentum;
private controller;
get cache(): import('@ztimson/utils').Cache<string, Token>;
constructor(momentum: Momentum);
/**
* Fetch all tokens for user
* @param {string} username User to search
* @param reload Force reload instead of using cache
* @return {Promise<Token[]>} List of tokens
*/
all(username: string, reload?: boolean): Promise<Token[]>;
/**
* Create a new user token
* @param {{name: string, owner: string, expire: null | Date}} token Token settings
* @return {Promise<Token>} Crated token
*/
create(token: Token): Promise<Token>;
/**
* Delete an existing token
* @param {string} id Token ID
* @return {Promise<void>} Resolves once complete
*/
delete(id: string): Promise<number>;
/**
* Subscribe to token changes for user
* @param {(value: Product[]) => any | null} callback Received changes
* @param opts Scope to single user
* @return {() => void} Function to unsubscribe
*/
sync(callback: (event: PathEvent, value: Token[]) => any | null, opts?: {
username?: string;
reload?: boolean;
}): Unsubscribe;
}
//# sourceMappingURL=tokens.d.ts.map