This commit is contained in:
Michael Puckett 2023-07-20 17:57:16 -04:00
parent ee3812ca00
commit a26609618a
6 changed files with 8 additions and 7 deletions

View File

@ -4,5 +4,5 @@ import { ContextDefinition } from 'jsonld';
export type BaseEntity<T extends AnyType> = {
'@context'?: URL | URL[] | ContextDefinition;
id?: URL | null;
type: TypeOrArrayWithType<T>;
type: T | TypeOrArrayWithType<T>;
};

View File

@ -1,6 +1,6 @@
/// <reference types="node" />
import { ActivityTypes, OrArray, TransitiveActivityTypes, IntransitiveActivityTypes } from '../util';
import { EntityReference } from '../Core';
import { CoreObjectProperties, EntityReference } from '../Core';
import { BaseEntity } from '../Core/Entity';
export type AnyActivityType = (typeof ActivityTypes)[keyof typeof ActivityTypes];
export type AnyTransitiveActivityType = (typeof TransitiveActivityTypes)[keyof typeof TransitiveActivityTypes];
@ -13,7 +13,7 @@ export type ActivityProperties = {
origin?: OrArray<EntityReference>;
instrument?: OrArray<EntityReference>;
};
type BaseActivity<T extends AnyActivityType> = BaseEntity<T> & ActivityProperties;
type BaseActivity<T extends AnyActivityType> = BaseEntity<T> & CoreObjectProperties & ActivityProperties;
type TransitiveActivityProperties = {
object: OrArray<EntityReference>;
};

View File

@ -201,4 +201,4 @@ export declare const AllTypes: {
readonly HASHTAG: "Hashtag";
};
export type AnyType = (typeof AllTypes)[keyof typeof AllTypes];
export type TypeOrArrayWithType<T> = T | [T, ...Array<AnyType>];
export type TypeOrArrayWithType<T extends AnyType> = T | [T, ...Array<AnyType>];

View File

@ -5,5 +5,5 @@ export type BaseEntity<T extends AnyType> = {
'@context'?: URL | URL[] | ContextDefinition;
// Activity Pub allows null.
id?: URL | null;
type: TypeOrArrayWithType<T>;
type: T | TypeOrArrayWithType<T>;
};

View File

@ -4,7 +4,7 @@ import {
TransitiveActivityTypes,
IntransitiveActivityTypes,
} from '../util';
import { EntityReference } from '../Core';
import { CoreObjectProperties, EntityReference } from '../Core';
import { BaseEntity } from '../Core/Entity';
export type AnyActivityType =
@ -36,6 +36,7 @@ export type ActivityProperties = {
*/
type BaseActivity<T extends AnyActivityType> = BaseEntity<T> &
CoreObjectProperties &
ActivityProperties;
type TransitiveActivityProperties = {

View File

@ -91,4 +91,4 @@ export const AllTypes = {
export type AnyType = (typeof AllTypes)[keyof typeof AllTypes];
export type TypeOrArrayWithType<T> = T | [T, ...Array<AnyType>];
export type TypeOrArrayWithType<T extends AnyType> = T | [T, ...Array<AnyType>];