0.0.17 • Published 6 months ago

@webmeshproject/vue v0.0.17

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
6 months ago

webmesh-vue

Vue composables for working with a webmesh daemon.

Installation

npm install @webmeshproject/vue
# or
yarn add @webmeshproject/vue

Typedocs can be found here.

Usage

For a more complete example refer to the webmesh-app repository, which is a Quasar app using this library.

Managing networks

<template>
<div>
  <h1>Networks</h1>
  <ul>
    <li v-for="network in networks" :key="network.id">
      <span>{{ network.id }}</span>
      <button @click="() => removeNetwork(network.id)">Remove</button>
    </li>
  </ul>
  <form @submit.prevent="createNetwork({ id: networkID })">
    <input v-model="networkID" />
    <button type="submit">Create</button>
  </form>
</template>

<script setup>
import { ref } from 'vue';
import { NetworkParameters, useWebmesh } from '@webmeshproject/vue';

const { putNetwork, dropNetwork, networks } = useWebmesh();
const networkID = ref('');

const createNetwork = async (params: NetworkParameters) => {
  try {
    await putNetwork(params);
  } catch (err) {
    console.error(err)
  }
}

const removeNetwork = async (id: string) => {
  try {
    await dropNetwork(id);
  } catch (err) {
    console.error(err)
  }
}

return { networkID, networks, createNetwork, removeNetwork };
</script>

Connecting and disconnecting networks

<template>
    <div>
        <div v-if="network?.connected">
            <h1>Connected to {{ network?.id }}</h1>
            <button @click="disconnectFromNetwork">Disconnect</button>
            <div>
                <h2>Metrics</h2>
                <pre>{{ metrics }}</pre>
            </div>
        </div>
        <div v-else>
            <h1>Not connected to {{ networkID }}</h1>
            <button @click="connectToNetwork">Connect</button>
        </div>
    </div>
</template>

<script setup>
import { ref } from 'vue';
import { Network, useWebmesh } from '@webmeshproject/vue';

const { connect, disconnect, deviceMetrics } = useWebmesh();
const networkID = 'test-network';

const metrics = deviceMetrics(networkID, 3000);
const network = ref<Network | null>(null);

const connectToNetwork = async () => {
    try {
        network.value = await connect({ id: networkID });
    } catch (err) {
        console.error(err);
    }
};

const disconnectFromNetwork = async () => {
    try {
        await disconnect(networkID);
        network.value = null;
    } catch (err) {
        console.error(err);
    }
};

return { metrics, networkID, network, connectToNetwork, disconnectFromNetwork };
</script>
0.0.17

6 months ago

0.0.16

6 months ago

0.0.15

6 months ago

0.0.14

6 months ago

0.0.13

6 months ago

0.0.12

6 months ago

0.0.11

6 months ago

0.0.10

6 months ago

0.0.9

6 months ago

0.0.8

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

6 months ago