# JavaScript

A JavaScript package to develop custom functionality for AppMachine applications. This enables you to create your own UI by retrieving data, changing data, and controlling the app.

## Functions[​](https://docs.appmachine.com/libraries/javascript/sdk#functions) <a href="#functions" id="functions"></a>

To be able to manage the app with your custom JavaScript you use the `@myjsblock/sdk` package. This package exposes asynchronous functions to call from your application. The functions provide a simplified API to communicate with the application shell.

All the functions of `@myjsblock/sdk` are categorized in the following categories:

* [Core](#core)
* [Data](#data)
* [Navigation](#navigation)
* [Notification](#notification)
* [Media](#media)
* [User](#user)

#### Core[​](https://docs.appmachine.com/libraries/javascript/sdk#core) <a href="#core" id="core"></a>

Core functions are the basic interactive functions like `showLoader` and `hideLoader`, and also offers functions to request and set data on "block level".

See all [Core functions](/developers/javascript/sdk/core.md)

#### Data[​](https://docs.appmachine.com/libraries/javascript/sdk#data) <a href="#data" id="data"></a>

Data includes all functions for retrieving data from block data context. This does not include functions to change data.

See all [Data functions](/developers/javascript/sdk/js-data.md)

#### Navigation[​](https://docs.appmachine.com/libraries/javascript/sdk#navigation) <a href="#navigation" id="navigation"></a>

Navigation includes functions to navigate through the app. For example navigate to another block or go back.

See all [Navigation functions](/developers/javascript/sdk/navigation.md)

#### Notification[​](https://docs.appmachine.com/libraries/javascript/sdk#notification) <a href="#notification" id="notification"></a>

Notification includes functions to create native interactive modals, dialogs and alerts to the user.

See all [Notification functions](/developers/javascript/sdk/notification.md)

#### Media[​](https://docs.appmachine.com/libraries/javascript/sdk#media) <a href="#media" id="media"></a>

Media includes functions to access the device's media, like picking images and taking pictures with the device's camera.

See all [Media functions](/developers/javascript/sdk/media.md)

#### User[​](https://docs.appmachine.com/libraries/javascript/sdk#user) <a href="#user" id="user"></a>

User includes functions to access user information, like whether someone is authenticated or what the users data is.

See all [User functions](/developers/javascript/sdk/user.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appmachine.com/developers/javascript.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
