1.0.1 • Published 3 years ago

hypertyper-lib v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

hypertyper-lib

Code shared by the hyperTyper client and API.

Installing

npm install hypertyper-lib

Documentation

Types

export interface IServerResponseDataError {
  errors: string[];
}

export interface IServerResponseDataUserSignInSuccess {
  id: string;
  name: string;
  token: string;
}

export interface IServerResponseDataUserCreationSuccess
  extends IServerResponseDataUserSignInSuccess {}

export interface IPracticeSettings {
  basic: {
    config: IPracticeSettingsBasicConfig;
    pinned: PracticeSettingNameBasic[];
  };
  advanced: {
    config: IPracticeSettingsAdvancedConfig;
    pinned: PracticeSettingNameAdvanced[];
  };
}

export interface IPracticeSettingsBasicConfig {
  caretDelay: number;
  caretStyle: PracticeCaretStyle;
  countdownLength: number;
  customTextActive: string | null;
  isInstantDeathEnabled: boolean;
  isKeyboardVisualEnabled: boolean;
  isPunctuationEnabled: boolean;
  isResultRecordingEnabled: boolean;
  medleyCollectionsActive: string[];
  medleyItemCount: number;
  medleyPunctuationFrequency: number;
  mistakeHighlightStyle: PracticeMistakeHighlightStyle;
  quoteLength: IQuoteLength;
  soundVolume: number;
  textCasing: PracticeTextCasing;
  textType: PracticeTextType;
}

export declare type PracticeSettingNameBasic =
  keyof IPracticeSettingsBasicConfig;

export interface IPracticeSettingsAdvancedConfig {
  medleyCollectionsCustom: IPracticeMedleyCollection[];
  customTexts: IPracticeCustomText[];
}

export declare type PracticeSettingNameAdvanced =
  keyof IPracticeSettingsAdvancedConfig;

export declare type PracticeSettingName =
  | PracticeSettingNameBasic
  | PracticeSettingNameAdvanced;

export declare type PracticeTextType = 'quote' | 'medley' | 'custom';
export declare type PracticeTextCasing =
  | 'dynamic'
  | 'force-lower'
  | 'force-upper';
export declare type PracticeCaretStyle =
  | 'bar'
  | 'block'
  | 'underline'
  | 'outline';
export declare type PracticeMistakeHighlightStyle = 'background' | 'text';
export interface IQuoteLength {
  min: number;
  max: number;
}
export interface IPracticeMedleyCollection {
  name: string;
  items: string[];
}
export interface IPracticeCustomText {
  name: string;
  content: string;
}

Constants

export declare const DEFAULT_PRACTICE_SETTINGS: IPracticeSettings;
export declare const PRACTICE_SETTINGS_QUOTE_LENGTH_LIMITS: NumberRange; // [1, 250]
export declare const PRACTICE_SETTINGS_COUNTDOWN_LENGTH_LIMITS: NumberRange; // [0, 5]
export declare const PRACTICE_SETTINGS_SOUND_VOLUME_LIMITS: NumberRange; // [0, 1]
export declare const PRACTICE_SETTINGS_CARET_DELAY_LIMITS: NumberRange; // [0, 1]
export declare const PRACTICE_SETTINGS_MEDLEY_ITEM_COUNT_LIMITS: NumberRange; // [1, 100]
export declare const PRACTICE_SETTINGS_MEDLEY_PUNCTUATION_FREQUENCY_LIMITS: NumberRange; // [0, 1]

Functions

/**
 * Creates a complete-depth copy of `entity`. Objects with function or symbol properties won't be copied correctly.
 * @param entity The entity to copy.
 * @returns A complete-depth copy of `entity`.
 */
export declare function createDeepCopy(entity: any): any;

/**
 * Checks if `obj` has a property with a key of value `key`.
 * @param obj The object to check.
 * @param key The key to search for.
 * @returns true if the object has a property with a key of value `key`, false if it doesn't.
 */
export declare function doesObjectHaveKey<O>(
  obj: O,
  key: PropertyKey,
): key is keyof O;

export declare function convertNumberRangeToQuoteLength(
  range: NumberRange,
): IQuoteLength;

export declare function convertQuoteLengthToNumberRange(
  ql: IQuoteLength,
): NumberRange;
1.0.1

3 years ago

1.0.0

3 years ago