← Public packages
@kentcdodds/x
X API v2 helpers for tweets, search, legacy DMs, and encrypted X Chat via a Fly XDK sidecar.
src/summarize-post-metrics.ts
24 lines · 1.0 KB · TypeScriptimport { summarizePostMetrics } from './client.ts'
import type { XSummarizePostMetricsParams } from './client.ts'
/**
* Build an engagement table from posts with public_metrics.
*
* Pure when `posts`/`post` are passed (no network). Optional thin fetch via
* get-post when `ids`/`id`/`url` given.
*
* Engagement = likes + replies + retweets + bookmarks + quotes.
* Rows include quotes / quotesPer1k. `followsPer1k` is always null with
* `unavailableReason: 'not_in_public_metrics'` — do not scrape Analytics UI.
*
* @param params.sort - e.g. 'likesPer1k' | 'impressions' | 'quotesPer1k' | 'engagementPer1k'
* @param params.filter - 'lowLikeHighImpression' (impressions ≥ median and likesPer1k < median)
* @example
* import summarizePostMetrics from 'kody:@kentcdodds/x/summarize-post-metrics'
* const table = await summarizePostMetrics({ posts, sort: 'likesPer1k' })
*/
export default async function summarizePostMetricsEntrypoint(
params: XSummarizePostMetricsParams = {},
) {
return await summarizePostMetrics(params)
}