Constructor
new Note(row)
Parameters:
| Name | Type | Description | 
|---|---|---|
row | 
            
            object containing database row from "notes" table | 
Properties:
| Name | Type | Description | 
|---|---|---|
noteId | 
            
            string | primary key | 
type | 
            
            string | one of "text", "code", "file" or "render" | 
mime | 
            
            string | MIME type, e.g. "text/html" | 
title | 
            
            string | note title | 
isProtected | 
            
            boolean | true if note is protected | 
isDeleted | 
            
            boolean | true if note is deleted | 
dateCreated | 
            
            string | local date time (with offset) | 
dateModified | 
            
            string | local date time (with offset) | 
utcDateCreated | 
            
            string | |
utcDateModified | 
            
            string | 
- Source:
 
Extends
Methods
(async) getAttribute(type, name) → {Promise.<Attribute>}
Parameters:
| Name | Type | Description | 
|---|---|---|
type | 
            
            string | attribute type (label, relation, etc.) | 
name | 
            
            string | attribute name | 
- Source:
 
Returns:
    attribute of given type and name. If there's more such attributes, first is  returned. Returns null if there's no such attribute belonging to this note.
- Type
 - Promise.<Attribute>
 
(async) getAttributes(nameopt) → {Promise.<Array.<Attribute>>}
Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | 
                
                    <optional> | 
            
            
            attribute name to filter | 
- Source:
 
Returns:
    all note's attributes, including inherited ones
- Type
 - Promise.<Array.<Attribute>>
 
(async) getAttributeValue(type, name) → {Promise.<string>}
Parameters:
| Name | Type | Description | 
|---|---|---|
type | 
            
            string | attribute type (label, relation, etc.) | 
name | 
            
            string | attribute name | 
- Source:
 
Returns:
    attribute value of given type and name or null if no such attribute exists.
- Type
 - Promise.<string>
 
(async) getBranches() → {Promise.<Array.<Branch>>}
- Source:
 
Returns:
- Type
 - Promise.<Array.<Branch>>
 
(async) getChildBranches() → {Promise.<Array.<Branch>>}
- Source:
 
Returns:
    child branches of this note
- Type
 - Promise.<Array.<Branch>>
 
(async) getChildNotes() → {Promise.<Array.<Note>>}
- Source:
 
Returns:
    child notes of this note
- Type
 - Promise.<Array.<Note>>
 
(async) getContent() → {Promise.<*>}
- Source:
 
Returns:
- Type
 - Promise.<*>
 
(async) getDescendantNoteIds() → {Promise.<Array.<string>>}
- Source:
 
Returns:
    return list of all descendant noteIds of this note. Returning just noteIds because number of notes can be huge. Includes also this note's noteId
- Type
 - Promise.<Array.<string>>
 
(async) getDescendantNotesWithAttribute(type, name, valueopt) → {Promise.<Array.<Note>>}
    Finds descendant notes with given attribute name and value. Only own attributes are considered, not inherited ones
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
type | 
            
            string | attribute type (label, relation, etc.) | |
name | 
            
            string | attribute name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            attribute value | 
- Source:
 
Returns:
- Type
 - Promise.<Array.<Note>>
 
(async) getDescendantNotesWithLabel(name, valueopt) → {Promise.<Array.<Note>>}
    Finds descendant notes with given label name and value. Only own labels are considered, not inherited ones
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | label name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            label value | 
- Source:
 
Returns:
- Type
 - Promise.<Array.<Note>>
 
(async) getDescendantNotesWithRelation(name, valueopt) → {Promise.<Array.<Note>>}
    Finds descendant notes with given relation name and value. Only own relations are considered, not inherited ones
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | relation name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            relation value | 
- Source:
 
Returns:
- Type
 - Promise.<Array.<Note>>
 
(async) getJsonContent() → {Promise.<*>}
- Source:
 
Returns:
- Type
 - Promise.<*>
 
