UNPKG

@das3mical/adonis-mercure

Version:

A simple AdonisJS provider to interact with Mercure hub

32 lines (31 loc) 982 B
import { TokenGenerator } from './token_generator.js'; import { Publisher } from './publisher.js'; export class Mercure { #config; #tokenGenerator; #publisher; constructor(config) { this.#config = config; this.#tokenGenerator = new TokenGenerator(config); this.#publisher = new Publisher(config); } generate(payload) { return this.#tokenGenerator.generate(payload); } generateSubscribeToken(topics) { return this.#tokenGenerator.generateSubscribeToken(topics); } send(topics, data = {}, isPrivateOrOptions = false) { const options = typeof isPrivateOrOptions === 'boolean' ? { private: isPrivateOrOptions } : isPrivateOrOptions; return this.#publisher.publish(topics, data, options); } async ping() { try { await fetch(this.#config.endpoint, { method: 'HEAD' }); return true; } catch { return false; } } }