It's part lamb. It's part dog. It's lambdog.

Usage no npm install needed!

<script type="module">
  import lambdogClient from 'https://cdn.skypack.dev/@lambdog/client';


part lamb, part dog

It's part lamb. It's part dog. It's Lambdog.

Ok, so what IS Lambdog? Lambdog is a set of packages (one for the client, and one for the server) that makes it easy to call and write Lambda functions for use on Netlify. You can use either one independently, or use them together.


@lambdog/client ealilly connects your front-end app with your back-end Netlify function. No need to worry about fetch or JSON encoding/decoding.


$ npm i @lambdog/client


$ yarn add @lambdog/client


Here is a basic setup.

import lambdog from '@lambdog/client';

const hello = (name) => lambdog('hello', { params { name }});

// Then to use it

const text = await hello('World');
console.log(text); // "Hello World"

// or

hello('World').then(text => console.log(text));

To pass data, specify the method and the data. Lambdog will automatically JSON stringify the data on the way out and parse on the way back.

const addToto = (data) =>
  lambdog('todo-add', {
    method: 'POST',

or use the convenience function lambdog.post(name, data, options).

const addToto = (data) => lambdog.post('todo-add', data);

Then to update a todo on the server.

const id = await addToto({ text: 'buy milk', completed: false });


Here are the parameters that you can use.

Parameter Description
functionName A string containing the Netlify function to call. See below for passed parameters.
options An optional configuration object.


lambdog returns a promise that resolves to the output from your Netlify function.

Convenience functions

Lambdog provides the following convenience functions.

  • lambdog.request(options)
  • lambdog.get(name[, options])
  • lambdog.delete(name[, options])
  • lambdog.head(name[, options])
  • lambdog.post(name[, data[, options]])
  • lambdog.put(name[, data[, options]])
  • lambdog.patch(name[, data[, options]])

Configuration object

The configuration object has the following options.

A string used for URL pattern matching. For example, if you want the URL /.netlify/functions/hello/World to call your hello function and pass "World" as the name prop, set pathToProps to ":name" | Parameter | Description | | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | params | An object that will be converted to search params or replaces in the path. If you call with fn('hello', {params: {foo: 'bar'}}) the the URL will be /.netlify/functions/hello?name=World. If you call with fn('hello/:name', {params: {foo: 'bar'}}) the the URL will be /.netlify/functions/hello/World | | headers | An optional object with key/values to use in the HTTP header. Defaults to {'content-type': 'application/json'} for calls that include data.| | data | Any data that you would like serialized in the HTTP body. By default, this will be JSON.stringifyed. |


MIT Licensed