Source

interfaces/SequenceOptions.ts

/**
 * @description Interface for sequence configuration options
 * @summary Defines the configuration options for creating and managing sequences
 * @interface SequenceOptions
 * @memberOf module:core
 */
export interface SequenceOptions {
  /**
   * @description Optional name for the sequence
   * @summary A unique identifier for the sequence
   */
  name?: string;

  /**
   * @description The data type of the sequence
   * @summary Specifies whether the sequence generates Number or BigInt values
   */
  type: "Number" | "BigInt" | undefined;

  /**
   * @description The initial value of the sequence
   * @summary The value that the sequence starts with
   */
  startWith: number;

  /**
   * @description The increment value for each step in the sequence
   * @summary The amount by which the sequence increases with each call
   */
  incrementBy: number;

  /**
   * @description Optional minimum value for the sequence
   * @summary The lowest value that the sequence can generate
   */
  minValue?: number;

  /**
   * @description Optional maximum value for the sequence
   * @summary The highest value that the sequence can generate
   */
  maxValue?: number;

  /**
   * @description Whether the sequence should cycle when reaching its limits
   * @summary If true, the sequence will restart from minValue when reaching maxValue
   */
  cycle: boolean;
}

/**
 * @description Default options for sequences
 * @summary Provides a standard configuration for number sequences starting at 0 and incrementing by 1
 * @const DefaultSequenceOptions
 * @memberOf module:core
 */
export const DefaultSequenceOptions: SequenceOptions = {
  type: "Number",
  startWith: 0,
  incrementBy: 1,
  cycle: false,
};

/**
 * @description Predefined options for numeric sequences
 * @summary Configuration for standard number sequences starting at 0 and incrementing by 1
 * @const NumericSequence
 * @memberOf module:core
 */
export const NumericSequence: SequenceOptions = {
  type: "Number",
  startWith: 0,
  incrementBy: 1,
  cycle: false,
};

/**
 * @description Predefined options for BigInt sequences
 * @summary Configuration for BigInt sequences starting at 0 and incrementing by 1
 * @const BigIntSequence
 * @memberOf module:core
 */
export const BigIntSequence: SequenceOptions = {
  type: "BigInt",
  startWith: 0,
  incrementBy: 1,
  cycle: false,
};