1.0.1 • Published 3 years ago
hypertyper-lib v1.0.1
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;