Functional RethinkDB functions for point free programming
npm install reql-pointfreeworks on the RethinkDB official driver and rethinkdbdash
npm install --save reql-pointfree
`
and you're setUsage
`js
import createReQL from 'reql-pointfree'
const { db, compose, filter, take, table, add, execute } = createReQL(r) // the rethink driver// create a
reql function to call your ReQLs
let reql = execute(r.connection) // rethinkdbdash is just execute()// some functions
let exclaim = add('!') // r.something().add('!')
let head = take(0) // r.something()(0)
let getName = map(take('name')) // r.something().map(e => e('name'))
let filterSuperheroes = filter({ isSuperhero: true }) // r.something().filter({ isSuperhero: true })
let users = table('users') // r.table('users')
let earth = db('earth') // r.db('earth')
let getSuperheroesFromUsers = compose(filterSuperheroes, users, db)
let getNameOfFirstSuperheroFromUsers = compose(getName, head, getSuperheroesFromUsers)
// then, in your app..
reql(getNameOfFirstSuperheroFromUsers).then(....)
// and even
reql(getSuperheroesFromUsers).then(...)
`this is the concept. you don't have to compose everything, but you CAN compose things. which is great IMO.
Functions
$3
Just like the official driver says.$3
Just like the official driver says.$3
Just like the official driver says.$3
composes functions from right to left.
supports Promises (thenables), ReQL and normal functions$3
Just like the official driver says.$3
Just like the official driver says.$3
Just like the official driver says.$3
creates a reql function, which can be composed too.$3
Just like the official driver says.$3
Just like the official driver says.$3
tells if the argument is a ReQL query$3
Just like the official driver says.$3
calls map on SEQUENCE|ARRAY|TABLE|STREAM and do on other cases.$3
Just like the official driver says.$3
Just like the official driver says.$3
Just like the official driver says.$3
for taking stuff out of an object. just like`js
r.table('users').find({ isSuperhero: true })('name')
// take('name')(reql)-^^^^^^^^
``