# Namngivning

## Appar

### `manifest.json`

En apps manifest är en JSON-fil som innehåller metadata för en app.\
[Läs mer om manifest.json](https://developer.sitevision.se/docs/webapps/webapps-2/manifest)

Det här bör `manifest.json` innehålla enligt våra riktlinjer:

* `"id"`: Använd vårt domännamn + camelCase. Ex: `se.soleil.myAppName`.

* `"version"`: Följ [semver](https://semver.org/) när versioner på appar sätts.

* `"name"`:

  * **WebApp**: Detta är det namnet som visas i modulväljaren för redaktörer.\
    Det går sedan [Sitevision 10.1](https://developer.sitevision.se/archives/developer-news/developer-news/2022-01-28-multilingual-webapp-names) ange namn på flera språk om så behövs.
  * **RESTApp**: Namnet ska vara i `kebab-case` eftersom denna konvention används på övriga ställen i Sitevision.

* `"author"`: Ange alltid “Soleil AB” då detta visas i Sitevision och för att undvika personberoende.

* `"description"`: Ange en kort och tydlig redaktionell beskrivning av appen. Det går sedan [Sitevision 10.1](https://developer.sitevision.se/archives/developer-news/developer-news/2022-01-28-multilingual-webapp-names) ange beskrivning på flera språk om så behövs.

* `"helpUrl"`: Länka till vår support, dvs <https://soleil.se/support>, om ingen dedikerad sida för appens dokumentation finns, kan i så fall vara en länk till redaktörsdokumentation eller dylikt.

Exempel**

**WebApp**

**manifest.json**

```json
{
  "id": "se.soleil.newsListing",
  "version": "1.0.0",
  "name": "Nyhetslistning",
  "author": "Soleil AB",
  "description": "Visa upp en nyhetslistning.",
  "helpUrl": "https://soleil.se/support",
  "type": "WebApp",
  "bundled": true
}
```

**RESTApp**

**manifest.json**

```json
{
  "id": "se.soleil.manageProfiles",
  "version": "1.0.0",
  "name": "manage-profiles",
  "author": "Soleil AB",
  "description": "Hantera användarprofiler.",
  "helpUrl": "https://soleil.se/support",
  "type": "RESTApp",
  "bundled": true
}
```

### `package.json`

Det här bör `package.json` innehålla enligt våra riktlinjer:

* `"name"`: Prefixa med typ av app och appens id i `kebab-case`. Ex: `webapp-my-app-name`.
* `"author"`: Ange `"Soleil AB"` för att undvika personberoende.
* `"licence"`: Ange `"UNLICENSED"`, denna licens kan användas om man inte vill ge andra rättighet att använda ett privat eller opublicerat paket.
* `"private"`: Ange `true` så inte appen kan publiceras på npm av misstag.

Exempel**

**WebApp**

**package.json**

```json
{
  "name": "webapp-news-listing",
  "author": "Soleil AB",
  "license": "UNLICENSED",
  "private": true,
  "dependencies": { ... },
  "devDependencies": { ... },
  "scripts": { ... }
}
```

**RESTApp**

**package.json**

```json
{
  "name": "restapp-manage-profiles",
  "author": "Soleil AB",
  "license": "UNLICENSED",
  "private": true,
  "dependencies": { ... },
  "devDependencies": { ... },
  "scripts": { ... }
}
```

## Bundlade skriptmoduler (DEPRECATED)

Gäller skriptmoduler som bundlas med `@soleil/sv-gulp-build`.

* Använd `PascalCase` på modulers mappar och filer.
* Använd `snake_case` på strukturmappar.

```text
modules
 |
 + -- MyScriptModule
 |     |
 |     + MyScriptModule.js
 |     |
 |     + MyScriptModule.vm
 |
 + -- my_folder
       |
       + -- MyScriptModule
             |
             + MyScriptModule.js
             |
             + MyScriptModule.vm
```