EventEmitter

EventEmitter

static

EventEmitter.listenersList

listenersList: Array<string>

Возвращает список всех событий, на которых имеются подписчики

Returns

EventEmitter.on

on(eventName: string, callback: Listener)

Подписка на события

Parameters

  1. eventName: string:  
  2. callback: Listener:  

EventEmitter.emit

emit(eventName: string, data: AnyMap)

Вызов события

Parameters

  1. eventName: string:  
  2. data: AnyMap:  

EventEmitter.off

off(eventName: string?, callback: Listener?)

Удаляет подписку(и) на событие(я) Если имеются оба параметра удаляется конкретный слушатель Если только имя - удаляет все слушатели одного события Вызов без аргументов удалит все подписки

Parameters

  1. eventName: string?:  
  2. callback: Listener?:  

Rest

Отправка запросов

static

Rest.baseUrl

baseUrl: string

Адрес api без роутов

Example

https://api.addreality.com

Rest.defaultHeaders

defaultHeaders: StringsMap

Заголовки, отправляемые с каждым запросом

Example

{
  'X-Access-Token': 'qwfg34gtrb
}

Rest.getUrl

getUrl(url: string, query: mixed?): string

Возвращает полный url

Parameters

  1. url: string:  
  2. query: mixed?:  

Returns

Example

this.getUrl( '/devices', '?status=1' )
// https://api.addreality.com/devices?status=1

Rest.get

get(urlIn: string, bodyIn: AnyMap?, optsIn: AddonRequestOptsType?): any

Метод GET-запроса

Parameters

  1. urlIn: string:  
  2. bodyIn: AnyMap?:  
  3. optsIn: AddonRequestOptsType?:  

Returns

any

Rest.post

post(url: string, body: AnyMap?, opts: AddonRequestOptsType?): any

Метод POST-запроса

Parameters

  1. url: string:  
  2. body: AnyMap?:  
  3. opts: AddonRequestOptsType?:  

Returns

any

Rest.put

put(url: string, body: AnyMap?, opts: AddonRequestOptsType?): any

Метод PUT-запроса

Parameters

  1. url: string:  
  2. body: AnyMap?:  
  3. opts: AddonRequestOptsType?:  

Returns

any

Rest.del

del(url: string, body: AnyMap?, opts: AddonRequestOptsType??): any

Метод DELETE-запроса

Parameters

  1. url: string:  
  2. body: AnyMap?:  
  3. opts: AddonRequestOptsType??:  

Returns

any

Time

static

Time.convertFromStr

convertFromStr(dateStr: string): (Date | null)

Конвертирует строку в Date

Parameters

  1. dateStr: string:  

Returns

(Date | null)

Example

convertFromStr( '2018-06-09T15:15:14.048Z' ) // Date
convertFromStr( 'qwe' ) // null

Time.hmsToSec

hmsToSec(hms: HmsType): number

Возвращает количество секунд. Принимает объект или массив часов, минут, секунд

Parameters

  1. hms: HmsType:  

Returns

number seconds

Example

hmsToSec( { h: 0, m: 2, s: 3 } ) // 123
hmsToSec( { h: '00', m: '02', s: '03' } ) // 123
hmsToSec( [ 0, 2, 3 ] ) // 123
hmsToSec( [ '00', '02', '03' ] ) // 123

Time.toStr

toStr(num: number): string

Делает строку из числа, плюч добавляет 0 впереди, если число меньше 10

Parameters

  1. num: number:  

Returns

Example

toStr( 59 ) // '59'
toStr( 1 ) // '01'

Time.getNow

getNow(): Date

Возвращает дату с текущим временем в нулевой временной зоне

Returns

Example

// now is 17:00
const d = new Date() // 2018-06-06T14:00:00.612Z
d.getHours() // 17
d.getUTCHours() // 14
getNow().getUTCHours() // 17

Time.isDate

isDate(maybeDate: any): boolean

isDate

Parameters

  1. maybeDate: any:  

Returns

Time.checkTimestamp

checkTimestamp(ts: number?): CheckTimestampReturnType

Проверяет timestamp в секундах или милисекундах

Parameters

  1. ts: number?:  

Returns

CheckTimestampReturnType

Example

checkTimestamp( '123' )
// { isValid: false }

