143 lines
4.7 KiB
Markdown
143 lines
4.7 KiB
Markdown
|
# Module `share`
|
||
|
|
||
|
Ce module permet partager des ressources à destination des autres applications exécutées dans l'environnement Edge.
|
||
|
|
||
|
## Propriétés
|
||
|
|
||
|
### `share.ANY_TYPE`, `share.ANY_NAME`
|
||
|
|
||
|
Les propriétés `share.ANY_TYPE` et `share.ANY_NAME` sont utilisées dans la méthode `share.findResources()` pour récupérer ne pas appliquer de filtre spécifique au type ou au nom des attributs respectivement.
|
||
|
|
||
|
### `share.TYPE_TEXT`, `share.TYPE_NUMBER`, `share.TYPE_PATH`, `share.TYPE_BOOL`
|
||
|
|
||
|
Ces propriétés correspondant aux types d'attributs possibles dans une ressource.
|
||
|
|
||
|
Le type `share.TYPE_PATH` décrit un "chemin" destiné à être transformé en URL par l'application consommatrice de la ressource sous la forme `${APP_URL}${PATH}`. Ce type d'attribut peut être utilisé pour partager des URLs (médias, pages, etc) entre applications.
|
||
|
|
||
|
## Méthodes
|
||
|
|
||
|
### `share.upsertResource(ctx: Context, resourceId: string, ...attributes: Attribute[]): Resource`
|
||
|
|
||
|
Cette méthode permet de créer une ressource ou de la mettre à jour si elle existe déjà. Elle prend en paramètre le contexte d'exécution, l'identifiant de la ressource et une liste d'attributs.
|
||
|
|
||
|
Si la ressource n'existe pas, elle sera créée avec les attributs fournis. Si elle existe, les attributs existants seront mis à jour avec les valeurs fournies.
|
||
|
|
||
|
#### Arguments
|
||
|
|
||
|
- `ctx: Context`: Le contexte d'exécution.
|
||
|
- `resourceId: string`: L'identifiant de la ressource.
|
||
|
- `...attributes: Attribute[]`: Une liste d'attributs. Chaque attribut est représenté par un objet de type `Attribute`.
|
||
|
|
||
|
#### Valeur de retour
|
||
|
|
||
|
La méthode retourne un objet de type `Resource` qui représente la ressource créée ou mise à jour.
|
||
|
|
||
|
#### Usage
|
||
|
|
||
|
```javascript
|
||
|
const resource = share.upsertResource(ctx, "my-resource", { name: "color", type: share.TYPE_TEXT, value: "red" });
|
||
|
console.log(resource);
|
||
|
// Output: { id: "my-resource", origin: "my.app", attributes: [{ name: "color", type: "text", value: "red", createdAt: "2023-04-21T14:30:00Z", updatedAt: "2023-04-21T14:30:00Z" }] }
|
||
|
```
|
||
|
|
||
|
### `share.findResources(ctx: Context, withAttribute?: string, withType?: string): []Resource`
|
||
|
|
||
|
Cette méthode permet de rechercher des ressources en fonction de leurs attributs. Elle prend en paramètre le contexte d'exécution et deux paramètres optionnels qui permettent de filtrer les ressources.
|
||
|
|
||
|
#### Arguments
|
||
|
|
||
|
- `ctx: Context`: Le contexte d'exécution.
|
||
|
- `withAttribute?: string`: (optionnel) Le nom de l'attribut à rechercher (`share.ANY_NAME` par défaut)
|
||
|
- `withType?: string`: (optionnel) Le type de l'attribut à rechercher (`share.ANY_TYPE` par défaut)
|
||
|
|
||
|
#### Valeur de retour
|
||
|
|
||
|
La méthode retourne un tableau d'objets de type `Resource` qui représentent les ressources correspondant aux critères de recherche.
|
||
|
|
||
|
#### Usage
|
||
|
|
||
|
```typescript
|
||
|
const resources = share.findResources(ctx, "color", share.TYPE_TEXT);
|
||
|
console.log(resources);
|
||
|
// Output: [{ id: "my-resource", origin: "my/app", attributes: [{ name: "color", type: "text", value: "red", createdAt: "2023-04-21T14:30:00Z", updatedAt: "2023-04-21T14:30:00Z" }] }]
|
||
|
```
|
||
|
|
||
|
### `share.deleteAttributes(ctx: Context, resourceId: string, ...names: string[]): Resource`
|
||
|
|
||
|
Cette méthode supprime un ou plusieurs attributs de la ressource spécifiée.
|
||
|
|
||
|
#### Arguments
|
||
|
|
||
|
- `ctx: Context`: contexte d'exécution
|
||
|
- `resourceId: string`: identifiant unique de la ressource à modifier
|
||
|
- `...names: string[]`: tableau de noms d'attributs à supprimer
|
||
|
|
||
|
#### Valeur de retour
|
||
|
|
||
|
La méthode retourne un objet de type `Resource` qui représente la ressource modifiée.
|
||
|
|
||
|
#### Usage
|
||
|
|
||
|
```typescript
|
||
|
const resource = share.upsertResource(ctx, "my-resource", { name: "color", type: share.TYPE_TEXT, value: "red" });
|
||
|
console.log(resource);
|
||
|
// Output: { id: "my-resource", origin: "my.app", attributes: [{ name: "color", type: "text", value: "red", createdAt: "2023-04-21T14:30:00Z", updatedAt: "2023-04-21T14:30:00Z" }] }
|
||
|
```
|
||
|
|
||
|
### `share.deleteResource(ctx: Context, resourceId: string)`
|
||
|
|
||
|
Cette méthode supprime la ressource spécifiée.
|
||
|
|
||
|
#### Arguments
|
||
|
|
||
|
- `ctx: Context`: contexte d'exécution
|
||
|
- `resourceId: string`: identifiant unique de la ressource à supprimer
|
||
|
|
||
|
#### Valeur de retour
|
||
|
|
||
|
La méthode ne retourne pas de valeur.
|
||
|
|
||
|
#### Usage
|
||
|
|
||
|
```typescript
|
||
|
const resource = share.deleteResource(ctx, "my-resource");
|
||
|
```
|
||
|
|
||
|
## Objets
|
||
|
|
||
|
### `Context`
|
||
|
|
||
|
Voir la documentation du module [`context`](./context.md)
|
||
|
|
||
|
|
||
|
### `Resource`
|
||
|
|
||
|
```typescript
|
||
|
interface Resource {
|
||
|
id: string
|
||
|
origin: string
|
||
|
attributes: Attribute[]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### `Attribute`
|
||
|
|
||
|
```typescript
|
||
|
interface Attribute {
|
||
|
name: string
|
||
|
type: ValueType
|
||
|
createdAt: string
|
||
|
updatedAt: string
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### `ValueType`
|
||
|
|
||
|
```typescript
|
||
|
enum ValueType {
|
||
|
TYPE_TEXT = "text",
|
||
|
TYPE_PATH = "path",
|
||
|
TYPE_NUMBER = "number",
|
||
|
TYPE_BOOL = "bool"
|
||
|
}
|
||
|
```
|