@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
83 lines (82 loc) • 2.12 kB
TypeScript
export type TicketMeta = {
fields: TicketTypedMetaField[];
};
export type TicketMetaFormField = {
[key: string]: MetaFieldData["value"];
};
export type TicketTypedMetaField = {
[T in MetaFieldData["type"]]: Extract<TicketMetaField, {
type: T;
}> & Extract<MetaFieldData, {
type: T;
}>;
}[MetaFieldData["type"]];
export type TicketMetaFieldType = (typeof TicketMetaFieldTypes)[number];
export declare const TicketMetaFieldTypes: readonly ["string", "number", "boolean", "date", "select", "select_parse"];
type MetaFieldValueString = {
type: "string";
value: string;
};
type MetaFieldValueNumber = {
type: "number";
value: number;
};
type MetaFieldValueBoolean = {
type: "boolean";
value: boolean;
};
type MetaFieldValueDate = {
type: "date";
value: Date;
};
type MetaFieldValueSelect = {
type: "select";
value: string;
multiple: false;
};
type MetaFieldValueSelectMultiple = {
type: "select";
value: string[];
multiple: true;
};
type MetaFieldValueParseSelect = {
type: "select_parse";
value: string;
multiple: false;
};
type MetaFieldValueParseSelectMultiple = {
type: "select_parse";
value: string[];
multiple: true;
};
type MetaFieldData = MetaFieldValueString | MetaFieldValueNumber | MetaFieldValueBoolean | MetaFieldValueDate | MetaFieldValueSelect | MetaFieldValueSelectMultiple | MetaFieldValueParseSelect | MetaFieldValueParseSelectMultiple;
export type TicketMetaFieldConfig = {
fields?: TicketMetaField[];
};
export type TicketMetaField = WithDefaults<{
type: "string";
}> | WithDefaults<{
type: "number";
min?: number;
max?: number;
}> | WithDefaults<{
type: "boolean";
}> | WithDefaults<{
type: "date";
}> | WithDefaults<{
type: "select";
options?: string[];
multiple?: boolean;
}> | WithDefaults<{
type: "select_parse";
className?: string;
multiple?: boolean;
display?: string;
}>;
type MetaFieldDefault = {
label?: string;
description?: string;
name?: string;
};
type WithDefaults<T> = T & MetaFieldDefault;
export {};