4.7 KiB
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 typeAttribute
.
Valeur de retour
La méthode retourne un objet de type Resource
qui représente la ressource créée ou mise à jour.
Usage
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
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écutionresourceId: 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
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écutionresourceId: string
: identifiant unique de la ressource à supprimer
Valeur de retour
La méthode ne retourne pas de valeur.
Usage
const resource = share.deleteResource(ctx, "my-resource");
Objets
Context
Voir la documentation du module context
Resource
interface Resource {
id: string
origin: string
attributes: Attribute[]
}
Attribute
interface Attribute {
name: string
type: ValueType
createdAt: string
updatedAt: string
}
ValueType
enum ValueType {
TYPE_TEXT = "text",
TYPE_PATH = "path",
TYPE_NUMBER = "number",
TYPE_BOOL = "bool"
}