Sha256: 303aa90bef3301bea0b9c8ac645644d04eeb4725b027ea30776c938081ca5a3a

Contents?: true

Size: 1.07 KB

Versions: 26

Compression:

Stored size: 1.07 KB

Contents

import pluralize from 'pluralize'
import _ from 'lodash'
import { v4 as uuidv4 } from 'uuid'

export default (dis, store, entity, { extraActions = {}, hasPriority = false } = {}) => {
  function add(data = {}) {
    const id = uuidv4()
    return dis({ type: `${pluralize(entity)}/add`, payload: { id, ...data } })
  }

  function upsert(id, data) {
    return dis({ type: `${pluralize(entity)}/upsert`, payload: { id, ...data } })
  }

  function movePriority(id, priority, parentFilter = {}) {
    return dis({ type: `${pluralize(entity)}/movePriority`, payload: { id, priority, parentFilter } })
  }

  function setAll(data) {
    return dis({ type: `${pluralize(entity)}/setAll`, payload: data })
  }

  function remove(id) {
    return dis({ type: `${pluralize(entity)}/remove`, payload: id })
  }

  const extraActionsResolved = extraActions ? _.mapValues(extraActions, v => v(dis, store, entity)) : {}

  if (hasPriority) {
    return { add, upsert, setAll, remove, movePriority, ...extraActionsResolved }
  } else {
    return { add, upsert, setAll, remove, ...extraActionsResolved }
  }
}

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
jason-rails-0.8.7 client/src/actionFactory.ts
jason-rails-0.8.6 client/src/actionFactory.ts
jason-rails-0.8.4 client/src/actionFactory.ts
jason-rails-0.8.3 client/src/actionFactory.ts
jason-rails-0.8.2 client/src/actionFactory.ts
jason-rails-0.8.1 client/src/actionFactory.ts
jason-rails-0.7.5.1 client/src/actionFactory.ts
jason-rails-0.8.0 client/src/actionFactory.ts
jason-rails-0.7.5 client/src/actionFactory.ts
jason-rails-0.7.3 client/src/actionFactory.ts
jason-rails-0.7.2 client/src/actionFactory.ts
jason-rails-0.7.1 client/src/actionFactory.ts
jason-rails-0.7.0 client/src/actionFactory.ts
jason-rails-0.6.8 client/src/actionFactory.ts
jason-rails-0.6.7 client/src/actionFactory.ts
jason-rails-0.6.6 client/src/actionFactory.ts
jason-rails-0.6.5 client/src/actionFactory.ts
jason-rails-0.6.4 client/src/actionFactory.ts
jason-rails-0.6.3 client/src/actionFactory.ts
jason-rails-0.6.2 client/src/actionFactory.ts