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 🙏

© 2025 – Pkg Stats / Ryan Hefner

inkworks

v0.0.22

Published

Connect to the Ink.Works API via Node.js

Downloads

32

Readme

Ink.Works Node.js Library

The Ink.Works Node library provides convenient access to the Ink.Works API from applications written in server-side JavaScript.

Please keep in mind that this package is for use with server-side Node that uses Ink.Works API keys.

Installation

npm i inkworks -s

or

yarn add inkworks

Example Usage

The package needs to be configured with your API key which is can be generated in your Ink.Works (Take2) Profile. Require it with the key's value:

const InkWorks = require('inkworks');
const inkworks = new InkWorks('api-key...');

const customer = await inkworks.customers.create({
  email: '[email protected]',
});

Or using ES modules, this looks more like:

import Inkworks from 'inkworks';
const inkworks = new InkWorks('api-key...');
//..

List a resource

const customers = await inkworks.customers.list({
  where: { fuzzyQuery: 'Joe' },
  order: 'reverse:createdAt'
  limit: 10
});

/*
  [{
    id: 1234,
    name: Joe Smith
  }, {
    id: 1345,
    name: Joe Wooten
  },
  ...]
*/

Get one resource

const customer = await inkworks.customers.retrieve(1234);

/*
  {
    id: 1234,
    name: Joe Smith,
    email: [email protected]
  }
*/

Create a resource

const newCustomer = await inkworks.customers.create({
  name: 'Joe Warren',
  email: '[email protected]'
});

/*
  {
    id: 1346,
    name: 'Joe Warren',
    email: '[email protected]'
    ...
  }
*/

Update a resource

const updatedCustomer = await inkworks.customers.update(1234, {
  name: 'Joe P. Smith'
});

/*
  {
    id: 1234,
    name: 'Joe P. Smith'
    email: '[email protected]'
  }
*/

Delete a resource

NOTE: Deleting returns the fields of the deleted resource

const deletedCustomer = await inkworks.customers.delete(1234);


/*
  // Deleted Record details
  {
    id: 1234,
    name: 'Joe P. Smith'
    email: '[email protected]'
  }
*/

Advanced Usage

The Ink.Works API is a GraphQL based API, therefore, the Ink.Works SDK allows for custom queries against the API. If you'd prefer to request resources with raw GraphQL, you may. Observe the following example:

import InkWorks from 'inkworks';

const inkworks = new InkWorks('api-key...');

const query = `
  query ($id: Int) {
    order(id: $id) {
      id
      invoiceNumber
      
      customer {
        id
        name
        email
        lifeTimeValue
        orderHistory
      }
    }
  }
`;

const variables = {
  customer: { id: 1234 }
};

const { data, errors } = await inkworks.request(query, variables);

// { data } and { errors } will contain your graph response.