pull out ILink interface

This commit is contained in:
Hazelnoot 2025-06-06 17:24:03 -04:00
parent 15baf78ad7
commit b2c72da96c

View file

@ -35,6 +35,7 @@ export interface IObject {
mediaType?: string; mediaType?: string;
url?: ApObject | string; url?: ApObject | string;
href?: string; href?: string;
rel?: string | string[];
tag?: IObject | IObject[]; tag?: IObject | IObject[];
sensitive?: boolean; sensitive?: boolean;
} }
@ -55,6 +56,16 @@ export function isAnonymousObject(object: IObject): object is IAnonymousObject {
return object.id === undefined; return object.id === undefined;
} }
export interface ILink extends IObject {
'@context'?: string | string[] | Obj | Obj[];
type: 'Link' | 'Mention';
href: string;
}
export const isLink = (object: IObject): object is ILink =>
(getApType(object) === 'Link' || getApType(object) === 'Link') &&
typeof object.href === 'string';
/** /**
* Get array of ActivityStreams Objects id * Get array of ActivityStreams Objects id
*/ */
@ -307,9 +318,8 @@ export const isPropertyValue = (object: IObject): object is IApPropertyValue =>
'value' in object && 'value' in object &&
typeof object.value === 'string'; typeof object.value === 'string';
export interface IApMention extends IObject { export interface IApMention extends ILink {
type: 'Mention'; type: 'Mention';
href: string;
name: string; name: string;
} }