checkTimestamp( 1528547903882 )
// { isValid: true, isInSec: false, isInMs: true, ts: 1528547903882 }

checkTimestamp( 1528547903 )
// { isValid: true, isInSec: true, isInMs: false, ts: 1528547903 }

Time.tsToSec

tsToSec(ts: number): number

Переводит timestamp в секунды

Parameters

  1. ts: number:  

Returns

Example

tsToSec( 1528304655612 ) // 1528304656
tsToSec( 1528304656 ) // 1528304656
tsToSec( 'asd' ) // 0

Time.tsToMs

tsToMs(ts: number): number

Переводит timestamp в милисекунды

Parameters

  1. ts: number:  

Returns

Example

tsToMs( 1528304656 ) // 1528304655612
tsToMs( 1528304655612 ) // 1528304655612
tsToMs( 'asd' ) // 0

Time.get

get(d: Date, partName: PartNameType): number

Дубоирует функционал Date.getUTC*

Parameters

  1. d: Date:  
  2. partName: PartNameType:  

Returns

Example

get( date, 'y' ) // 2018
get( date, 'd' ) // 31

Time.set

set(d: Date, partName: PartNameType, args: ...Array<number>)

Дублирует функционал Date.setUTC*

Parameters

  1. d: Date:  
  2. partName: PartNameType:  
  3. args: ...Array<number>:  

Example

set( date, 'h', 23 ) // undefined
set( date, 'm', 59 )

Time.getHmsFromDate

getHmsFromDate(d: Date): ObjHmsType

Возвращает объект с часами, минутами, секундами из переданной даты

Parameters

  1. d: Date:  

Returns

ObjHmsType

Example

getHmsFromDate( date )
// {
//   h: 13,
//   m: 45
//   s: 59
// }

Time.getObjDateFromDate

getObjDateFromDate(d: Date): ObjHmsType

Возвращает дату в виде объекта

Parameters

  1. d: Date:  

Returns

ObjHmsType

Example

getObjDateFromDate( date )
// {
//   y: 2018,
//   M: 1,
//   d: 28,
//   h: 13,
//   m: 45
//   s: 59
// }

Time.getLastDateInMonth

getLastDateInMonth(date: Date): number

Возвращает последнее число месяца в переданной дате

Parameters

  1. date: Date:  

Returns

Example

getLastDateInMonth( date ) // 31
getLastDateInMonth( date2 ) // 28

Time.daysBetween

daysBetween(date1: Date, date2: Date): number

Возвращает количество дней между двумя датами

Parameters

  1. date1: Date:  
  2. date2: Date:  

Returns

Time.secToHms

secToHms(seconds: number): {h: number, m: number, s: number}

Переводит секунды в часы, минуты, секунды

Parameters

  1. seconds: number:  

Returns

{h: number, m: number, s: number}

Example

secToHms( 123456 ) // { h: 10, m: 17, s: 36 }

Time.secToHms_str

secToHms_str(seconds: number): {h: string, m: string, s: string}

Переводит секунды в часы, минуты, секунды Возвращает объект с форматированными строками

Parameters

  1. seconds: number:  

Returns

{h: string, m: string, s: string}

Example

secToHms_str( 123 ) // { h: '00', m: '02', s: '03' }

Time.secToHms_arr

secToHms_arr(seconds: number): [number, number, number]

Возвращает массив с часами, минутами, секундами

Parameters

  1. seconds: number:  

Returns

Example

secToHms_arr( 123456 ) // [ 10, 17, 36 ]

Time.secToHms_arrStr

secToHms_arrStr(seconds: number): [string, string, string]

Возвращает массив с форматированными часами, минутами, секундами

Parameters

  1. seconds: number:  

Returns

Example

secToHms_arrStr( 123 ) // [ '00', '02', '03' ]

DateVal

DateVal

Extends Inherent.

static

DateVal.parseStr

parseStr(str: ValidStrType): ValidValType

Parameters

  1. str: ValidStrType:  
    D1,2,3,5-10,31

Returns

ValidValType [ 1, 10, 31 ]

DateVal.stringify

stringify(val: ValidValType): ValidStrType

Parameters

  1. val: ValidValType:  
    [ 1, 10, 31 ]

Returns

