library upgrades

This commit is contained in:
zadam
2022-11-07 21:26:13 +01:00
parent d29a633529
commit b3c87156c2
39 changed files with 3443 additions and 3242 deletions

View File

@@ -38,7 +38,7 @@ const AbstractEntity = require("./abstract_entity");
const NoteRevision = require("./note_revision");
const TaskContext = require("../../services/task_context");
const dayjs = require("dayjs");
const utc = require('dayjs/plugin/utc')
const utc = require('dayjs/plugin/utc');
dayjs.extend(utc)
const LABEL = 'label';
@@ -867,30 +867,81 @@ class Note extends AbstractEntity {
return Array.from(set);
}
/** @returns {Note[]} */
getSubtreeNotes(includeArchived = true) {
/**
* @returns {{notes: Note[], relationships: Array.<{parentNoteId: string, childNoteId: string}>}}
*/
getSubtree({includeArchived = true, resolveSearch = false} = {}) {
const noteSet = new Set();
const relationships = []; // list of tuples parentNoteId -> childNoteId
function resolveSearchNote(searchNote) {
try {
const searchService = require("../../services/search/services/search");
const becca = searchNote.becca;
const {searchResultNoteIds} = searchService.searchFromNote(searchNote);
for (const resultNoteId of searchResultNoteIds) {
const resultNote = becca.notes[resultNoteId];
if (resultNote) {
addSubtreeNotesInner(resultNote, searchNote);
}
}
}
catch (e) {
log.error(`Could not resolve search note ${searchNote?.noteId}: ${e.message}`);
}
}
function addSubtreeNotesInner(note, parentNote = null) {
// share can be removed after 0.57 since it will be put under hidden
if (note.noteId === 'hidden' || note.noteId === 'share') {
return;
}
if (parentNote) {
// this needs to happen first before noteSet check to include all clone relationships
relationships.push({
parentNoteId: parentNote.noteId,
childNoteId: note.noteId
});
}
if (noteSet.has(note)) {
return;
}
function addSubtreeNotesInner(note) {
if (!includeArchived && note.isArchived) {
return;
}
noteSet.add(note);
for (const childNote of note.children) {
addSubtreeNotesInner(childNote);
if (note.type === 'search') {
if (resolveSearch) {
resolveSearchNote(note);
}
}
else {
for (const childNote of note.children) {
addSubtreeNotesInner(childNote, note);
}
}
}
addSubtreeNotesInner(this);
return Array.from(noteSet);
return {
notes: Array.from(noteSet),
relationships
};
}
/** @returns {String[]} */
getSubtreeNoteIds(includeArchived = true) {
return this.getSubtreeNotes(includeArchived).map(note => note.noteId);
getSubtreeNoteIds({includeArchived = true, resolveSearch = false} = {}) {
return this.getSubtree({includeArchived, resolveSearch})
.notes
.map(note => note.noteId);
}
getDescendantNoteIds() {
@@ -1378,7 +1429,7 @@ module.exports = Note;
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.11</a>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.0</a>
</footer>
<script> prettyPrint(); </script>