@prismatic-io/spectral
Version:
Utility library for building Prismatic connectors and code-native integrations
37 lines (36 loc) • 1.86 kB
TypeScript
/**
* Types in this file describe how an action or component should appear in the Prismatic web app.
*/
/** Base definition of Display properties. */
interface DisplayDefinition {
/** Label/name to display. */
label: string;
/** Description to display to the user. */
description: string;
}
type PublicComponentCategory = "Application Connectors" | "Data Platforms" | "Helpers" | "Logic" | "Triggers";
interface ExtraDisplayDefinitionFields<TPublic extends boolean> {
/** Path to icon to use for this Component. Path should be relative to the built component source. */
iconPath: string;
/** Category of the Component. */
category?: TPublic extends true ? PublicComponentCategory : string;
}
/** Component extensions for display properties. */
export type ComponentDisplayDefinition<TPublic extends boolean> = TPublic extends true ? DisplayDefinition & Required<ExtraDisplayDefinitionFields<TPublic>> : DisplayDefinition & ExtraDisplayDefinitionFields<TPublic>;
/** Action-specific Display attributes. */
export interface ActionDisplayDefinition extends DisplayDefinition {
/** Directions to help guide the user if additional configuration is required for this Action. */
directions?: string;
/** Indicate that this Action is important and/or commonly used from the parent Component. Should be enabled sparingly. */
important?: boolean;
}
/** Connection-specific Display attributes. */
export interface ConnectionDisplayDefinition extends DisplayDefinition {
icons?: {
/** Path to icon to use for this Connection. Path should be relative to the built component source. */
avatarPath?: string;
/** Path to icon to use for this Connection's "Connect" button. Path should be relative to the built component source. */
oauth2ConnectionIconPath?: string;
};
}
export {};