ValidStrType D1,2,3,5-10,31

DayVal

DaysVal

Extends Inherent.

static

DayVal.parseStr

parseStr(str: ValidStrType): ValidValType

Parameters

  1. str: ValidStrType:  
    d0010100

Returns

ValidValType [ 2, 4 ]

DayVal.stringify

stringify(daysArr: ValidValType): ValidStrType

Parameters

  1. daysArr: ValidValType:  
    [ 0, 3, 4, 5 ]

Returns

ValidStrType d1001110

TimingParser

TimingParser

static

TimingParser.setVal

setVal(name: NamesType, val: ValType)

Устанавливает значение определённого типа

Parameters

  1. name: NamesType:  
  2. val: ValType:  

Example

this.setVal( 'date', [ 2, 15, 31 ] )

TimingParser.getStr

getStr(): string

Возвращает все заданные значения в виде одной строки

Returns

Example

this.getStr()
// "(19:00:00-19:01:00, 20:20:01-21:30:59); d0010100; D1,2,3,5-10,20; m0,1,2,5-8,11"

TimingParser.getVals

getVals(): any

Возвращает все заданные значения в виде массивов

Returns

any

Example

this.getVals()
// {
//   time: [ 0, 86399 ],
//   day: [ 1, 6 ],
//   date: [],
//   month: [ 11 ]
// }

TimingParser.parseStr

parseStr(str: string?): TimingParser

Принимает строку таймингов и задаёт всё указанные значения

Parameters

  1. str: string?:  
    "d0010100; D1,2,3,5-10,20"

Returns

TimingParser.destroy

destroy()

destroy

MonthVal

MonthVal

Extends Inherent.

static

MonthVal.parseStr

parseStr(str: ValidStrType): ValidValType

Parameters

  1. str: ValidStrType:  
    m0,2,5-7

Returns

ValidValType [ 0, 2, 5, 6, 7]

MonthVal.stringify

stringify(val: ValidValType): ValidStrType

Parameters

  1. val: ValidValType:  
    [ 0, 2, 5, 6, 7]

Returns

ValidStrType m0,2,5-7

TimeVal

TimeVal

Extends Inherent.

static

TimeVal.hmsStrToSec

hmsStrToSec(hmsStr: string): number

Parameters

  1. hmsStr: string:  
    21:30:59

Returns

number 85399

TimeVal.hmsStrPeriodToSec

hmsStrPeriodToSec(hmsPeriodStr: string): OnePeriodType

Parameters

  1. hmsPeriodStr: string:  
    20:20:01-21:30:59

Returns

OnePeriodType [ 200, 379 ]

TimeVal.parseStr

parseStr(s: ValidStrType): ValidValType

Parameters

  1. s: ValidStrType:  
    (19:00:00-19:01:00,20:20:01-21:30:59)

Returns

ValidValType [ seconds, seconds, 0, 86399 ]

TimeVal.stringifyPeriodArr

stringifyPeriodArr(periodArr: OnePeriodType): string

Parameters

  1. periodArr: OnePeriodType:  
    [ 200, 379 ]

Returns

string 00:33:53-03:07:13

TimeVal.stringify

stringify(seconds: ValidValType): ValidStrType

Parameters

  1. seconds: ValidValType:  
    [ 200, 379,18131, 79511 ]

Returns

ValidStrType (00:00:00-00:20:30,00:33:53-03:07:13)

Xhr

Обёртка над XMLHttpRequest

static

Xhr.loadJSON

loadJSON(filePath: string): Promise<LoadJSONreturnType>

Загружает данные из json-файла

Parameters

  1. filePath: string:  

Returns

Promise<LoadJSONreturnType>

Example

Xhr.loadJSON( './path/to/file.json' )
  .then( resp => {
    console.log( resp )
    // { hasErr: false, value: { x: 3 } }
    // or
    // { hasErr: true, error: 'parse error' | 'loading error' }
  } )

Finder

Поисковик, удалятор, вставлятор, переключатор

static

Finder.from

from(arr: Array<T>, params: ParamsType?): Finder<T>

Создаёт экземпляр Finder, аналогично new Finder( arr, ?params )

Parameters

  1. arr: Array<T>:  
  2. params: ParamsType?:  

Returns

Finder<T>

