Re-work address

This commit is contained in:
Jon Staab
2024-05-16 10:07:21 -07:00
parent 08d6d93661
commit eee279cefa
9 changed files with 78 additions and 73 deletions
+2 -11
View File
@@ -2,22 +2,12 @@ import {uniq, identity, flatten, pushToMapKey, intersection, tryCatch, now} from
import type {TrustedEvent, Filter} from '@welshman/util'
import {Tags, intersectFilters, getAddress, getIdFilters, unionFilters} from '@welshman/util'
import type {CreatedAtItem, RequestItem, ListItem, WOTItem, DVMItem, Scope, Feed, FeedOptions} from './core'
import {hasSubFeeds, getFeedArgs, feedsFromTags} from './utils'
import {getFeedArgs, feedsFromTags} from './utils'
import {FeedType} from './core'
export class FeedCompiler<E extends TrustedEvent> {
constructor(readonly options: FeedOptions<E>) {}
walk(feed: Feed, visit: (feed: Feed) => void) {
visit(feed)
if (hasSubFeeds(feed)) {
for (const subFeed of getFeedArgs(feed)) {
this.walk(subFeed, visit)
}
}
}
canCompile(feed: Feed): boolean {
switch(feed[0]) {
case FeedType.Union:
@@ -240,6 +230,7 @@ export class FeedCompiler<E extends TrustedEvent> {
if (event) {
for (const feed of feedsFromTags(Tags.fromEvent(event), mappings)) {
feeds.push(feed)
}
}
+11
View File
@@ -155,3 +155,14 @@ export const feedsFromFilter = ({since, until, ...filter}: Filter) => {
export const feedFromFilter = (filter: Filter) =>
makeIntersectionFeed(...feedsFromFilter(filter))
export const walkFeed = (feed: Feed, visit: (feed: Feed) => void) => {
visit(feed)
if (hasSubFeeds(feed)) {
for (const subFeed of getFeedArgs(feed)) {
walkFeed(subFeed, visit)
}
}
}