(async) getLabel(name) → {Promise.<Attribute>}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | label name | 
- Source:
 
Returns:
    label if it exists, null otherwise
- Type
 - Promise.<Attribute>
 
(async) getLabelDefinitions(nameopt) → {Promise.<Array.<Attribute>>}
Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | 
                
                    <optional> | 
            
            
            label name to filter | 
- Source:
 
Returns:
    all note's label definitions, including inherited ones
- Type
 - Promise.<Array.<Attribute>>
 
(async) getLabels(nameopt) → {Promise.<Array.<Attribute>>}
Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | 
                
                    <optional> | 
            
            
            label name to filter | 
- Source:
 
Returns:
    all note's labels (attributes with type label), including inherited ones
- Type
 - Promise.<Array.<Attribute>>
 
(async) getLabelValue(name) → {Promise.<string>}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | label name | 
- Source:
 
Returns:
    label value if label exists, null otherwise
- Type
 - Promise.<string>
 
(async) getLinks() → {Promise.<Array.<Attribute>>}
    Get list of links coming out of this note.
- Deprecated:
 - - not intended for general use
 
- Source:
 
Returns:
- Type
 - Promise.<Array.<Attribute>>
 
(async) getOwnedAttributes() → {Promise.<Array.<Attribute>>}
- Source:
 
Returns:
    attributes belonging to this specific note (excludes inherited attributes)
- Type
 - Promise.<Array.<Attribute>>
 
(async) getParentNotes() → {Promise.<Array.<Note>>}
- Source:
 
Returns:
    parent notes of this note (note can have multiple parents because of cloning)
- Type
 - Promise.<Array.<Note>>
 
(async) getRelation(name) → {Promise.<Attribute>}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | relation name | 
- Source:
 
Returns:
    relation if it exists, null otherwise
- Type
 - Promise.<Attribute>
 
(async) getRelationDefinitions(nameopt) → {Promise.<Array.<Attribute>>}
Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | 
                
                    <optional> | 
            
            
            relation name to filter | 
- Source:
 
Returns:
    all note's relation definitions including inherited ones
- Type
 - Promise.<Array.<Attribute>>
 
(async) getRelations(nameopt) → {Promise.<Array.<Attribute>>}
Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | 
                
                    <optional> | 
            
            
            relation name to filter | 
- Source:
 
Returns:
    all note's relations (attributes with type relation), including inherited ones
- Type
 - Promise.<Array.<Attribute>>
 
(async) getRelationTarget(name) → {Promise.<Note>|null}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | 
- Source:
 
Returns:
    target note of the relation or null (if target is empty or note was not found)
- Type
 - Promise.<Note> | null
 
(async) getRelationTargets(nameopt) → {Promise.<Array.<Note>>}
Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | 
                
                    <optional> | 
            
            
            relation name to filter | 
- Source:
 
Returns:
- Type
 - Promise.<Array.<Note>>
 
(async) getRelationValue(name) → {Promise.<string>}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | relation name | 
- Source:
 
Returns:
    relation value if relation exists, null otherwise
- Type
 - Promise.<string>
 
(async) getRevisions() → {Promise.<Array.<NoteRevision>>}
    Returns note revisions of this note.
- Source:
 
Returns:
- Type
 - Promise.<Array.<NoteRevision>>
 
getScriptEnv() → {string}
- Source:
 
Returns:
    JS script environment - either "frontend" or "backend"
- Type
 - string
 
(async) getTargetRelations() → {Promise.<Array.<Attribute>>}
- Source:
 
Returns:
    relations targetting this specific note
- Type
 - Promise.<Array.<Attribute>>
 
(async) hasAttribute(type, name) → {Promise.<boolean>}
Parameters:
| Name | Type | Description | 
|---|---|---|
type | 
            
            string | attribute type (label, relation, etc.) | 
name | 
            
            string | attribute name | 
- Source:
 
