# JSDoc: Class: BackendScriptApi

# Class: BackendScriptApi

## BackendScriptApi

Source:
  - services/backend_script_api.js, line 21

### Members

#### currentNote

##### Properties:

Name | Type | Description
--- | --- | ---
`note` | Note | where script is currently executing

Source:
  - services/backend_script_api.js, line 25

#### originEntity

##### Properties:

Name | Type | Description
--- | --- | ---
`entity` | Entity | whose event triggered this executions

Source:
  - services/backend_script_api.js, line 27

#### startNote

##### Properties:

Name | Type | Description
--- | --- | ---
`note` | Note | where script started executing

Source:
  - services/backend_script_api.js, line 23

### Methods

#### createNote(parentNoteId, title, contentopt, extraOptionsopt) → {Promise.<{note: Note, branch: Branch}>}

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`parentNoteId` | string |  |  | create new note under this parent
`title` | string |  |  |
`content` | string | <optional> | "" |
`extraOptions` | CreateNoteExtraOptions | <optional> | {} |

Source:
  - services/backend_script_api.js, line 169

##### Returns:

object contains newly created entities note and branch

Type
  Promise.<{note: Note, branch: Branch}>

#### ensureNoteIsAbsentFromParent(noteId, parentNoteId) → {Promise.<void>}

If there's a branch between note and parent note, remove it. Otherwise do nothing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`noteId` | string |
`parentNoteId` | string |

Source:
  - services/backend_script_api.js, line 130

##### Returns:

Type
  Promise.<void>

#### ensureNoteIsPresentInParent(noteId, parentNoteId, prefix) → {Promise.<void>}

If there's no branch between note and parent note, create one. Otherwise do nothing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`noteId` | string |
`parentNoteId` | string |
`prefix` | string | if branch will be create between note and parent note, set this prefix

Source:
  - services/backend_script_api.js, line 120

##### Returns:

Type
  Promise.<void>

#### getAttribute(attributeId) → {Promise.<(Attribute|null)>}

##### Parameters:

Name | Type | Description
--- | --- | ---
`attributeId` | string |

Source:
  - services/backend_script_api.js, line 64

##### Returns:

Type
  Promise.<(Attribute|null)>

#### getBranch(branchId) → {Promise.<(Branch|null)>}

##### Parameters:

Name | Type | Description
--- | --- | ---
`branchId` | string |

Source:
  - services/backend_script_api.js, line 57

##### Returns:

Type
  Promise.<(Branch|null)>

#### getDateNote(date) → {Promise.<(Note|null)>}

Returns day note for given date (YYYY-MM-DD format). If such note doesn't exist, it is created.

##### Parameters:

Name | Type | Description
--- | --- | ---
`date` | string |

Source:
  - services/backend_script_api.js, line 193

##### Returns:

Type
  Promise.<(Note|null)>

#### getEntities(SQL, array) → {Promise.<Array.<Entity>>}

##### Parameters:

Name | Type | Description
--- | --- | ---
`SQL` | string | query
`array` | Array.<?> | of params

Source:
  - services/backend_script_api.js, line 89

##### Returns:

Type
  Promise.<Array.<Entity>>

#### getEntity(SQL, array) → {Promise.<(Entity|null)>}

Retrieves first entity from the SQL's result set.

##### Parameters:

Name | Type | Description
--- | --- | ---
`SQL` | string | query
`array` | Array.<?> | of params

Source:
  - services/backend_script_api.js, line 81

##### Returns:

Type
  Promise.<(Entity|null)>

#### getImage(imageId) → {Promise.<(Image|null)>}

##### Parameters:

Name | Type | Description
--- | --- | ---
`imageId` | string |

Source:
  - services/backend_script_api.js, line 71

##### Returns:

Type
  Promise.<(Image|null)>

#### getInstanceName() → {string|null}

Instance name identifies particular Trilium instance. It can be useful for scripts if some action needs to happen on only one specific instance.

Source:
  - services/backend_script_api.js, line 43

##### Returns:

Type
  string | null

#### getNote(noteId) → {Promise.<(Note|null)>}

##### Parameters:

Name | Type | Description
--- | --- | ---
`noteId` | string |

Source:
  - services/backend_script_api.js, line 50

##### Returns:

Type
  Promise.<(Note|null)>

#### getNotesWithLabel(name, valueopt) → {Promise.<Array.<Note>>}

Retrieves notes with given label name & value

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`name` | string |  | attribute name
`value` | string | <optional> | attribute value

Source:
  - services/backend_script_api.js, line 99

##### Returns:

Type
  Promise.<Array.<Note>>

#### getNoteWithLabel(name, valueopt) → {Promise.<(Note|null)>}

Retrieves first note with given label name & value

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`name` | string |  | attribute name
`value` | string | <optional> | attribute value

Source:
  - services/backend_script_api.js, line 109

##### Returns:

Type
  Promise.<(Note|null)>

#### getRootCalendarNote() → {Promise.<(Note|null)>}

Returns root note of the calendar.

Source:
  - services/backend_script_api.js, line 184

##### Returns:

Type
  Promise.<(Note|null)>

#### log(message)

Log given message to trilium logs.

##### Parameters:

Name | Type | Description
--- | --- | ---
`message` |  |

Source:
  - services/backend_script_api.js, line 176

#### refreshTree() → {Promise.<void>}

Trigger tree refresh in all connected clients. This is required when some tree change happens in the backend.

Source:
  - services/backend_script_api.js, line 234

##### Returns:

Type
  Promise.<void>

#### setNoteToParent(noteId, prefix, parentNoteIdopt)

This method finds note by its noteId and prefix and either sets it to the given parentNoteId or removes the branch (if parentNoteId is not given). This method looks similar to toggleNoteInParent() but differs because we're looking up branch by prefix.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`noteId` | string |  |
`prefix` | string |  |
`parentNoteId` | string | <optional> |

Source:
  - services/backend_script_api.js, line 213

#### sortNotesAlphabetically(parentNoteId)

##### Parameters:

Name | Type | Description
--- | --- | ---
`parentNoteId` | string | this note's child notes will be sorted

Source:
  - services/backend_script_api.js, line 200

##### Returns:

Promise<void>

#### toggleNoteInParent(present, noteId, parentNoteId, prefix) → {Promise.<void>}

Based on the value, either create or remove branch between note and parent note.

##### Parameters:

Name | Type | Description
--- | --- | ---
`present` | boolean | true if we want the branch to exist, false if we want it gone
`noteId` | string |
`parentNoteId` | string |
`prefix` | string | if branch will be create between note and parent note, set this prefix

Source:
  - services/backend_script_api.js, line 142

##### Returns:

Type
  Promise.<void>

#### transactional(func) → {Promise.<?>}

This functions wraps code which is supposed to be running in transaction. If transaction already exists, then we'll use that transaction. This method is required only when script has label manualTransactionHandling, all other scripts are transactional by default.

##### Parameters:

Name | Type | Description
--- | --- | ---
`func` | function |

Source:
  - services/backend_script_api.js, line 226

##### Returns:

result of func callback

Type
  Promise.<?>