Finder.value

value(): (T | null)

Возвращает найдённой элемент или null (чистит за собой)

Returns

(T | null)

Finder.valueInd

valueInd(): number

Возвращает индекс найденного элемента или -1 (чистит за собой)

Returns

Finder.byId

byId(id: string): Finder<T>

Ищет по id

Parameters

  1. id: string:  

Returns

Finder<T>

Finder.byIdAndType

byIdAndType(id: string, type: any): Finder<T>

Ищет по id и типу

Parameters

  1. id: string:  
  2. type: any:  

Returns

Finder<T>

Finder.byItem

byItem(item: T): Finder<T>

Ищет переданный item заполняет _finded и _findedIndex

Parameters

  1. item: T:  

Returns

Finder<T>

Finder.del

del()

Удаляет элемент, если он был найден

Finder.pushIfNotExist

pushIfNotExist(item: T)

Вставляет элемент, если его нет в массиве

Parameters

  1. item: T:  

Finder.toggle

toggle(item: T, force: boolean?)

Добавляет элемент, если его нет в массиве Исключает, если есть

Parameters

  1. item: T:  
  2. force: boolean?:  

Finder.clear

clear()

Прибирает за собой. После вызова не имеет смысла вызывать какие-либо методы Автоматически вызывается после value, valueInd, del, pushIfNotExist, toggle

__Array

static

__Array.castArr

castArr(maybeArr: Array<any>?): Array<any>

Возвращает переданный аргумент, если он является массивом, иначе новый пустой массив

Parameters

  1. maybeArr: Array<any>?:  

Returns

Array<any>

Example

castArr( [ 1, 2, 3 ] ) // [ 1, 2, 3 ]
castArr( { x: [ 1, 2, 3 ] } ) // []

__Array.toggleIncluding

toggleIncluding(array: Array<T>, item: T): Array<T>

Возвращает новый массив и исключает из него элемент, если он присутствует, либо добавляет, если его там нет

Parameters

  1. array: Array<T>:  
  2. item: T:  

Returns

Array<T>

Example

toggleIncluding( [ 1, 2, 3 ], 2 ) // [ 1, 3 ]
toggleIncluding( [ 1, 2, 3 ], 5 ) // [ 1, 2, 3, 5 ]

__Array.resetArr

resetArr(arr: Array<T>, newVals: Array<T>?)

Заменяет элементы массива если они переданы вторым аргументом, иначе очищает массив

Parameters

  1. arr: Array<T>:  
  2. newVals: Array<T>?:  

__Array.findById

findById(arr: Array<T>, id: string): (T | null)

Поиск индекса элемента в массиве по id

Parameters

  1. arr: Array<T>:  
  2. id: string:  

Returns

(T | null)

__Array.findIndById

findIndById(arr: Array<T>, id: string): number

Поиск индекса элемента в массиве по id

Parameters

  1. arr: Array<T>:  
  2. id: string:  

Returns

__Array.findByIdAndType

findByIdAndType(arr: Array<T>, params: HasIdTypeItemType): (T | null)

Поиск элемента в массиве по id и type

Parameters

  1. arr: Array<T>:  
  2. params: HasIdTypeItemType:  

Returns

(T | null)

__Array.findByIdAndDel

findByIdAndDel(arr: Array<T>, id: string): boolean

Удаляет элемент из массива, если он там существует (поиск осуществляется по id)

Parameters

  1. arr: Array<T>:  
  2. id: string:  

Returns

__Array.pushIfNotExist

pushIfNotExist(arr: Array<T>, item: T): boolean

Добавляет элемент в массив, если его там не существует (поиск осуществляется по id)

Parameters

  1. arr: Array<T>:  
  2. item: T:  

Returns

__Function

static

__Function.debounce

debounce(func: function, ms: number): function

Вернёт версию функции, исполнение которой начнётся не ранее, чем истечёт промежуток wait, после её последнего вызова

Parameters

  1. func: function:  
  2. ms: number:  

Returns

Example

const lazyOnresizeCallback = _.debounce(calculateLayout, 300);
window.onresize = lazyOnresizeCallback

__Function.throttle

throttle(func: function, ms: number): function

Вернёт версию функции, которая будет вызываться не чаще чем ms

