File

libs/core/schemas/src/file-schemas/plugin-metadata-file.schema.ts

Index

Properties

Properties

validationParam (Optional)
Type string
Description

Type of input parameter of the validator function (e.g. 'number', 'string', 'object` etc.), to be provided when necessary via app configuration, as part of a form field validation setup

validatorTypeField
Type string
Description

Validator identifier to be used in the app configuration, when configuring the validator for a form field

export interface PluginMetadataFileSchema {
  /**
   * Date of the generation in ISO format (i.e. YYYY-MM-DD)
   */
  created: string;
  /**
   * Unique identifier for the plugin metadata file
   */
  hash: string;
  /**
   * List of all discovered Plugins
   * @default []
   */
  plugins: SinglePluginMetadata[];
  /**
   * Version of the schema defined in this file.
   */
  version: string;
}

/**
 * Plugin metadata object
 */
export interface SinglePluginMetadata {
  /**
   * Relevant information about the Plugin
   */
  description?: string;
  /**
   * Unique identifier for the Plugin within the package
   */
  id: string;
  /**
   * Information describing the injectable file
   */
  injectable?: InjectableMetadata;
  /**
   * Angular Module that implements this plugin
   */
  module: string;
  /**
   * Describes the given options interface, in case supported by the plugin
   */
  options?: OptionsContractType[];
  /**
   * Name of the package that provides this plugin
   */
  package: string;
  /**
   * Type of Plugin depending on the functionality provided
   */
  pluginType: PluginType;
  /**
   * Human readable title of the Plugin
   */
  title?: string;
  /**
   * Version of the package that provides this plugin
   */
  version: string;
}

/**
 * Information describing the injectable file
 */
export interface InjectableMetadata {
  /**
   * Actual class name inside the processed file
   */
  className: string;
  /**
   * Path to the processed file name relative to the library root
   */
  file: string;
  validation?: Validation;
}

export interface Validation {
  /**
   * Type of input parameter of the validator function (e.g. 'number', 'string', 'object` etc.), to be provided when necessary via app
   * configuration, as part of a form field validation setup
   */
  validationParam?: string;
  /**
   * Validator identifier to be used in the app configuration, when configuring the validator
   * for a form field
   */
  validatorTypeField: string;
}

/**
 * Configuration of your Plugin. Plugin configuration data is optional and depends on the
 * implementation of each plugin
 * @additionalProperties false
 * @default {}
 */
export interface OptionsContractType {
  items?: { [key: string]: unknown };
  name: string;
  properties?: OptionsContractType[];
  type: string;
}

/**
 * Type of Plugin depending on the functionality provided
 */
export const enum PluginType {
  HTTPInterceptor = 'HttpInterceptor',
  Other = 'Other',
  Validator = 'Validator'
}

results matching ""

    No results matching ""