Returns:
    true if note has an attribute with given type and name (including inherited)
- Type
 - Promise.<boolean>
 
(async) hasChildren() → {boolean}
- Source:
 
Returns:
    - true if note has children
- Type
 - boolean
 
(async) hasLabel(name) → {Promise.<boolean>}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | label name | 
- Source:
 
Returns:
    true if label exists (including inherited)
- Type
 - Promise.<boolean>
 
(async) hasRelation(name) → {Promise.<boolean>}
Parameters:
| Name | Type | Description | 
|---|---|---|
name | 
            
            string | relation name | 
- Source:
 
Returns:
    true if relation exists (including inherited)
- Type
 - Promise.<boolean>
 
invalidateAttributeCache()
    Clear note's attributes cache to force fresh reload for next attribute request.
Cache is note instance scoped.
- Source:
 
isHtml() → {boolean}
- Source:
 
Returns:
    true if this note is HTML
- Type
 - boolean
 
isJavaScript() → {boolean}
- Source:
 
Returns:
    true if this note is JavaScript (code or attachment)
- Type
 - boolean
 
isJson() → {boolean}
- Source:
 
Returns:
    true if this note is of application/json content type
- Type
 - boolean
 
isRoot() → {boolean}
- Source:
 
Returns:
    true if this note is the root of the note tree. Root note has "root" noteId
- Type
 - boolean
 
isStringNote() → {boolean}
- Source:
 
Returns:
    true if the note has string content (not binary)
- Type
 - boolean
 
(async) loadAttributesToCache() → {Promise.<void>}
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) removeAttribute(type, name, valueopt) → {Promise.<void>}
    Removes given attribute name-value pair if it exists.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
type | 
            
            string | attribute type (label, relation, etc.) | |
name | 
            
            string | attribute name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            attribute value (optional) | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) removeLabel(name, valueopt) → {Promise.<void>}
    Remove label name-value pair, if it exists.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | label name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            label value | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) removeRelation(name, valueopt) → {Promise.<void>}
    Remove relation name-value pair, if it exists.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | relation name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            relation value (noteId) | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) setAttribute(type, name, valueopt) → {Promise.<void>}
    Creates given attribute name-value pair if it doesn't exist.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
type | 
            
            string | attribute type (label, relation, etc.) | |
name | 
            
            string | attribute name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            attribute value (optional) | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) setContent() → {Promise}
- Source:
 
Returns:
- Type
 - Promise
 
(async) setJsonContent() → {Promise}
- Source:
 
Returns:
- Type
 - Promise
 
(async) setLabel(name, valueopt) → {Promise.<void>}
    Create label name-value pair if it doesn't exist yet.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | label name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            label value | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) setRelation(name, valueopt) → {Promise.<void>}
    Create relation name-value pair if it doesn't exist yet.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
name | 
            
            string | relation name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            relation value (noteId) | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) toggleAttribute(type, enabled, name, valueopt) → {Promise.<void>}
    Based on enabled, attribute is either set or removed.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
type | 
            
            string | attribute type ('relation', 'label' etc.) | |
enabled | 
            
            boolean | toggle On or Off | |
name | 
            
            string | attribute name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            attribute value (optional) | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) toggleLabel(enabled, name, valueopt) → {Promise.<void>}
    Based on enabled, label is either set or removed.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
enabled | 
            
            boolean | toggle On or Off | |
name | 
            
            string | label name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            label value (optional) | 
- Source:
 
Returns:
- Type
 - Promise.<void>
 
(async) toggleRelation(enabled, name, valueopt) → {Promise.<void>}
    Based on enabled, relation is either set or removed.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
enabled | 
            
            boolean | toggle On or Off | |
name | 
            
            string | relation name | |
value | 
            
            string | 
                
                    <optional> | 
            
            
            relation value (noteId) | 
- Source:
 
Returns:
- Type
 - Promise.<void>