Add global feeds

This commit is contained in:
Jon Staab
2024-06-19 14:50:54 -07:00
parent a61085ff2f
commit 760e0a99b4
4 changed files with 11 additions and 1 deletions
+2
View File
@@ -18,6 +18,7 @@ export class FeedCompiler<E extends TrustedEvent> {
case FeedType.CreatedAt:
case FeedType.DVM:
case FeedType.ID:
case FeedType.Global:
case FeedType.Kind:
case FeedType.List:
case FeedType.Label:
@@ -48,6 +49,7 @@ export class FeedCompiler<E extends TrustedEvent> {
case FeedType.Search: return this._compileSearches(getFeedArgs(feed))
case FeedType.WOT: return this._compileWot(getFeedArgs(feed))
case FeedType.Relay: return [{relays: getFeedArgs(feed)}]
case FeedType.Global: return [{filters: [{}]}]
case FeedType.Tag: {
const [key, ...value] = getFeedArgs(feed)
+3
View File
@@ -8,6 +8,7 @@ export enum FeedType {
Difference = "difference",
ID = "id",
Intersection = "intersection",
Global = "global",
Kind = "kind",
List = "list",
Label = "label",
@@ -73,6 +74,7 @@ export type DVMFeed = [type: FeedType.DVM, ...items: DVMItem[]]
export type DifferenceFeed = [type: FeedType.Difference, ...feeds: Feed[]]
export type IDFeed = [type: FeedType.ID, ...ids: string[]]
export type IntersectionFeed = [type: FeedType.Intersection, ...feeds: Feed[]]
export type GlobalFeed = [type: FeedType.Global, ...feeds: Feed[]]
export type KindFeed = [type: FeedType.Kind, ...kinds: number[]]
export type ListFeed = [type: FeedType.List, ...items: ListItem[]]
export type LabelFeed = [type: FeedType.Label, ...items: LabelItem[]]
@@ -91,6 +93,7 @@ export type Feed =
DifferenceFeed |
IDFeed |
IntersectionFeed |
GlobalFeed |
KindFeed |
ListFeed |
LabelFeed |
+5
View File
@@ -11,6 +11,7 @@ import {
DifferenceFeed,
IDFeed,
IntersectionFeed,
GlobalFeed,
KindFeed,
ListFeed,
LabelFeed,
@@ -36,6 +37,7 @@ export const makeDVMFeed = (...items: DVMItem[]): DVMFeed
export const makeDifferenceFeed = (...feeds: Feed[]): DifferenceFeed => [FeedType.Difference, ...feeds]
export const makeIDFeed = (...ids: string[]): IDFeed => [FeedType.ID, ...ids]
export const makeIntersectionFeed = (...feeds: Feed[]): IntersectionFeed => [FeedType.Intersection, ...feeds]
export const makeGlobalFeed = (): GlobalFeed => [FeedType.Global]
export const makeKindFeed = (...kinds: number[]): KindFeed => [FeedType.Kind, ...kinds]
export const makeListFeed = (...items: ListItem[]): ListFeed => [FeedType.List, ...items]
export const makeLabelFeed = (...items: LabelItem[]): LabelFeed => [FeedType.Label, ...items]
@@ -53,6 +55,7 @@ export const isDVMFeed = (feed: Feed): feed is DVMFeed
export const isDifferenceFeed = (feed: Feed): feed is DifferenceFeed => feed[0] === FeedType.Difference
export const isIDFeed = (feed: Feed): feed is IDFeed => feed[0] === FeedType.ID
export const isIntersectionFeed = (feed: Feed): feed is IntersectionFeed => feed[0] === FeedType.Intersection
export const isGlobalFeed = (feed: Feed): feed is GlobalFeed => feed[0] === FeedType.Global
export const isKindFeed = (feed: Feed): feed is KindFeed => feed[0] === FeedType.Kind
export const isListFeed = (feed: Feed): feed is ListFeed => feed[0] === FeedType.List
export const isLabelFeed = (feed: Feed): feed is LabelFeed => feed[0] === FeedType.Label
@@ -73,6 +76,7 @@ export function getFeedArgs(feed: WOTFeed): WOTItem[]
export function getFeedArgs(feed: ScopeFeed): Scope[]
export function getFeedArgs(feed: KindFeed): number[]
export function getFeedArgs(feed: TagFeed): [string, ...string[]]
export function getFeedArgs(feed: GlobalFeed): []
export function getFeedArgs(feed: Feed) {
switch (feed[0]) {
case FeedType.Intersection: return feed.slice(1) as Feed[]
@@ -91,6 +95,7 @@ export function getFeedArgs(feed: Feed) {
case FeedType.WOT: return feed.slice(1) as WOTItem[]
case FeedType.Scope: return feed.slice(1) as Scope[]
case FeedType.Kind: return feed.slice(1) as number[]
case FeedType.Global: return feed.slice(1) as never[]
}
}