[READ-ONLY] Mirror of https://github.com/Schniz/reql-pointfree. Functional RethinkDB functions for point free programming
0

Configure Feed

Select the types of activity you want to include in your feed.

JavaScript 96.5%
Other 3.5%
19 1 7

Clone this repository

https://tangled.org/schlez.in/reql-pointfree https://tangled.org/did:plc:lciagas743im4rn5md45remg
git@tangled.org:schlez.in/reql-pointfree git@tangled.org:did:plc:lciagas743im4rn5md45remg

For self-hosted knots, clone URLs may differ based on your setup.



README.md

reql-pointfree#

Functional RethinkDB functions for point free programming

works on the RethinkDB official driver and rethinkdbdash

Installation#

just

npm install --save reql-pointfree

and you're set

Usage#

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#

add#

Just like the official driver says.

asc#

Just like the official driver says.

coerceTo#

Just like the official driver says.

compose#

composes functions from right to left. supports Promises (thenables), ReQL and normal functions

db#

Just like the official driver says.

desc#

Just like the official driver says.

eqJoin#

Just like the official driver says.

execute#

creates a reql function, which can be composed too.

filter#

Just like the official driver says.

get#

Just like the official driver says.

isReQL#

tells if the argument is a ReQL query

limit#

Just like the official driver says.

map#

calls map on SEQUENCE|ARRAY|TABLE|STREAM and do on other cases.

orderBy#

Just like the official driver says.

run#

Just like the official driver says.

table#

Just like the official driver says.

take#

for taking stuff out of an object. just like

r.table('users').find({ isSuperhero: true })('name')
//                       take('name')(reql)-^^^^^^^^

toArray#

Just like the official driver says.