payload-plugin-scheduler
Version:
Scheduled posts plugin for PayloadCMS
33 lines (32 loc) • 1.36 kB
TypeScript
import type { DateField } from 'payload';
import type { SafeRelationship } from './fields/SafeRelationship/index.js';
export interface ValueWithRelation {
relationTo: string;
value: number | string;
}
type DateFieldAdmin = NonNullable<DateField['admin']>;
type DateFieldAdminComponents = NonNullable<DateFieldAdmin['components']>;
type DateFieldAdminDate = NonNullable<DateFieldAdmin['date']>;
export type ReservedPublishDateComponentSlots = 'afterInput' | 'Cell';
type ReservedPublishDateDateProps = 'pickerAppearance' | 'timeIntervals';
export type PublishDateFieldOptions = Partial<Omit<DateField, 'admin' | 'timezone' | 'type'>> & {
admin?: Partial<Omit<DateFieldAdmin, 'components' | 'date'>> & {
components?: Partial<Omit<DateFieldAdminComponents, ReservedPublishDateComponentSlots>>;
date?: Partial<Omit<DateFieldAdminDate, ReservedPublishDateDateProps>>;
};
};
export type ManualPublishDateFieldOptions = Omit<PublishDateFieldOptions, 'name'>;
export interface ScheduledPostConfig {
collections?: string[];
globals?: string[];
interval?: number;
publishDate?: PublishDateFieldOptions;
}
export type NormalizedScheduledPostConfig = {
collections: string[];
globals: string[];
interval: number;
publishDate: DateField;
};
export type SafeRelationshipField = typeof SafeRelationship;
export {};