UNPKG

@thumbmarkjs/thumbmarkjs

Version:

![GitHub package.json dynamic](https://img.shields.io/github/package-json/version/ilkkapeltola/thumbmarkjs) ![NPM Version](https://img.shields.io/npm/v/@thumbmarkjs/thumbmarkjs) ![NPM Downloads](https://img.shields.io/npm/dm/%40thumbmarkjs%2Fthumbmarkjs

42 lines (38 loc) 1.45 kB
import { optionsInterface } from "./options"; import { getThumbmark, includeComponent as globalIncludeComponent } from './functions'; import { getVersion } from "./utils/version"; import { defaultOptions } from "./options"; import { componentInterface } from "./factory"; /** * A client for generating thumbmarks with a persistent configuration. */ export class Thumbmark { private options: optionsInterface; /** * Creates a new Thumbmarker client instance. * @param options - Default configuration options for this instance. */ constructor(options?: optionsInterface) { this.options = { ...defaultOptions, ...options }; } /** * Generates a thumbmark using the instance's configuration. * @param overrideOptions - Options to override for this specific call. * @returns The thumbmark result. */ public async get(overrideOptions?: optionsInterface): Promise<any> { const finalOptions = { ...this.options, ...overrideOptions }; return getThumbmark(finalOptions); } public getVersion(): string { return getVersion() } /** * Register a custom component to be included in the fingerprint. * @param key - The component name * @param fn - The component function */ public includeComponent(key: string, fn: (options?: optionsInterface) => Promise<componentInterface | null>) { globalIncludeComponent(key, fn); } }