npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

lw-sdk

v1.5.0

Published

SDK for Laurel & Wolf API

Downloads

5

Readme

Laurel & Wolf JS SDK Build Status

JS SDK for Laurel & Wolf API

All requests and responses assume that the api strictly adheres to the JSON API spec.

Install

npm install lw-sdk --save

Usage

import sdk from 'lw-sdk';

// Set data used for all requests
let api = sdk({
	origin: 'https://api.somewhere.com',
	headers: {
		'michael': 'scarn'
	}
});

try {
	let res = await api()
		.getProjects()
		.include('schrute', 'schrute.farms')
		.fields({
			schrute: ['beets']
		});
		
	// Do something with res.body;
}
catch (err) {
	// Do somethign with err.body;
}

API

Overview

Interacting with resources

4 verbs are used to describe how you interact with a resource

  • get
  • create
  • update
  • delete

For example, for the resource projects, the following methods are available:

  • getProjects - list of projects
  • getProject(:id) - single project
  • createProject
  • updateProjects
  • deleteProject

Resource response

Each method associated with a resource returns a promise. Any response with a status of less than 400 is considered a success and will resolve the promise. Any response with a status that is greater than or equal to 400 will reject the promise.

Both resolved and rejected responses return the status, body, headers, etc.

let api = sdk();

api()
	.getProjects()
	.then(() => {/* status is less than 400 */})
	.catch(() => {/* status is greater than or equal to 400 */})

Setting default values

Default values make it easier to ensure that all requests are uniform and valid. Since the sdk uses the fetch api to make all requests, any options available to the fetch method are available when defining defaults.

There are 2 ways to set default values.

For all requests

let api = sdk({
	headers: {
		some: 'default'
	}
});

For a specific request

let api = sdk();

api({
	headers: {
		some: 'custom header'
	}
})
	.getProjects();

Building requests

All get requests have the following chainable helper-methods available for building the JSON API request:

  • include
  • fields
  • sort

All create and update requests have the following chainable helper-methods available for build the JSON API requests:

  • relatedTo

Resources

projects

Running Tests

All tests get run in PhantomJS locally

Clone and install deps

git clone [email protected]:laurelandwolf/sdk.git sdk && cd sdk
npm install

While writing new tests it is recommended that you start the test server for faster test runs

npm test

Once the test server is started, open the browser to the specified url to watch the tests run. a file watcher watches your src and test files and re-runs the tests on file save.

CI Test Runner

For one-off test runs without starting the test server or for running tests on a ci box, use

npm run test-ci