Parameters

  1. func: function:  
  2. ms: number:  

Returns

Example

const lazyOnresizeCallback = _.throttle(calculateLayout, 300);
window.onresize = lazyOnresizeCallback

__Function.sortCb_num

sortCb_num(a: number, b: number): number

Функция сортировки чисел от меньшего к большему

Parameters

  1. a: number:  
  2. b: number:  

Returns

Example

[ 3, 7, 1 ].sort( sortCb_num ) // [ 1, 3, 7 ]

__Function.sortCb_str

sortCb_str(a: string, b: string): number

Функция для сортировки строк по алфавиту

Parameters

  1. a: string:  
  2. b: string:  

Returns

Example

[ 'Z', '1', 'A' ].sort( sortCb_str ) // [ '1', 'A', 'Z' ]

__Function.sortCb_collByName

sortCb_collByName(a: {name: string}, b: {name: string}): number

Функция для сортировки массива объектов по свойству name по алфавиту

Parameters

  1. a: {name: string}:  
  2. b: {name: string}:  

Returns

Example

[ { name: 'Z' }, { name: 'A' } ].sort( sortCb_collByName )
// [ { name: 'A' }, { name: 'Z' } ]

__Function.castFunc

castFunc(maybeFunc: any): function

Возвращает аргумент, если тот является функцией, иначе пустую функцию

Parameters

  1. maybeFunc: any:  

Returns

Example

const exampleFunc = () => [ 1, 2 ]
castFunc( func ) // exampleFunc
castFunc( 3 ) // function () {}

is

static

is.isArr

isArr(any: mixed): boolean

isArr

Parameters

  1. any: mixed:  

Returns

is.isF

isF(any: mixed): boolean

isF

Parameters

  1. any: mixed:  

Returns

is.isNum

isNum(any: mixed): boolean

isNum

Parameters

  1. any: mixed:  

Returns

is.isNull

isNull(any: mixed): boolean

isNull

Parameters

  1. any: mixed:  

Returns

is.isUndef

isUndef(any: mixed): boolean

isUndef

Parameters

  1. any: mixed:  

Returns

is.isNil

isNil(any: mixed): boolean

isNil

Parameters

  1. any: mixed:  

Returns

is.isStr

isStr(any: mixed): boolean

isStr

Parameters

  1. any: mixed:  

Returns

is.isBool

isBool(any: mixed): boolean

isBool

Parameters

  1. any: mixed:  

Returns

is.isObj

isObj(any: mixed): boolean

isObj

Parameters

  1. any: mixed:  

Returns

is.isBlob

isBlob(any: mixed): boolean

isBlob

Parameters

  1. any: mixed:  

Returns

is.isFile

isFile(any: mixed): boolean

isFile

Parameters

  1. any: mixed:  

Returns

is.isSVG

isSVG(any: mixed): boolean

isSVG

Parameters

  1. any: mixed:  

Returns

is.isNullSome

isNullSome(args: ...any): boolean

Проверяет все ли переданные аргументы являются null

Parameters

  1. args: ...any:  

Returns

is.isEl

isEl(any: mixed): boolean

isEl

Parameters

  1. any: mixed:  

Returns

json

static

json.parse

parse(s: string?): (mixed | null)

Парсит входящий аргумент, при ошибке возвращает null

Parameters

  1. s: string?:  

Returns

(mixed | null)

Example

parse( "{\"x\":3}" ) // { x: 3 }
parse( [] ) // null

json.parseObj

parseObj(s: string?): (MixedMap | null)

Парсит входящий аргумент, если результат не является простым объектом, возвращает null

Parameters

  1. s: string?:  

Returns

(MixedMap | null)

Example

parseObj( "{\"x\":3}" ) // { x: 3 }
parseObj( "[1]" ) // null

json.str

str(any: mixed): (string | null)

Сериализует аргумент, возвращает null если была ощибка

Parameters

  1. any: mixed:  

Returns

(string | null)

Example

str( { x: 3 } ) // "{\"x\":3}"
const obj = {}; obj.self = obj; str( obj ) // null

cast

cast

Parameters

  1. val: any:  
  2. type: ("string" | "number" | "boolean" | "object" | "array" | "null" | "function"):  

Returns

any

__Number

static

