src/matchers.js
'use strict'
const UUID_REGEX =
/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/
const urlMatcher = url =>
typeof url === 'string' && url.substring(0, 8) === 'https://'
const uuidMatcher = uuid => typeof uuid === 'string' && UUID_REGEX.test(uuid)
// TODO Убедиться что указан необходимый минимум полей для сущностей
module.exports = {
'entity': ent =>
!!(ent && ent.id && uuidMatcher(ent.id) && ent.meta && ent.meta.type),
'uuid': uuidMatcher,
'url': urlMatcher,
// 'uuid/uuid': id => {
// if (typeof id !== 'string') { return false }
// let [dicId, entId] = id.split('/')
// return UUID_REGEX.test(dicId) && UUID_REGEX.test(entId)
// },
'Moysklad.Collection': col =>
!!(
col &&
col.meta &&
col.meta.type &&
urlMatcher(col.meta.href) &&
typeof col.meta.size === 'number'
)
}
// TODO Проверка типов "Moysklad." на основании модели