Tweak feed display

This commit is contained in:
Jon Staab
2025-04-25 17:17:18 -07:00
parent 37c0491d71
commit b3e8d7a332
6 changed files with 37 additions and 20 deletions
+1
View File
@@ -7,6 +7,7 @@
"publishConfig": {
"access": "public"
},
"type": "module",
"main": "dist/feeds/src/index.js",
"types": "dist/feeds/src/index.d.ts",
"files": [
+16 -16
View File
@@ -31,7 +31,7 @@ export const displayAddressFeed = (feed: AddressFeed) => {
export const displayAuthorFeed = (feed: AuthorFeed) => {
const n = getFeedArgs(feed).length
return `events from ${n} replaceable {n === 1 ? 'person' : 'people'}`
return `from ${n} replaceable {n === 1 ? 'person' : 'people'}`
}
export const displayCreatedAtFeed = (feed: CreatedAtFeed) => {
@@ -57,10 +57,10 @@ export const displayCreatedAtFeed = (feed: CreatedAtFeed) => {
}
if (descriptions.length === 0) {
return "events from any time"
return "from any time"
}
return `events ${displayList(descriptions, "or")}`
return displayList(descriptions, "or")
}
export const displayDVMFeed = (feed: DVMFeed) => {
@@ -83,29 +83,29 @@ export const displayDVMFeed = (feed: DVMFeed) => {
descriptions.push(parts.join(" "))
}
return `events from DVM requests of ${displayList(descriptions)}`
return `from DVM requests of ${displayList(descriptions)}`
}
export const displayDifferenceFeed = (feed: DifferenceFeed) => {
const [base, ...excluded] = getFeedArgs(feed)
return `all ${displayFeed(base)}, excluding ${displayList(excluded.map(displayFeed))}`
return `${displayFeed(base)}, excluding ${displayList(excluded.map(displayFeed))}`
}
export const displayIDFeed = (feed: IDFeed) => `${getFeedArgs(feed).length} events`
export const displayIDFeed = (feed: IDFeed) => `matching ${getFeedArgs(feed).length} IDs`
export const displayIntersectionFeed = (feed: IntersectionFeed) =>
`events matching ${displayList(getFeedArgs(feed).map(displayFeed))}`
displayList(getFeedArgs(feed).map(displayFeed))
export const displayGlobalFeed = (feed: GlobalFeed) => "anything"
export const displayKindFeed = (feed: KindFeed) =>
`events of kind ${displayList(getFeedArgs(feed))}`
`of kind ${displayList(getFeedArgs(feed))}`
export const displayListFeed = (feed: ListFeed) => {
const addresses = uniq(getFeedArgs(feed).flatMap(({addresses}) => addresses))
return `events from ${addresses.length} list${addresses.length === 1 ? "" : "s"}`
return `from ${addresses.length} list${addresses.length === 1 ? "" : "s"}`
}
export const displayLabelFeed = (feed: LabelFeed) => {
@@ -134,7 +134,7 @@ export const displayLabelFeed = (feed: LabelFeed) => {
descriptions.push(parts.join(" "))
}
return `events ${displayList(descriptions)}`
return displayList(descriptions)
}
export const displayWOTFeed = (feed: WOTFeed) => {
@@ -142,25 +142,25 @@ export const displayWOTFeed = (feed: WOTFeed) => {
min === max ? `WOT score of ${min}` : `WOT score between ${min} and ${max}`,
)
return `Events from authors with ${displayList(descriptions)}`
return `from authors with ${displayList(descriptions)}`
}
export const displayRelayFeed = (feed: RelayFeed) => `events from ${displayList(getFeedArgs(feed))}`
export const displayRelayFeed = (feed: RelayFeed) => `from ${displayList(getFeedArgs(feed))}`
export const displayScopeFeed = (feed: ScopeFeed) =>
`events from ${displayList(getFeedArgs(feed).map(s => s.toLowerCase()))}`
`from ${displayList(getFeedArgs(feed).map(s => s.toLowerCase()))}`
export const displaySearchFeed = (feed: SearchFeed) =>
`events matching ${displayList(getFeedArgs(feed).map(term => `"${term}"`))}`
`matching ${displayList(getFeedArgs(feed).map(term => `"${term}"`))}`
export const displayTagFeed = (feed: TagFeed) => {
const [key, ...values] = getFeedArgs(feed)
return `events with ${key} tag matching ${displayList(values, "or")}`
return `with ${key} tag matching ${displayList(values, "or")}`
}
export const displayUnionFeed = (feed: UnionFeed) =>
`all ${displayList(getFeedArgs(feed).map(displayFeed))}`
displayList(getFeedArgs(feed).map(displayFeed))
export const displayFeed = (feed: Feed): string => {
switch (feed[0]) {
+2 -2
View File
@@ -1,5 +1,5 @@
import {ensureNumber} from "@welshman/lib"
import type {Filter} from "@welshman/util"
import {Filter, unionFilters} from "@welshman/util"
import {getTagValues} from "@welshman/util"
import {
FeedType,
@@ -195,7 +195,7 @@ export const feedsFromFilter = ({since, until, ...filter}: Filter) => {
export const feedFromFilter = (filter: Filter) => makeIntersectionFeed(...feedsFromFilter(filter))
export const feedFromFilters = (filters: Filter[]) =>
makeUnionFeed(...filters.map(filter => feedFromFilter(filter)))
makeUnionFeed(...unionFilters(filters).map(filter => feedFromFilter(filter)))
export const walkFeed = (feed: Feed, visit: (feed: Feed) => void) => {
visit(feed)