__Number.MAX_SAFE_INTEGER

MAX_SAFE_INTEGER: number

Максимально допустимое число

__Number.castNum

castNum(maybeNum: any, def: number?): number

Возвращает первый аргумент если это число, иначе второй, если задан, либо - 0

Parameters

  1. maybeNum: any:  
  2. def: number?:  
    опционально

Returns

Example

castNum( 3 ) // 3
castNum( undefined ) // 0
castNum( undefined, 11 ) // 11

__Number.randNum

randNum(minNum: number?, maxNum: number?): number

Возвращает рандомное число в указаннном промежутке, либо если не указан - от 0 до 9007199254740991

Parameters

  1. minNum: number?:  
    *
  2. maxNum: number?:  
    *

Returns

Example

randNum() // 123
randNum( 999 ) // 1123
randNum( 100, 105 ) // 103

__Object

static

__Object.getFullType

getFullType(some: any): string

Возвращает полный тип передаваемого аргумента

Parameters

  1. some: any:  

Returns

string [object Number]

Example

getFullType( [] ) // [object Array]
getFullType( null ) // [object Null]

__Object.castObj

castObj(maybeObj: any): {}

Возвращает аргумент, если он - объект, либо пустой объект

Parameters

  1. maybeObj: any:  

Returns

{}

Example

castObj( { x: 3 } ) // { x: 3 }
castObj( undefined ) // {}

__Object.hasProp

hasProp(obj: {}, propName: string): boolean

Проверяет если ли у объекта свойства

Parameters

  1. obj: {}:  
  2. propName: string:  

Returns

Example

hasProp( { x: 3 }, 'x' ) // true
hasProp( { x: 3 }, 'QWE' ) // false

__Object.objGet

objGet(obj: AnyMap, keysIn: string): any

Возвращает значение объекта по вложенному пути

Parameters

  1. obj: AnyMap:  
  2. keysIn: string:  

Returns

any

prepareRequestBody

Подготавливает body для запросов в виде json, query-параметров или FormData

Parameters

  1. arg: InputType?:  
  2. arg.body: (null | void | AnyMap)?:  
  3. arg.as: ("json" | "query" | "formData" | void)?:  
    ожидаемый формат, если не указан, то json

Returns

BodyOutType

Example

prepareRequestBody( { body: { file: Blob }, as: 'formData' } )
// FormData { file: Blob }

prepareRequestBody( { body: { x: 3 } } )
// "{\"x\":3}"

prepareRequestBody( { body: { a: 1, b: 2 }, as: 'query' } )
// "?a=1&b=2"

prepareRequestBody( { body: undefined } )
// null

__String

static

__String.clearWS

clearWS(str: string): string

Тримит строку и сокращает число пробелов до одного в середине строки

Parameters

  1. str: string:  
    " ab c "

Returns

string "ab c"

__String.randStr

randStr(): string

Возвращает рандомную строку вида \d+-random

Returns

string "1345234523452-random"

__String.castStr

castStr(maybeStr: mixed, defaultStr: string?): string

Возвращает переданный аргумент, если он является строкой, либо второй аргумент (если он присутствует и также является строкой ), либо пустую строку

Parameters

  1. maybeStr: mixed:  
  2. defaultStr: string?:  

Returns

__String.cropStr

cropStr(strIn: string, maxLength: (number | null)): string

Обрезает строку до указанной длины если maxLength - число и больше нуля

Parameters

  1. strIn: string:  
  2. maxLength: (number | null):  

Returns

__String.clearNonDigits

clearNonDigits(str: string): string

Очищает все нечисловые символы

Parameters

  1. str: string:  

Returns

__String.clearNonAlphanumeric

clearNonAlphanumeric(str: string): string

Очищает символы не входящие в паттерн [A-Za-z0-9_]

Parameters

  1. str: string:  

Returns

__String.clearNonWord

clearNonWord(str: string): string

Очищает символы не буквенные символы

Parameters

  1. str: string:  

Returns

__String.clearDigits

clearDigits(str: string): string

Очищает все числовые символы

Parameters

  1. str: string:  

Returns

__String.capitalizeStr

capitalizeStr(str: string): string

Переводит первый символ строки в верхний регистр, остальные — в нижний

Parameters

  1. str: string:  

Returns