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

kashflow-api

v1.0.4

Published

Kashflow API

Downloads

19

Readme

Kashflow API (Node)

Coverage Status

The Kashflow api bindings for NodeJS written in Typescript.

Before you Install

Version 1.0.0 is still in testing. The javascript works fine and it makes API cals no problem, but the typings enforced by Typescript may require some tweaking as time goes on. If you have any problems open an issue here.

Install

npm install --save kashflow-api

Usage

Require Kashflow

Javascript

var KashflowAPI = require('kashflow-api')

var api = new KashflowAPI('your-username', 'your-password')

api.call('GetCustomer', {
  CustomerCode: 'SOMECODE'
}).then(function(result){
  // your code here.
  result.response // The customer
})

Whilst this library will work fine in Javascript it has so many more features for Typescript.

Typescript

This library is 90% Typescript typings.

The call method has its input data and response typed based on the requested API method. All the interfaces are exported for you to use in your code.

import {KashflowAPI, Customer} from 'kashflow-api'

const useAPI = async () => {
  const api = new KashflowAPI('your-username', 'your-password')

  let {response: customer} = await api.call('GetCustomer', {
    CustomerCode: 'SOMECODE' // TS will only allow CustomerCode here because of the call to `GetCustomer
  })

  customer.Name // will produce no errors as the output is typed as Customer
}

// Using exported interfaces you can set the types for functions etc...
const outputCustomer = (customer: Customer) => {
  console.log(customer.Name)
}

We reccomend using Typescript with this API. There is some extremely inconsistent naming and inputs, for example GetInvoice uses InvoiceNumber, GetInvoiceNotes uses InvoiceId, GetInvoicePayment uses InvoiceNumber and GetInvoiceByID uses InvoiceID.

Contributing

We welcome pull requests and issues on this repository.

To build locally pull a copy of the repository and run npm install to get the dependecies.

Testing is done with npm test which will test the code and that tsc can compile the output.