l7note
Version:
Access your notion notes quick
136 lines (135 loc) • 5.07 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.displayNotes = void 0;
const prompts_1 = __importDefault(require("prompts"));
const open_1 = __importDefault(require("open"));
const chalk_1 = __importDefault(require("chalk"));
const markAsDone_js_1 = require("./noteActions/markAsDone.js");
const markAsDelete_js_1 = require("./noteActions/markAsDelete.js");
const process_1 = require("process");
var options;
(function (options) {
options[options["OPENCLI"] = 1] = "OPENCLI";
options[options["OPENBROWSER"] = 2] = "OPENBROWSER";
options[options["EDIT"] = 3] = "EDIT";
options[options["MARKDELETE"] = 4] = "MARKDELETE";
options[options["DELETE"] = 5] = "DELETE";
})(options || (options = {}));
const onListCancel = () => {
console.log('BYE');
(0, process_1.exit)(1);
};
const listOptions = { onCancel: onListCancel };
const displayInCli = (note) => {
console.log(note.url);
console.log(chalk_1.default.green(note.title));
console.log(note.tags);
console.log();
console.log(note.text);
};
const GoBackPrompt = () => __awaiter(void 0, void 0, void 0, function* () {
const goBacktoListQuestion = [
{
type: 'select',
name: 'goBack',
message: '',
choices: [{ title: 'Back' }, { title: 'Exit' }],
},
];
const res = yield (0, prompts_1.default)(goBacktoListQuestion, listOptions);
if (res.goBack) {
console.log('BYE');
(0, process_1.exit)(1);
}
});
const displayNotes = (noteList) => __awaiter(void 0, void 0, void 0, function* () {
console.clear();
const choises = noteList.map(note => {
const newChoise = {
title: note.title,
description: chalk_1.default.cyan(note.text.substring(0, 32)),
value: note,
};
return newChoise;
});
const noteDisplayList = [
{
type: 'select',
name: 'selected',
message: 'Selet the note you want to view:',
choices: choises,
},
];
const res = yield (0, prompts_1.default)(noteDisplayList, listOptions);
const whatToToSelect = [
{
type: 'select',
name: 'whatToDo',
message: 'What do you want to do with the selected note:',
choices: [
{
title: 'Open in cli',
value: options.OPENCLI,
},
{
title: 'Open in browser',
value: options.OPENBROWSER,
},
{
title: 'Edit note',
value: options.EDIT,
},
{
title: 'Mark as done',
value: options.MARKDELETE,
},
{
title: `${chalk_1.default.red('Delete note')}`,
value: options.DELETE,
},
],
},
];
const whatToDoRes = yield (0, prompts_1.default)(whatToToSelect, listOptions);
switch (whatToDoRes.whatToDo) {
case options.OPENBROWSER:
(0, open_1.default)(res.selected.url);
yield GoBackPrompt();
displayNotes(noteList);
break;
case options.OPENCLI:
displayInCli(res.selected);
yield GoBackPrompt();
displayNotes(noteList);
break;
case options.MARKDELETE:
(0, markAsDone_js_1.markAsDone)(res.selected);
yield GoBackPrompt();
console.log(res.selected);
console.log(noteList);
displayNotes(noteList);
yield GoBackPrompt();
break;
case options.DELETE:
(0, markAsDelete_js_1.markAsDeleteByNote)(res.selected);
yield GoBackPrompt();
noteList = noteList.filter(note => note.id !== res.selected.id);
displayNotes(noteList);
break;
default:
break;
}
});
exports.displayNotes = displayNotes;