# @soleil-se/app-util

Utility functions for WebApps, RESTApps and Widgets.

**Common** functions are available both on the server and client.

* [Common](/packages/app-util/common)

**Client** functions are only available in the browser.

* [fetchJson](/packages/app-util/client/fetch-json) - Fetch wrapper for calling app routes, rest-api or external resources.
* [urlParams](/packages/app-util/client/url-params) - Helper functions for managing URL query parameters.
* [utils](/packages/app-util/client/utils) - General utility functions.

**Server** functions are only available on the server.

* [appData](/packages/app-util/server/app-data) - Typesafe wrapper for `@sitevision/api/server/appData`.
* [globalAppData](/packages/app-util/server/global-app-data) - Typesafe wrapper for `@sitevision/api/server/globalAppData`.
* [privileged](/packages/app-util/server/privileged) - Helpers for configured privileged actions and permission checks.
* [utils](/packages/app-util/server/utils) - General utility functions.

## Requirements

* Sitevision 9.1.0 or later.
* `@soleil-se/build-app@^1.0.0` or `@sitevision/sitevision-scripts@^3.0.0`.
* WebApps 2 enabled app.

### Manifest

`bundled` needs to be enabled in [WebApp manifest](https://developer.sitevision.se/docs/webapps/webapps-2/manifest) for WebApps 2.

**manifest.json**

```json
{
  "id": "se.soleil.myApp",
  "version": "1.0.0",
  "name": "My app",
  "author": "Soleil AB",
  "description": "",
  "helpUrl": "https://soleil.se/support",
  "type": "WebApp",
  "bundled": true
}
```

## Install

```sh
npm i @soleil-se/app-util
```

## Migration

Migrating from version 4?\
See [MIGRATION](/packages/app-util/migration).

## Rendering

* [Svelte](/packages/app-util/svelte)