2.6.0 • Published 4 years ago

@prudent/encode v2.6.0

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

@prudent/encode

Encode messages using Prudent's IPC protocol (for communicating between add-ons and Prudent).

This is useful for Prudent add-on developers.

Installing

$ npm install --save

Usage

To encode a message that comply to Prudent's add-on communication protocol:

encode.protocol(messageName, content);

Typically, Prudent will listen to your add-on process' standard output. To send a message to Prudent, the following will do:

console.log(encode.protocol('transactions', arrayOfTransactions));

To format a date string into a Prudent compatible string:

console.log(encode.dateString('2019-12-25'));

To format a transaction to be Prudent compatible:

console.log(encode.transaction(date, payee, value, description, debit, credit, type));

debit, credit and type are optional.

To create a chart object that can be sent to a Prudent compatible client:

encode.chart(visualizer, type, title, content);

See Format section below for the expected type that these parameters.

Protocols

Prudent to Add-on:

Message nameExpected contentType of add-on applicableExampleData type
fileAbsolute path and filename of file to parseParser/Users/Cody/August.csvString
transactionsList of transactions in parsed fileParser[]Array of transaction objects

Format

Supported date string format:

yyyy/mm/dd

Use encode.dateString() to convert most popular date strings to this format.

Expected transaction object format:

{
    date: date, // String: yyyy/mm/dd as per above
    payee: payee, // String
    value: value, // Numerics in String form, e.g. '3.89'
    description: description, // String
    debit: debit, // String, Optional
    credit: credit, // String, Optional
    type: type // String: DEBIT | CREDIT, Optional 
} 

Use encode.transaction() to create such an object.

Expected chart object format:

{
        visualizer: visualizer, // String, i.e. 'Nivo'
        type: type, // String, i.e. 'ResponsiveBar'
        title: title, // String, i.e. 'Interest earnings'
        chart: content // Object, i.e. props for Responsive Bar component
}

Use encode.chart() to create such an object.