UNPKG

goalist

Version:

Goalist is a command line tool for managing daily goals.

55 lines (42 loc) 1.28 kB
// -------------------------------------------------- // IMPORT MODULES // -------------------------------------------------- // Node import * as fs from 'fs'; // Vendors // Project import { Goal } from '../interfaces'; // -------------------------------------------------- // DECLARE VARS // -------------------------------------------------- // -------------------------------------------------- // DECLARE FUNCTIONS // -------------------------------------------------- export default function add( INPUT, ARGS, config ) { return new Promise( ( resolve, reject ) => { let title = INPUT[ 0 ] || null; if ( !title ) { let err = 'Whoops, `add` must be invoked with a valid `title` argument.'; config.debugger.log( err ); reject( new Error( err ) ); return; } let log = config.utils.getLog( 'active' ); let { goals } = log; // Create and update `goal`. let id = new Date().getTime(); let goal: Goal = { id: id, title: title, description: ARGS.description || '', complete: false, active: true, }; // Add `goal`. goals[ id ] = goal; // Write new data back to file system. config.utils.writeLog( 'active', JSON.stringify( log ) ); config.debugger.log( `Successfully created goal: ${id}` ); resolve( goal ); } ); }