Как стать автором
Обновить

Комментарии 3

Этот код получается настолько запутанным, что в нём совершенно не хочется копаться, если надо будет что-то исправить или дополнить.


Собственно, в приведенных исходниках — ошибки, и отлавливать их через весь этот resolver hell уже очень неприятно.


А я всего-то хотел посмотреть, что будет с вот этим


style: {
...component.style,
...callResolvers(component, styleResolvers.map(enhancedResolve)),
}, 

если, например, резольверы будут чуть-чуть конфликтовать между собой или вызовутся не в том порядке, в котором перечислены.


Возможно, я ошибаюсь, но мне пока кажется, что такой стиль написания — лёгкий способ свихнуться. Поправьте, сеньоры.

function makeInjectContext(context) {
  return function (callback) {
    return function (...args) {
      let result = callback(...args)
      if (typeof result === 'function') {
        // Call it again and inject additional options
        result = result(context)
      }
      return result
    }
  }
}

Если рябит в глазах от скобок:

const makeInjectContext = context => callback => (...args) => {
  let result = callback(...args)
  if (typeof result === 'function')
  // Call it again and inject additional options
    result = result(context)
  return result
}
if (displayTimestamp === true) {

Фу-фу.

if (Array.isArray(resolvers.base)) baseResolvers = resolvers.base
  else baseResolvers = [resolvers.base]

Первая мысль,

const baseResolvers = Array.isArray(resolvers.base)
	? resolvers.base
  : [resolvers.base]

А вторая мысль вот какая:

if (!Array.isArray(resolvers.base))
	throw new Error('Wrong type for resolvers.base.')

Не должно быть никаких плавающих типов.

Не должно быть никаких плавающих типов.
Тогда уж и
if (typeof result !== 'function')
  throw new Error('Wrong type for result. Function expected.')
return result(context)
И ожидать вместо примитива/объекта функцию вида
(x) => x
Зарегистрируйтесь на Хабре, чтобы оставить комментарий