Files
pearcord-platform/platform-message-enrichment.js
T
Raven ScottandCursor c15e539b53 refactor: align combined JSON gossip keys with dedicated mixins
Delegate combined mixins (slash/oauth/invite/permission/worker) use the same
gossip keysField and initMethod as dedicated *-json-mixin.js modules. Extract
platform-message-enrichment.js and platform-delivery-receipts-imports.js from
index.js (~38 lines removed). Mesh ingest and heal behavior unchanged.

Co-authored-by: Cursor <[email protected]>
2026-06-03 09:53:49 -04:00

50 lines
1.3 KiB
JavaScript

'use strict'
const { classifyMessageLayout, LAYOUT } = require('pearcord-message-layout')
const { parseHubMirrorJson, hubMirrorFromMessage } = require('pearcord-hub-cards')
function messageLayoutKind (m) {
const layout = classifyMessageLayout(m)
if (layout === LAYOUT.HUB) return 'hub'
if (layout === LAYOUT.COMBO) return 'combo'
if (layout === LAYOUT.STICKER_ONLY) return 'sticker-only'
if (layout === LAYOUT.EMOJI_ONLY) return 'emoji-only'
return 'text'
}
function enrichMessageStickerNames (m) {
if (!m) return m
if ((m.stickerNames || []).length) return m
if (!m.stickerNamesJson) return m
try {
const parsed = JSON.parse(m.stickerNamesJson)
if (Array.isArray(parsed) && parsed.length) {
return { ...m, stickerNames: parsed }
}
} catch { /* ignore */ }
return m
}
function enrichMessageHubMirror (m) {
if (!m) return m
if (m.hubMirror?.kind === 'hub-mirror') return m
if (m.hubMirrorJson) {
const card = parseHubMirrorJson(m.hubMirrorJson)
if (card) return { ...m, hubMirror: card }
}
const legacy = hubMirrorFromMessage(m)
if (legacy) return { ...m, hubMirror: legacy }
return m
}
function enrichMessageRow (m) {
return enrichMessageHubMirror(enrichMessageStickerNames(m))
}
module.exports = {
messageLayoutKind,
enrichMessageStickerNames,
enrichMessageHubMirror,
enrichMessageRow
}