rittenhop-dev/versions/5.94.2/node_modules/@tryghost/ghost/build/common/entity.base.d.ts
2024-09-23 19:40:12 -04:00

38 lines
1.2 KiB
TypeScript

import { Actor } from './types/actor.type';
import ObjectID from 'bson-objectid';
import { BaseEvent } from './event.base';
type BaseEntityUpdatedXData = {
updatedAt: Date;
updatedBy: Actor;
} | {
updatedAt: null;
updatedBy: null;
};
type BaseEntityData = {
id: ObjectID;
deleted: boolean;
createdAt: Date;
createdBy: Actor;
} & BaseEntityUpdatedXData;
type Optional<T> = {
[K in keyof T]?: T[K];
};
export declare class Entity<Data> {
protected attr: Data & Optional<BaseEntityData>;
constructor(attr: Data & Optional<BaseEntityData>, actor?: Actor);
private events;
protected addEvent(event: BaseEvent<unknown>): void;
static getEventsToDispatch(entity: Entity<unknown>, fn: (events: BaseEvent<unknown>[]) => void): void;
private actor?;
setActor(actor: Actor): void;
get id(): ObjectID;
get createdAt(): Date | undefined;
get createdBy(): Actor | undefined;
get updatedAt(): Date | null | undefined;
get updatedBy(): Actor | null | undefined;
get deleted(): boolean | undefined;
delete(): void;
protected set<K extends keyof Data>(key: K, value: Data[K], actor?: Actor): void;
}
export {};