Composable AJAX requests that return a Future data type.
This package used to be this project: https://github.com/runlevel3/lemonade However, that project has now been deprecated for this package name. Please visit the github project if you still need the old project.
yarn install lemonade
ornpm install lemonade
Lemonade is bundled to work with EcmaScript version 5.
For older environments you may need to polyfill the following
function: Object.assign
.
var { compose, lift } = require('ramda');
var { getJson } = require('lemonade');
var { dom, getProp, setProp } = require('saladbar');
// Given you want to add an API response to this html
// <p class="default"></p>
// API Endpoint
var endpoint = 'https://jsonplaceholder.typicode.com/posts/1';
// Function to hit enpoint and return the body prop of the response
var postBody = compose(getProp('body'), getJson);
// Lifted function that will set the innerHTML of the passed in DOM Element with the API response
var setHtmlWithPostBody = lift((data, el) => setProp('innerHTML', data, el));
// Load the function and then fork it with the results
setHtmlWithPostBody(postBody(endpoint), dom('.default'))
.fork(console.error, console.log);
//> DOM Element
The package.json
sets a module
-field for build-tools like Rollup.
import { compose, lift } from 'ramda';
import { getJson } from 'lemonade';
import { dom, getProp, setProp } from 'saladbar';
// Given you want to add an API response to this html
// <p class="default"></p>
// API Endpoint
const endpoint = 'https://jsonplaceholder.typicode.com/posts/1';
// Function to hit enpoint and return the body prop of the response
const postBody = compose(getProp('body'), getJson);
// Lifted function that will set the innerHTML of the passed in DOM Element with the API response
const setHtmlWithPostBody = lift((data, el) => setProp('innerHTML', data, el));
// Load the function and then fork it with the results
setHtmlWithPostBody(postBody(endpoint), dom('.default'))
.fork(console.error, console.log);
//> DOM Element
Lemonade is hosted in full with all of its dependencies at: https://cdn.rawgit.com/wking-io/lemonade/14005c66/lib/bundle.js
This script will add lemonade
to the global scope.