FluxyChat

How-to Guides

Regex Message Matching

`createMessagePatternMatcher()` provides pattern-based message routing using regular expressions, enabling keyword-triggered handlers without @-mentions.

Regex Message Matching

createMessagePatternMatcher() provides pattern-based message routing using regular expressions, enabling keyword-triggered handlers without @-mentions.

Usage

import { createMessagePatternMatcher } from "@fluxy-chat/sdk";

const matcher = createMessagePatternMatcher();

matcher.onNewMessage(/^!help/, async (msg, match) => {
  console.log(`Help requested by ${msg.userId} in ${msg.roomId}`);
});

// Wire into event stream
connection.onAnyEvent((event) => {
  matcher.match(event);
});

API

  • onNewMessage(pattern, handler, options?): Register a pattern handler
  • removeHandler(pattern, handler): Remove a specific handler
  • match(event): Test event against all patterns; returns match count
  • getPatterns(): List registered patterns
  • clear(): Remove all patterns

Multiple Patterns

Multiple patterns can match the same message; all matching handlers are called:

matcher.onNewMessage(/^!ping/, handlePing);
matcher.onNewMessage(/^!pong/, handlePong);

Labels

Optional labels and descriptions help identify patterns for debugging:

matcher.onNewMessage(/^!status/, handler, {
  label: "status",
  description: "Matches !status commands",
});

On this page