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

to-ynab

v0.1.0

Published

Convert csv files from different sources, like banks to YNAB ( youneedabudget.com ) ready csv files

Downloads

8

Readme

to-ynab

by @cosminlupu

Converts bank ( and other sources ) .csv files to .csv files ready to import in YNAB ( youneedabudget.com )

Build Status Coverage Status

Features

  • CSV conversion
  • API to use to-ynab programmatically
  • CLI for easy use

TODO

  • Support for more .csv sources ( Currently only Nordea bank )
  • Support for own source config via a json file

How to install

To use to-ynab via cli, install it globally using npm:

npm install -g to-ynab

If you want to use the API instead, install it locally:

npm install --save to-ynab

then, include it in your javascript:

var to-ynab = require('to-ynab');

How to use via CLI

To create a YNAB ready .csv file from your own .csv file

to-ynab <file.csv>

For example:

to-ynab transactions.csv

Will generate ynab.csv.

Available CLI options

  • -h, --help output usage information
  • -V, --version output the version number
  • -s, --source [value] Source to use for reading the provided csv. Default: nordea
  • -o, --output [value] Output filename (with or without .csv extension). Default: ynab
  • -l, --lastdate [value] Last date for a transaction to be added to generated csv.
  • -p, --payees [payees] List of payees to match in description, comma separated.
  • -d, --delimitor [value] Cell delimitor in source file ( same one will be used in generated file). Default: ;
  • -c, --csvstring Provide a csv string instead of file
  • -n, --no-write Does not write the generated file, it just outputs it.
  • -f, --dateformat [value] Date format for the generated csv. Default: DD/MM/YYYY

How to use via API

Include to-ynab in your javascript with:

let to-ynab = require('to-ynab');

Then to render a csv file:


to-ynab('transactions.csv')
    .then( (result) => {
        console.log(result); //In this case result will a success message with the location of the generated file
    }).catch( (err) => {
        console.log(err);
    });

Passing options:


to-ynab('transactions.csv', {
        output: myfile.csv,
        write: false
    }).then( (result) => {
        console.log(result); //In this case result will be a string version of the generated file
    }).catch( (err) => {
        console.log(err);
    });

Available API options

{
    source: 'nordea',                   //Source to use for reading the provided csv. Default: _nordea_
    output: 'ynab',                     //Output filename (with or without .csv extension). Default: _ynab_
    lastdate: '18/10/2016',             //Last date for a transaction to be added to generated csv.
    payees: ['Just eat', 'Spotify'],    //List of payees to match in description, comma separated.
    delimitor: ';',                     //Cell delimitor in source file ( same one will be used in generated file). Default: _;_
    csvstring: false,                   //Provide a csv string instead of file
    write: true,                        //Writes the contents to file. Default: _true_
    dateformat: 'DD/MM/YYYY'            //Date format for the generated csv. Default: _DD/MM/YYYY_
}

Developing / extending

  • To install dependencies execute npm install
  • To test, execute npm test ( This will run Mocha tests and Instanbul coverage report)
  • To execute the CLI, execute npm start -- <file.csv> [options]
  • To install your local version globally, execute npm install -g . on the project folder ( Only use for development)

How to contribute

To contribute to to-ynab you should fork this repository with git.

  1. Make a change that you might see fit on your own fork ( using develop branch )
  2. Create tests for your change, and also make sure the existing tests pass
  3. Only make pull requests from the develop branch. Pull requests from master won't be merged
  4. Check the opened and closed issues before creating one

Thanks for your help!

License

MIT