
Obtenez des crédits gratuits de 100 $ sur DigitalOcean:
Rejoignez notre discorde:
Metawrite est AppWrite SDK avec des composants prêts à aller pour Svelte / SvelteKit
Ce package est maintenu par augmentation.
Remarque: Les versions
xxndésignent quelques modifications mineures à la documentation de package ou aux dactylographiques.Les versions
xnxpeuvent inclure quelques changements de rupture mineurs. Voir les notes de libération.Les versions
nxxpourraient inclure des changements de rupture majeurs. Voir les notes de libération.
Le package fonctionne entièrement et compatible avec AppWrite Server 0.12, Web SDK 6 et Sveltekit. Mais les gens sont actuellement confrontés à des difficultés avec npm install metawrite . Nous avons un modèle sveltekit prêt et configuré qui utilise Metawrite et pourrait également être utilisé comme image Docker comme décrit ici.
Veuillez envisager d'utiliser le modèle, c'est temporaire
Utilisation de NPM:
npm install metawriteUtilisation du fil:
yarn add metawrite<User /><Create /><Preferences /><RecoverPassword /><Update /><Verification /><AuthEmail /><AuthOAuth2 /><CreateAnonymousSession /><CreateJWT /><MagicURL /><Browser /><CreditCard /><Favicon /><Flag /><Image /><QR /><Collection /><Document /><Storage /><FileList /><File /><Function /><Continents /><Countries /><Currencies /><Languages /><Locale /><PhoneCodes />Vous avez besoin d'une instance en cours d'exécution d'AppWrite pour utiliser cette bibliothèque. Allez sur https://appwrite.io/docs/installation pour plus d'instructions.
Exemple PSUedo
Gérer plusieurs niveaux de données relationnelles asynchrones (et leurs états de chargement et de repli) entièrement à partir du balisage SVELTE.
<!-- 1. ? Appwrite App -->
< Appwrite {... config }>
<!-- 2. ? Get the current user if logged in -->
< User let:user >
< h1 >Hello { user . name }!</ h1 >
<!-- 3. Get all the documents from a collection -->
< Collection collectionId = " 5f56a3035a01f " let:documents >
You have { documents . length } documents.
{ #each documents as document }
<!-- 4. Get a document -->
< Document collectionId = "5f56a3035a01f" documentId ={ document . $id } { document }>
Title: { document . title }
Text: { document . text }
... Doit être initialisé et envelopper chaque composant metawrite .
< script >
import { Appwrite } from ' metawrite ' ;
const config = {
endpoint : ' http://localhost/v1 ' ,
project : ' demo ' ,
locale : ' fr '
};
</ script >
< Appwrite {... config }>...</ Appwrite >| Nom | Description |
|---|---|
endpoint | Votre point de terminaison AppWrite. @type - {string} |
project | Votre identifiant de projet. @type - {string} |
locale | Facultatif Les utilitaires des utilisateurs. @type - {string} |
realtime | Définir en option Custom Real Time Point en temps réel. Par défaut, le même que endpoint . @type - {string} |
Informe un nouveau compte.
< script >
import { Create } from ' metawrite ' ;
let email = ' ' ;
let password = ' ' ;
let name = ' ' ;
const success = ( e ) => {
// success callback
// `e` contains the user object
};
const failure = ( e ) => {
// failure callback
};
</ script >
< Create let:actions on:success on:failure >
< input type = "text" bind:value ={ email } />
< input type = "password" bind:value ={ password } />
< input type = "text" bind:value ={ name } />
< button on:click ={ actions . create ( email , password , name )}>Register</ button >
</ Create > Soit: Actions object
Objet avec fonction.
| Nom | Description |
|---|---|
create(email, password, name) | Enregistre un nouvel utilisateur. @type - {string} |
sur: succès
Déclenche sur le registre réussi.
| Nom | Description |
|---|---|
response | Réponse |
sur: échec
Déclenche le registre raté.
| Nom | Description |
|---|---|
response | Réponse |
Connectez-vous par e-mail et mot de passe.
< script >
import { AuthEmail } from ' metawrite ' ;
let email = ' ' ;
let password = ' ' ;
const success = ( e ) => {
// success callback
// `e` contains the user object
};
const failure = ( e ) => {
// failure callback
};
</ script >
< AuthEmail let:authorize on:success on:failure >
< input type = "text" bind:value ={ email } />
< input type = "text" bind:value ={ password } />
< button on:click ={ authorize ( email , password )}>Login</ button >
</ AuthEmail > Soit: Autoriser function
Initie la connexion.
| Nom | Description |
|---|---|
email | E-mail. @type - {string} |
password | Mot de passe. @type - {string} |
sur: succès
Déclenche une connexion réussie.
| Nom | Description |
|---|---|
email | E-mail. @type - {string} |
sur: échec
Déclenche sur l'échec de la connexion.
| Nom | Description |
|---|---|
error | Objet d'erreur. |
Connexion via un fournisseur OAuth2.
< script >
import { AuthOAuth2 } from ' metawrite ' ;
</ script >
< AuthOAuth2
authProvider = " google "
success = " http://localhost:3000?success "
failure = " http://localhost:3000?failure "
let:authorize
>
< button on:click ={ authorize }>Login Google</ button >
</ AuthOAuth2 >| Nom | Description |
|---|---|
authProvider | Fournisseur OAuth2. @type - {string} |
success | URL du succès. @type - {string} |
failure | URL de défaillance. @type - {string} |
Soit: Autoriser function
Demande l'utilisateur actuel pour vérifier si connecté.
< script >
import { User } from ' metawrite ' ;
</ script >
< User let:user >
< h1 >Hello { user . name }!</ h1 >
< div >{ user . email }</ div >
< div slot = " error " >You are not logged in!</ div >
</ User > LET: object utilisateur
Soyez actuellement connecté aux données utilisateur.
Obtenez une liste de tous les documents d'une collection.
< script >
import { Collection } from ' metawrite ' ;
</ script >
< Collection collectionId = " 5f56a3035a01f " let:documents >
You have { documents . length } documents.
</ Collection >| Nom | Description |
|---|---|
collectionId | Collection ID unique. @type - {string} |
| supplémentaire | Identique à ici |
LET: Documents array
Tableau de documents.
Soit: Actions object
Objet avec fonction.
| Nom | Description |
|---|---|
reload() | Collection de repensage. |
create(data, read, write) | Créez un nouveau document dans la collection. read / write est facultative et l'utilisateur actuel par défaut @type - {string[]} . data sont @type - {string} |
Obtenez un document. Si vous passez la propriété document avec des données, il n'y aura pas de données demandées.
< script >
import { Document } from ' metawrite ' ;
</ script >
< Document documentId = " 5f56a3asda01f " let:document >
Title: { document . title }
Text: { document . text }
</ Document >| Nom | Description |
|---|---|
documentId | Document ID unique. @type - {string} |
collectionId | Collection ID unique. @type - {string} |
| ou | |
document | Document passé de <Collection /> |
LET: Documenter object
Un objet JSON avec les données de document.
Soit: Actions object
Objet avec fonction.
| Nom | Description |
|---|---|
update(data) | Mettez à jour le document. data sont @type - {string} |
remove() | Supprime le document. |
reload() | Re-Fetch Document. |
sur: changer
Déclenche sur la mise à jour ou supprimer la connexion.
Les composants du compte vous permettent de gérer un compte d'utilisateur.
<User /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
logout() | Déconnecter la session actuelle. |
logoutAll() | Déconnectez-vous de toutes les sessions. |
logoutFrom(session) | Connectez-vous à partir de ses session spécifiques. session est @type - {string} |
object utilisateurlogout .logout .logoutFrom .logoutFrom .logoutAll Success.logoutAll . < script >
import { User } from ' metawrite ' ;
</ script >
< User let:actions let:user >
< button on:click ={ actions . reload ()}>Reload user data</ button >
< button on:click ={ actions . get ()}>Get logged in user data</ button >
< button on:click ={ actions . logout ()}>Log out from current session</ button >
< button on:click ={ actions . logoutFrom ( ' sessionId ' )}>Log out from specific session</ button >
< button on:click ={ actions . logoutAll ()}>Log out from all sessions</ button >
<!-- If logged in -->
< p >Hi, { user . name }</ p >
</ User ><Create /> Soit: Actions
| Nom | Description |
|---|---|
create(email, password, name) | Crée un utilisateur. email et password sont requis - @type - {string} . name est facultatif - @type - {string} |
create du succès.create d'échec. < script >
import { Create } from ' metawrite ' ;
let name,
email,
password = ' ' ;
const success = ( e ) => {
// success callback
// `e` contains the user object
};
const failure = ( e ) => {
// failure callback
};
</ script >
< Create let:actions on:success on:failure >
< input type = "text" name = "name" placeholder = "name" bind:value ={ name } />
< input type = "text" name = "email" placeholder = "email" bind:value ={ email } />
< input type = "password" name = "password" placeholder = "password" bind:value ={ password } />
< button on:click ={ actions . create ( name , email , password )}>Create Account</ button >
</ Create ><Preferences /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger les préférences. |
update(prefs) | Mettre à jour les préférences. prefs - @type - {object} |
reload le succès.reload .update Success.update . < script >
import { Preferences } from ' metawrite ' ;
let prefs = {
// You can pass only the specific settings you wish to update.
};
</ script >
< Preferences let:actions >
< button
on:click ={() => {
actions . update ( prefs );
actions . reload ();
}}>Update Preferences</ button
>
</ Preferences ><RecoverPassword /> Soit: Actions
| Nom | Description |
|---|---|
recover(email, url) | Récupérer le mot de passe. email et url sont requis et @type - {string} . url est votre page où vous gérerez secret avec une fonction complete . |
complete(user, secret, password, passwordAgain) | Récupération de mot de passe complète. user et secret sont définis automatiquement par metawrite , vous n'avez donc pas à les définir. password et passwordAgain est requis - @type - {string} . |
reload du succès.reload de défaillance.update Success.update . < script >
import { RecoverPassword } from " metawrite " ;
const url = " http://localhost:3000/reset-password " ; // URL that will point to the next step.
let email = ' ' ;
const successRecover = e => {
// success callback
// `e` contains the user object
};
const failureRecover = e => {
// failure callback
}
</ script >
<!-- localhost/forgot-password -->
< RecoverPassword let:actions on:successRecover on:failureRecover >
< input name = "email" type = "text" bind:value ={ email , url } placeholder = " Email " />
< button on:click { actions . recover ( email )}>Recover Password</ button >
</ RecoverPassword >
<!-- Then on localhost/reset-password -->
< script >
import { RecoverPassword } from " metawrite " ;
let password, passwordAgain = ' ' ;
const successComplete = e => {
// success callback
// `e` contains the user object
};
const failureComplete = e => {
// failure callback
}
</ script >
< RecoverPassword let:actions on:successComplete on:failureComplete >
< input type = "password" name = "password" bind:value { password } placeholder = " Password " />
< input type = "password" name = "password" bind:value { passwordAgain } placeholder = " Confirm Password " />
< button on:click { actions . complete ( password , passwordAgain )}>Set New Password</ button >
</ RecoverPassword ><Update /> Soit: Actions
| Nom | Description |
|---|---|
name(name) | Nom de mise à jour. Tous les champs sont nécessaires. @type - {string} |
email(email, password) | Mettre à jour le courrier électronique. Tous les champs sont nécessaires. @type - {string} |
password(password, oldPassword) | Mettre à jour le mot de passe. Tous les champs sont nécessaires. @type - {string} |
name .name .email .email .password .password . < script >
import { Update } from ' metawrite ' ;
let name,
email,
password,
newPassword,
oldPassword = ' ' ;
</ script >
< Update let:actions >
< button on:click ={ actions . name ( name )}>This updates name</ button >
< button on:click ={ actions . email ( email , password )}>This updates email</ button >
< button on:click ={ actions . password ( newPassword , oldPassword )}>This updates password</ button >
</ Update ><Verification />Crée et valide automatiquement la vérification des e-mails utilisateur.
url de la chaîne de type pour l'action create devrait être où votre application est hébergée ou localhost .update de l'action, vous n'avez rien à faire, le processus est automatisé. Soit: Actions
| Nom | Description |
|---|---|
create(url) | Créer une vérification. url est l'URL utilisée pour créer un lien de vérification envoyé à votre boîte de réception. @type - {string} |
update(user, secret) | Vérification complète. user et secret sont définis automatiquement par metawrite . |
create Success.create .complete .complete ENTREPRIS. < script >
import { Verification } from ' metawrite ' ;
const url = window . location . href ;
</ script >
< Verification let:actions >
< button on:click ={ actions . create ( url )} />
< button on:click ={ actions . update ()}>Update email verification status</ button >
</ Verification >Les composants Auth vous permettent d'authentifier un compte utilisateur.
<AuthEmail /> authorize du succès.authorize de l'échec. < script >
import { AuthEmail } from ' metawrite ' ;
let email = ' ' ;
let password = ' ' ;
const success = ( e ) => {
// success callback
// `e` contains the user object
};
const failure = ( e ) => {
// failure callback
};
</ script >
< AuthEmail let:authorize on:success on:failure >
< input type = "text" bind:value ={ email } />
< input type = "text" bind:value ={ password } />
< button on:click ={ authorize ( email , password )}>Login</ button >
</ AuthEmail ><AuthOAuth2 /> | Nom | Description |
|---|---|
authProvider | Fournisseur OAuth2. @type - {string} |
success | URL du succès. @type - {string} |
failure | URL de défaillance. @type - {string} |
| Directives #### |
Soit: Authoriser ()
< script >
import { AuthOAuth2 } from ' metawrite ' ;
</ script >
< AuthOAuth2
authProvider = " google "
success = " http://localhost:3000?success "
failure = " http://localhost:3000?failure "
let:authorize
>
< button on:click ={ authorize }>Login Google</ button >
</ AuthOAuth2 ><CreateAnonymousSession /> Soit: Actions
| Nom | Description |
|---|---|
create() | Crée une session anonyme. |
< script >
import { CreateAnonymousSession } from ' metawrite ' ;
</ script >
< CreateAnonymousSession let:actions >
< button on:click ={ actions . create }>Create Anonymous Session</ button >
</ CreateAnonymousSession ><CreateJWT />Crée un jeton JWT.
Soit: Actions
| Nom | Description |
|---|---|
create() | Crée un jeton JWT. |
< script >
import { CreateJWT } from ' metawrite ' ;
</ script >
< CreateJWT let:actions >
< button on:click ={ actions . create }>Create JWT token</ button >
</ CreateJWT ><MagicURL /> Soit: Actions
| Nom | Description |
|---|---|
create(sessionId, email, url) | Crée une session d'URL magique. un e-mail est requis, l'URL est à pointer string d'étape complète, sessionId n'est pas requise |
complete() | Valide et termine la session URL magique. |
< script >
import { MagicURL } from " metawrite " ;
let email = " "
const url = " http://localhost:3000/page-to-complete "
const successCreate = ( e ) => {
console . log (e)
}
const failureCreate = ( e ) => {
console . log (e)
}
const successComplete = ( e ) => {
console . log (e)
}
const failureComplete = ( e ) => {
console . log (e)
}
</ script >
< MagicURL let:actions on:successCreate on:successComplete on:failureCreate on:failureComplete >
< input type = "email" name = "email" placeholder = "Email" bind:value ={ email } />
< button on:click ={ actions . create ( email , url )}>Send login link</ button >
< button on:click ={ actions . complete ()}>Confirm Login</ button >
</ MagicURL >Les composants d'avatar visent à vous aider à accomplir les tâches quotidiennes liées à l'image de votre application, aux icônes et aux avatars de votre application.
<Browser /> @type - {string}@type - {number}@type - {string}@type - {string} en option - {String} @type - {URL} < script >
import { Browser } from ' metawrite ' ;
</ script >
< Browser code = " firefox " let:src >
< img src ={ String ( src )} alt = " Browser " />
</ Browser ><CreditCard /> @type - {string}@type - {number}@type - {string}@type - {string} en option - {String} @type - {URL} < script >
import { CreditCard } from ' metawrite ' ;
</ script >
< CreditCard code = " amex " let:src >
< img src ={ String ( src )} alt = " card " />
</ CreditCard ><Favicon /> @type - {string} @type - {URL} < script >
import { Favicon } from ' metawrite ' ;
const url = window . location . href ;
</ script >
< Favicon { url } let:src >
< img src ={ String ( src )} alt = " favicon " />
</ Favicon ><Flag /> @type - {string}@type - {number}@type - {string}@type - {string} en option - {String} @type - {URL} < script >
import { Flag } from ' metawrite ' ;
</ script >
< Flag code = " canada " let:src >
< img src ={ String ( src )} alt = " flag " />
</ Flag ><Image /> @type - {string}@type - {number}@type - {number} @type - {URL} < script >
import { Image } from ' metawrite ' ;
let url = ' https://increas.io/ ' ;
let width,
height = 100 ;
</ script >
< Image { url } { width } { height } let:src >
< img src ={ String ( src )} alt = " someImage " />
</ Image ><QR /> @type - {string}@type - {optional}@type - {number}@type - {boolean} @type - {URL} < script >
import { QR } from ' metawrite ' ;
let text = ' https://increas.io/ ' ; // could be any text
let size = 500 ;
let margin = 1 ;
let download = false ;
</ script >
< QR { text } { size } { margin } { download } let:src >
< img src ={ String ( src )} alt = " QR Code " />
</ QR >Les composants de la base de données vous permettent de créer des collections structurées de documents, de requête et de filtrage des listes de documents et de gérer un ensemble avancé d'autorisations d'accès à lecture et à l'écriture.
<Collection /> CollectionID - Obligatoire @type - {string}
Cache - Facultatif , par défaut réglé sur false @type - {boolean}
requête: @type - {object}
requêtes - @Type en option @type - {string[]}
limite - @Type en option @type - {number}
Offset - @type - {number} en option - {numéro}
curseur - @Type en option @type - {string}
cursordirection - @Type facultatif @type - {string}
OrderAttributes - Facultatif @type - {string[]}
OrderTypes - Facultatif @type - {string[]}
Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
create(documentId, data, read, write) | Crée un document. data - @type - {string} .read / write est facultative @type - {string[]} .documentId est facultatif, par défaut génère @type - {string} unique. |
< script >
import { Collection } from " metawrite " ;
</ script >
< Collection collectionId = " 5f56a3035a01f " let:documents >
You have { documents . length } documents.
</ Collection ><Document /> @type - {string}@type - {string} Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
update(data) | Met à jour un document. data - @type - {object} |
remove() | Supprime un document. |
< script >
import { Collection , Document } from ' metawrite ' ;
const collectionId = ' 5f56a3035a01f ' ;
</ script >
< Collection { collectionId } let:documents >
You have { documents . length } documents:
{ #each documents as document }
< Document { collectionId } documentId ={ document . $id } let:document let:actions >
Title: { document . title }
Text: { document . text }
< button on:click ={() => { actions . remove ()}}>Delete</ button >
</ Document >
{ /each }
</ Collection >Pour plus d'informations sur l'utilisation du temps réel dans AppWrite, voir la documentation en temps réel.
En temps réel vous permet d'écouter tous les événements du côté serveur en temps réel à l'aide de la méthode d'abonnement.
Au lieu de demander de nouvelles données via HTTP, l'abonnement recevra de nouvelles données chaque fois qu'elle change, tout client connecté reçoit cette mise à jour en millisecondes via une connexion WebSocket.
Cela vous permet de créer une expérience utilisateur interactive et réactive en fournissant des informations de tous les services d'AppWrite en temps réel.
string | string[] Selt: Upload - La charge utile de l'abonnement contiendra les propriétés suivantes.
Soit: Actions
| Nom | Description |
|---|---|
subscribe() | Abonnant à toutes les mises à jour liées à un ou plusieurs canaux. |
unsubscribe() | Si vous ne souhaitez plus recevoir des mises à jour d'un abonnement, vous pouvez vous désinscrire afin que vos rappels ne soient plus appelés. |
< script >
import { Realtime } from ' metawrite ' ;
</ script >
< Realtime channels = " account " let:actions let:payload >
< h1 >{ payload . timestamp }</ h1 >
< button on:click ={ actions . subscribe ()}>Subscribe to Account channel</ button >
< button on:click ={ actions . unsubscribe ()}>Unsubscribe from Account channel</ button >
</ Realtime >Les composants de stockage vous permettent de gérer vos fichiers de projet. Vous pouvez télécharger, afficher, télécharger et interroger tous vos fichiers de projet.
<Storage /> Soit: Actions
| Nom | Description |
|---|---|
create(bucketId, fileId, file, read, write) | Télécharge un fichier.fileId est requis @type - {string} , "unique()" générera un ID unique aléatoire, mais vous pouvez utiliser personnalisé.file est @type - {File} et requis.read / write est @type - {string[]} et facultatif |
< script lang = " ts " >
import { Storage } from " metawrite "
// Required
let bucketId = " default "
let file : File ;
let fileId = " unique() " ; // this will generate random unique id, but you can use custom
// Optional
let read : string [];
let write : string [];
</ script >
< Storage { file } let:actions >
< button on:click ={ actions . create ( bucketId , fileId , file , read , write )}>Upload File</ button >
</ Storage ><FileList /> @type - {string}@type - {string} en option - {String}@type - {number}@type - {number} en option - {numéro}@type - {string}@type - {string}@type - {string} => Write "ASC" ou "DESC" Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
< script >
import { FileList } from " metawrite "
// Optional
let bucketId = ' default ' ;
let search = ' ' ;
let limit = 10 ;
let offset = 0 ;
let orderType = ' ASC ' ;
</ script >
< FileList { bucketId } { search } { limit } { offset } { orderType } let:actions let:files >
{ #each files as file }
< p >File: { file . name }</ p >
{ /each }
< button on:click ={ actions . reload ()}>Reload</ button >
</ FileList ><File /> @type - {string}@type - {string} Soit: Actions
| Nom | Description |
|---|---|
download() | Fichier de téléchargement. |
view() | Obtenez un fichier pour la vue. |
preview(width, height, quality, background, output) | Obtenez un fichier pour l'aperçu. |
update(read, write) | Met à jour un fichier. |
delete() | Supprime un fichier. |
< script lang = " ts " >
import { File } from ' metawrite ' ;
// Required
let bucketId : string ;
let fileId : string ;
// OPTIONAL
/** @type {number} */ let width;
/** @type {number} */ let height;
/** @type {string} */ let gravity;
/** @type {number} */ let quality;
/** @type {number} */ let borderWidth;
/** @type {string} */ let borderColor;
/** @type {number} */ let borderRadius;
/** @type {number} */ let opacity;
/** @type {number} */ let rotation;
/** @type {string} */ let background;
/** @type {string} */ let output;
/** @type {string[]} */ let read;
/** @type {string[]} */ let write;
</ script >
< File { bucketId } { fileId } let:actions >
< button on:click ={ actions . download ()}>Download File</ button >
< button on:click ={ actions . view ()}>File View</ button >
< button on:click ={ actions . preview ()}>Preview File</ button >
< button on:click ={ actions . update ( read , write )}>Update File</ button >
< button on:click ={ actions . delete ()}>Delete File</ button >
</ File >Le service Functions vous permet de créer un comportement personnalisé qui peut être déclenché par tous les événements du système AppWrite apprise ou par un calendrier prédéfini.
Les fonctions Cloud AppWrite vous permet d'exécuter automatiquement le code backend en réponse aux événements déclenchés par AppWrite ou en le définissant pour être exécuté dans un calendrier prédéfini. Votre code est stocké de manière sécurisée sur votre instance AppWrite et est exécuté dans un environnement isolé.
Vous pouvez en savoir plus en suivant le tutoriel des fonctions cloud d'AppWrite.
<Function /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
create(functionId, data) | Crée l'exécution. functionId est requis , data peuvent être une chaîne vide car facultative . @type {string} |
create(functionId, executionId) | Obtenez l'exécution. Les deux paramètres sont nécessaires. @type {string} |
< script >
import { Function } from ' metawrite ' ;
let functionId = ' someExecution ' ; // required
let newFunctionId = ' ' ;
let data = ' String of custom data to send to function. ' ; // could be empty string because optional
</ script >
< Function { functionId } { data } let:actions let:executions >
{ #each executions as execution }
< p >
Execution ID: { execution . $id }, Function ID: { execution . functionId }, Date Created: { execution . dateCreated }
</ p >
{ /each }
< input type = "text" name = "functionId" placeholder = "Function ID" bind:value ={ newFunctionId } />
< button on:click ={ actions . create ( newFunctionId , data )}>Create Execution</ button >
</ Function >Les composants régionaux vous permettent de personnaliser votre application en fonction de l'emplacement de vos utilisateurs.
<Continents /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
< script >
import { Continents } from ' metawrite ' ;
</ script >
< Continents let:actions let:continents >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >There are { continents . sum } continents:</ p >
{ #each continents . continents as continent }
< p >{ continent . name }, { continent . code }</ p >
{ /each }
</ Continents ><Countries /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
< script >
import { Countries } from ' metawrite ' ;
let eu = true ; // if you want to list only EU countries
</ script >
< Countries let:actions let:countries >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >There are { countries . sum } countries in the world:</ p >
{ #each countries . countries as country }
< p >{ country . name }, { country . code }</ p >
{ /each }
</ Countries >
< Countries { eu } let:actions let:countries >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >There are { countries . sum } countries in EU:</ p >
{ #each countries . countries as country }
< p >{ country . name }, { country . code }</ p >
{ /each }
</ Countries ><Currencies /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
< script >
import { Currencies } from ' metawrite ' ;
</ script >
< Currencies let:actions let:currencies >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >There are { currencies . sum } currencies:</ p >
{ #each currencies . currencies as currency }
< p >{ currency . symbol } - { currency . name } ({ currency . code })</ p >
{ /each }
</ Currencies ><Languages /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
< script >
import { Languages } from ' metawrite ' ;
</ script >
< Languages let:actions let:languages >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >There are { languages . sum } languages:</ p >
{ #each languages . languages as language }
< p >{ language . name }, { language . code }></ p >
{ /each }
</ Languages ><Locale /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
object < script >
import { Locale } from ' metawrite ' ;
</ script >
< Locale let:actions let:code >
< h1 >Active Session</ h1 >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >Location: { code . country }, { code . continentCode }</ p >
< p >IP: { code . ip }</ p >
</ Locale ><PhoneCodes /> Soit: Actions
| Nom | Description |
|---|---|
reload() | Recharger. |
< script >
import { PhoneCodes } from ' metawrite ' ;
</ script >
< PhoneCodes let:actions let:codes >
< button on:click ={ actions . reload ()}>Reload</ button >
< p >There are { codes . sum } phone codes:</ p >
{ #each codes . phones as phone }
< p >{ phone . code } - { phone . countyName }></ p >
{ /each }
</ PhoneCodes >