src/index.ts
#!/usr/bin/env node
/* eslint-disable consistent-return */
import * as inquirer from 'inquirer';
import { readNotes } from './disk';
import { config as isConfig } from './disk';
import execNote from './execArgs';
const { createPromptModule } = inquirer;
const initialPrompt = createPromptModule();
var argv = require('minimist')(process.argv.slice(2));
(async () => {
const { token, projectId } = isConfig();
const hasAPIToken = Boolean(token && projectId);
const notes = readNotes();
const { _ } = argv;
let { q, n, l, d, h, e, config, clear } = argv;
if (_.includes('l')) {
l = true;
}
if (_.includes('n')) {
n = true;
}
if (_.includes('q')) {
q = true;
}
if (_.includes('e')) {
e = true;
}
const noArgs = !l && !n && !d && !q && !e && !clear && !config;
if (noArgs) {
const { selection } = await initialPrompt({
type: 'list',
name: 'selection',
message: 'What would you like to do?',
choices: [
'Create New Note',
'List Notes',
'Edit Notes',
'Delete Notes',
'Clear Notes',
'Configure Todoist API',
'Help',
],
});
// set flags and continue execution
if (selection === 'Create New Note') {
n = true;
}
if (selection === 'List Notes') {
l = true;
}
if (selection === 'Edit Notes') {
e = true;
}
if (selection === 'Delete Notes') {
d = true;
}
if (selection === 'Clear Notes') {
clear = true;
}
if (selection === 'Help') {
h = true;
}
if (selection === 'Configure Todoist API') {
config = true;
}
}
return execNote({ q, n, l, e, d, h, clear, config, _, hasAPIToken }, notes);
})();