Skip to content

Using conducer with do{} expressions #1

Description

@sebas5384
import { every, some } from 'conducer'

const hasRole = roleExpected => ({ user }) => user.roles.some(role => role === roleExpected)
const isActiveUser = ({ user: { status } }) => status

const earnBadgeModerator = every([
  isActiveUser,
  some([
    hasRole('admin'),
    hasRole('moderator'),
  ])
])

const facts = { user: { status: true, roles: ['moderator', 'admin'] } }

const newFacts = do {
  if (earnBadgeModerator(facts)) {
    ({ ...facts, user: { ...facts.user, badge: ['moderator'] } })
  }
  else {
    facts
  }
}

console.log(newFacts)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions