goalist
Version:
Goalist is a command line tool for managing daily goals.
55 lines (42 loc) • 1.28 kB
text/typescript
// --------------------------------------------------
// 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 );
} );
}