UNPKG

@geheimgang188/fmod-service-api

Version:
34 lines 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseMarkerMessage = parseMarkerMessage; /** * Parse a marker message from the fmod-service pub/sub socket. * Format: `marker:event:/Path/To/Event;MarkerName;t=1777581122145` * The marker name may contain semicolons; the timestamp is always the last `;t=<digits>` segment. */ function parseMarkerMessage(message) { const prefix = 'marker:'; if (!message.startsWith(prefix)) { return undefined; } const body = message.substring(prefix.length); // Timestamp is always at the end: ;t=<digits> const timestampMatch = body.match(/;t=(\d+)$/); if (!timestampMatch) { return undefined; } const timestamp = parseInt(timestampMatch[1], 10); const beforeTimestamp = body.substring(0, timestampMatch.index); // The event path starts with "event:/" and ends at the first semicolon const firstSemicolon = beforeTimestamp.indexOf(';'); if (firstSemicolon === -1) { return undefined; } const event = beforeTimestamp.substring(0, firstSemicolon); const marker = beforeTimestamp.substring(firstSemicolon + 1); if (!event.startsWith('event:/') || marker.length === 0) { return undefined; } return { event, marker, timestamp }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL21hcmtlci1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0EsZ0RBK0JDO0FBcENEOzs7O0dBSUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBRSxPQUFlO0lBQy9DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN6QixJQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBRSxNQUFNLENBQUUsRUFBRyxDQUFDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUUsQ0FBQztJQUVoRCw4Q0FBOEM7SUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBRSxXQUFXLENBQUUsQ0FBQztJQUNqRCxJQUFLLENBQUMsY0FBYyxFQUFHLENBQUM7UUFDcEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUM7SUFDcEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBRSxDQUFDLEVBQUUsY0FBYyxDQUFDLEtBQU0sQ0FBRSxDQUFDO0lBRW5FLHVFQUF1RTtJQUN2RSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBQ3RELElBQUssY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFHLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBRSxDQUFDO0lBQzdELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUUsY0FBYyxHQUFHLENBQUMsQ0FBRSxDQUFDO0lBRS9ELElBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFFLFNBQVMsQ0FBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFHLENBQUM7UUFDMUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ3hDLENBQUMifQ==