mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08:00 
			
		
		
		
	more API docs
This commit is contained in:
		
							parent
							
								
									f5b89432a6
								
							
						
					
					
						commit
						26c06c9826
					
				| @ -93,13 +93,13 @@ class Note extends Entity { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * @returns {Promise<Array.<Attribute>>} attributes belonging to this specific note (excludes inherited attributes) |      * @returns {Promise<Attribute[]>} attributes belonging to this specific note (excludes inherited attributes) | ||||||
|      */ |      */ | ||||||
|     async getOwnedAttributes() { |     async getOwnedAttributes() { | ||||||
|         return await repository.getEntities(`SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ?`, [this.noteId]); |         return await repository.getEntities(`SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ?`, [this.noteId]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<Attribute>>} all note's attributes, including inherited ones */ |     /** @returns {Promise<Attribute[]>} all note's attributes, including inherited ones */ | ||||||
|     async getAttributes() { |     async getAttributes() { | ||||||
|         if (!this.__attributeCache) { |         if (!this.__attributeCache) { | ||||||
|             await this.loadAttributesToCache(); |             await this.loadAttributesToCache(); | ||||||
| @ -108,12 +108,12 @@ class Note extends Entity { | |||||||
|         return this.__attributeCache; |         return this.__attributeCache; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<Attribute>>} all note's labels (attributes with type label), including inherited ones */ |     /** @returns {Promise<Attribute[]>} all note's labels (attributes with type label), including inherited ones */ | ||||||
|     async getLabels() { |     async getLabels() { | ||||||
|         return (await this.getAttributes()).filter(attr => attr.type === LABEL); |         return (await this.getAttributes()).filter(attr => attr.type === LABEL); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<Attribute>>} all note's relations (attributes with type relation), including inherited ones */ |     /** @returns {Promise<Attribute[]>} all note's relations (attributes with type relation), including inherited ones */ | ||||||
|     async getRelations() { |     async getRelations() { | ||||||
|         return (await this.getAttributes()).filter(attr => attr.type === RELATION); |         return (await this.getAttributes()).filter(attr => attr.type === RELATION); | ||||||
|     } |     } | ||||||
| @ -394,7 +394,7 @@ class Note extends Entity { | |||||||
|      * @param {string} type - attribute type (label, relation, etc.) |      * @param {string} type - attribute type (label, relation, etc.) | ||||||
|      * @param {string} name - attribute name |      * @param {string} name - attribute name | ||||||
|      * @param {string} [value] - attribute value |      * @param {string} [value] - attribute value | ||||||
|      * @returns {Promise<Array.<Note>>} |      * @returns {Promise<Note[]>} | ||||||
|      */ |      */ | ||||||
|     async findNotesWithAttribute(type, name, value) { |     async findNotesWithAttribute(type, name, value) { | ||||||
|         const params = [this.noteId, name]; |         const params = [this.noteId, name]; | ||||||
| @ -432,7 +432,7 @@ class Note extends Entity { | |||||||
|      * |      * | ||||||
|      * @param {string} name - label name |      * @param {string} name - label name | ||||||
|      * @param {string} [value] - label value |      * @param {string} [value] - label value | ||||||
|      * @returns {Promise<Array.<Note>>} |      * @returns {Promise<Note[]>} | ||||||
|      */ |      */ | ||||||
|     async findNotesWithLabel(name, value) { return await this.findNotesWithAttribute(LABEL, name, value); } |     async findNotesWithLabel(name, value) { return await this.findNotesWithAttribute(LABEL, name, value); } | ||||||
| 
 | 
 | ||||||
| @ -441,35 +441,35 @@ class Note extends Entity { | |||||||
|      * |      * | ||||||
|      * @param {string} name - relation name |      * @param {string} name - relation name | ||||||
|      * @param {string} [value] - relation value |      * @param {string} [value] - relation value | ||||||
|      * @returns {Promise<Array.<Note>>} |      * @returns {Promise<Note[]>} | ||||||
|      */ |      */ | ||||||
|     async findNotesWithRelation(name, value) { return await this.findNotesWithAttribute(RELATION, name, value); } |     async findNotesWithRelation(name, value) { return await this.findNotesWithAttribute(RELATION, name, value); } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * Returns note revisions of this note. |      * Returns note revisions of this note. | ||||||
|      * |      * | ||||||
|      * @returns {Promise<Array.<NoteRevision>>} |      * @returns {Promise<NoteRevision[]>} | ||||||
|      */ |      */ | ||||||
|     async getRevisions() { |     async getRevisions() { | ||||||
|         return await repository.getEntities("SELECT * FROM note_revisions WHERE noteId = ?", [this.noteId]); |         return await repository.getEntities("SELECT * FROM note_revisions WHERE noteId = ?", [this.noteId]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * @returns {Promise<Array.<NoteImage>>} |      * @returns {Promise<NoteImage[]>} | ||||||
|      */ |      */ | ||||||
|     async getNoteImages() { |     async getNoteImages() { | ||||||
|         return await repository.getEntities("SELECT * FROM note_images WHERE noteId = ? AND isDeleted = 0", [this.noteId]); |         return await repository.getEntities("SELECT * FROM note_images WHERE noteId = ? AND isDeleted = 0", [this.noteId]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * @returns {Promise<Array.<Branch>>} |      * @returns {Promise<Branch[]>} | ||||||
|      */ |      */ | ||||||
|     async getBranches() { |     async getBranches() { | ||||||
|         return await repository.getEntities("SELECT * FROM branches WHERE isDeleted = 0 AND noteId = ?", [this.noteId]); |         return await repository.getEntities("SELECT * FROM branches WHERE isDeleted = 0 AND noteId = ?", [this.noteId]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * @returns {Promise<Array.<Note>>} child notes of this note |      * @returns {Promise<Note[]>} child notes of this note | ||||||
|      */ |      */ | ||||||
|     async getChildNotes() { |     async getChildNotes() { | ||||||
|         return await repository.getEntities(` |         return await repository.getEntities(` | ||||||
| @ -483,7 +483,7 @@ class Note extends Entity { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * @returns {Promise<Array.<Branch>>} child branches of this note |      * @returns {Promise<Branch[]>} child branches of this note | ||||||
|      */ |      */ | ||||||
|     async getChildBranches() { |     async getChildBranches() { | ||||||
|         return await repository.getEntities(` |         return await repository.getEntities(` | ||||||
| @ -495,7 +495,7 @@ class Note extends Entity { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * @returns {Promise<Array.<Note>>} parent notes of this note (note can have multiple parents because of cloning) |      * @returns {Promise<Note[]>} parent notes of this note (note can have multiple parents because of cloning) | ||||||
|      */ |      */ | ||||||
|     async getParentNotes() { |     async getParentNotes() { | ||||||
|         return await repository.getEntities(` |         return await repository.getEntities(` | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ class NoteShort { | |||||||
|         return this.mime === "application/json"; |         return this.mime === "application/json"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<Branch>>} */ |     /** @returns {Promise<Branch[]>} */ | ||||||
|     async getBranches() { |     async getBranches() { | ||||||
|         const branchIds = this.treeCache.parents[this.noteId].map( |         const branchIds = this.treeCache.parents[this.noteId].map( | ||||||
|             parentNoteId => this.treeCache.getBranchIdByChildParent(this.noteId, parentNoteId)); |             parentNoteId => this.treeCache.getBranchIdByChildParent(this.noteId, parentNoteId)); | ||||||
| @ -39,7 +39,7 @@ class NoteShort { | |||||||
|             && this.treeCache.children[this.noteId].length > 0; |             && this.treeCache.children[this.noteId].length > 0; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<Branch>>} */ |     /** @returns {Promise<Branch[]>} */ | ||||||
|     async getChildBranches() { |     async getChildBranches() { | ||||||
|         if (!this.treeCache.children[this.noteId]) { |         if (!this.treeCache.children[this.noteId]) { | ||||||
|             return []; |             return []; | ||||||
| @ -51,22 +51,22 @@ class NoteShort { | |||||||
|         return await this.treeCache.getBranches(branchIds); |         return await this.treeCache.getBranches(branchIds); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Array.<string>} */ |     /** @returns {string[]} */ | ||||||
|     getParentNoteIds() { |     getParentNoteIds() { | ||||||
|         return this.treeCache.parents[this.noteId] || []; |         return this.treeCache.parents[this.noteId] || []; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<NoteShort>>} */ |     /** @returns {Promise<NoteShort[]>} */ | ||||||
|     async getParentNotes() { |     async getParentNotes() { | ||||||
|         return await this.treeCache.getNotes(this.getParentNoteIds()); |         return await this.treeCache.getNotes(this.getParentNoteIds()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Array.<string>} */ |     /** @returns {string[]} */ | ||||||
|     getChildNoteIds() { |     getChildNoteIds() { | ||||||
|         return this.treeCache.children[this.noteId] || []; |         return this.treeCache.children[this.noteId] || []; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** @returns {Promise<Array.<NoteShort>>} */ |     /** @returns {Promise<NoteShort[]>} */ | ||||||
|     async getChildNotes() { |     async getChildNotes() { | ||||||
|         return await this.treeCache.getNotes(this.getChildNoteIds()); |         return await this.treeCache.getNotes(this.getChildNoteIds()); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -6,6 +6,8 @@ import linkService from './link.js'; | |||||||
| import treeCache from './tree_cache.js'; | import treeCache from './tree_cache.js'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  |  * This is the main frontend API interface for scripts. It's published in the local "api" object. | ||||||
|  |  * | ||||||
|  * @constructor |  * @constructor | ||||||
|  * @hideconstructor |  * @hideconstructor | ||||||
|  */ |  */ | ||||||
| @ -40,10 +42,18 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null) { | |||||||
|         await treeService.activateNote(notePath, true); |         await treeService.activateNote(notePath, true); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * @typedef {Object} ToolbarButtonOptions | ||||||
|  |      * @property {string} title | ||||||
|  |      * @property {string} [icon] - name of the jQuery UI icon to be used (e.g. "clock" for "ui-icon-clock" icon) | ||||||
|  |      * @property {function} action - callback handling the click on the button | ||||||
|  |      * @property {string} [shortcut] - keyboard shortcut for the button, e.g. "alt+t" | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * Adds new button the the plugin area. |      * Adds new button the the plugin area. | ||||||
|      * |      * | ||||||
|      * @param {object} options |      * @param {ToolbarButtonOptions} opts | ||||||
|      */ |      */ | ||||||
|     this.addButtonToToolbar = opts => { |     this.addButtonToToolbar = opts => { | ||||||
|         const buttonId = "toolbar-button-" + opts.title.replace(/[^a-zA-Z0-9]/g, "-"); |         const buttonId = "toolbar-button-" + opts.title.replace(/[^a-zA-Z0-9]/g, "-"); | ||||||
| @ -90,7 +100,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null) { | |||||||
|      * Internally this serializes the anonymous function into string and sends it to backend via AJAX. |      * Internally this serializes the anonymous function into string and sends it to backend via AJAX. | ||||||
|      * |      * | ||||||
|      * @param {string} script - script to be executed on the backend |      * @param {string} script - script to be executed on the backend | ||||||
|      * @param {Array.<*>} params - list of parameters to the anonymous function to be send to backend |      * @param {Array.<?>} params - list of parameters to the anonymous function to be send to backend | ||||||
|      * @return {Promise<*>} return value of the executed function on the backend |      * @return {Promise<*>} return value of the executed function on the backend | ||||||
|      */ |      */ | ||||||
|     this.runOnServer = async (script, params = []) => { |     this.runOnServer = async (script, params = []) => { | ||||||
| @ -121,9 +131,9 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null) { | |||||||
|      * This is often used to bulk-fill the cache with notes which would have to be picked one by one |      * This is often used to bulk-fill the cache with notes which would have to be picked one by one | ||||||
|      * otherwise (by e.g. createNoteLink()) |      * otherwise (by e.g. createNoteLink()) | ||||||
|      * |      * | ||||||
|      * @param {Array.<string>} noteIds |      * @param {string[]} noteIds | ||||||
|      * @param {boolean} [silentNotFoundError] - don't report error if the note is not found |      * @param {boolean} [silentNotFoundError] - don't report error if the note is not found | ||||||
|      * @return {Promise<Array.<NoteShort>>} |      * @return {Promise<NoteShort[]>} | ||||||
|      */ |      */ | ||||||
|     this.getNotes = async (noteIds, silentNotFoundError = false) => await treeCache.getNotes(noteIds, silentNotFoundError); |     this.getNotes = async (noteIds, silentNotFoundError = false) => await treeCache.getNotes(noteIds, silentNotFoundError); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -13,6 +13,8 @@ const cloningService = require('./cloning'); | |||||||
| const messagingService = require('./messaging'); | const messagingService = require('./messaging'); | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  |  * This is the main backend API interface for scripts. It's published in the local "api" object. | ||||||
|  |  * | ||||||
|  * @constructor |  * @constructor | ||||||
|  * @hideconstructor |  * @hideconstructor | ||||||
|  */ |  */ | ||||||
| @ -73,7 +75,7 @@ function BackendScriptApi(startNote, currentNote, originEntity) { | |||||||
|      * |      * | ||||||
|      * @method |      * @method | ||||||
|      * @param {string} SQL query |      * @param {string} SQL query | ||||||
|      * @param {Array.<*>} array of params |      * @param {Array.<?>} array of params | ||||||
|      * @returns {Promise<Entity|null>} |      * @returns {Promise<Entity|null>} | ||||||
|      */ |      */ | ||||||
|     this.getEntity = repository.getEntity; |     this.getEntity = repository.getEntity; | ||||||
| @ -81,8 +83,8 @@ function BackendScriptApi(startNote, currentNote, originEntity) { | |||||||
|     /** |     /** | ||||||
|      * @method |      * @method | ||||||
|      * @param {string} SQL query |      * @param {string} SQL query | ||||||
|      * @param {Array.<*>} array of params |      * @param {Array.<?>} array of params | ||||||
|      * @returns {Promise<Array.<Entity>>} |      * @returns {Promise<Entity[]>} | ||||||
|      */ |      */ | ||||||
|     this.getEntities = repository.getEntities; |     this.getEntities = repository.getEntities; | ||||||
| 
 | 
 | ||||||
| @ -92,7 +94,7 @@ function BackendScriptApi(startNote, currentNote, originEntity) { | |||||||
|      * @method |      * @method | ||||||
|      * @param {string} name - attribute name |      * @param {string} name - attribute name | ||||||
|      * @param {string} [value] - attribute value |      * @param {string} [value] - attribute value | ||||||
|      * @returns {Promise<Array.<Note>>} |      * @returns {Promise<Note[]>} | ||||||
|      */ |      */ | ||||||
|     this.getNotesWithLabel = attributeService.getNotesWithLabel; |     this.getNotesWithLabel = attributeService.getNotesWithLabel; | ||||||
| 
 | 
 | ||||||
| @ -139,14 +141,30 @@ function BackendScriptApi(startNote, currentNote, originEntity) { | |||||||
|      */ |      */ | ||||||
|     this.toggleNoteInParent = cloningService.toggleNoteInParent; |     this.toggleNoteInParent = cloningService.toggleNoteInParent; | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * @typedef {object} CreateNoteAttribute | ||||||
|  |      * @property {string} type - attribute type - label, relation etc. | ||||||
|  |      * @property {string} name - attribute name | ||||||
|  |      * @property {string} [value] - attribute value | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * @typedef {object} CreateNoteExtraOptions | ||||||
|  |      * @property {boolean} [json=false] - should the note be JSON | ||||||
|  |      * @property {boolean} [isProtected=false] - should the note be protected | ||||||
|  |      * @property {string} [type='text'] - note type | ||||||
|  |      * @property {string} [mime='text/html'] - MIME type of the note | ||||||
|  |      * @property {CreateNoteAttribute[]} [attributes=[]] - attributes to be created for this note | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * @method |      * @method | ||||||
|      * |      * | ||||||
|      * @param {string} parentNoteId - create new note under this parent |      * @param {string} parentNoteId - create new note under this parent | ||||||
|      * @param {string} title |      * @param {string} title | ||||||
|      * @param {string} [content] |      * @param {string} [content=""] | ||||||
|      * @param {object} [extraOptions] |      * @param {CreateNoteExtraOptions} [extraOptions={}] | ||||||
|      * @returns {Promise<Object>} object contains attributes "note" and "branch" which contain newly created entities |      * @returns {Promise<{note: Note, branch: Branch}>} object contains newly created entities note and branch | ||||||
|      */ |      */ | ||||||
|     this.createNote = noteService.createNote; |     this.createNote = noteService.createNote; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 azivner
						azivner