Skip to content

vinayakkulkarni/vue-identify-network

Repository files navigation

Vue Identify Network ⚡️

CICodeQLShip.js Triggernpmnpmnpm bundle size (version)npm type definitionsDeepScan gradeSnyk Vulnerabilities for GitHub RepoGitHub contributors

eslintprettiervitevuetypescript

⚠️ Docs are for Vue 3, for Vue 2 docs, click here

Features

  • Identify the Internet Speed ⚡️ your users have.
  • For Vue >= 3.x – npm i vue-identify-network@latest
  • For Vue 2 – npm i vue-identify-network@2

Table of Contents

Demo

Edit vue-identify-network demo

Requirements

Installation

npm install --save vue-identify-network

CDN: UNPKG | jsDelivr (available as window.VueIdentifyNetwork)

Build Setup

# install dependencies $ npm install # package the library $ npm run build

Usage

Global component:

// main.tsimport{VueIdentifyNetwork}from'vue-identify-network';import{createApp}from'vue';constapp=createApp({});app.component('VueIdentifyNetwork',VueIdentifyNetwork);

Or use locally

// component.vue<scriptlang="ts"> import {defineComponent} from 'vue'; import {VueIdentifyNetwork} from 'vue-identify-network'; export default defineComponent({components: { VueIdentifyNetwork,},}); </script>

For Nuxt 3, create a file in plugins/vue-identify-network.ts

import{VueIdentifyNetwork}from'vue-identify-network';exportdefaultdefineNuxtPlugin((nuxtApp)=>{nuxtApp.vueApp.component('VueIdentifyNetwork',VueIdentifyNetwork);});

then import the file in nuxt.config.{j|t}s:

exportdefault{// ...plugins: [// ...{src: '~/plugins/vue-identify-network',mode: 'client'},// ...],// ...};

Example

<template><vue-identify-network><spanslot="unknown"> REEE! Unable to identify your network type. </span><spanslot="slow"><imgsrc="cat.gif" alt="you got slow internet" /></span><spanslot="fast"><videowidth="400" controls><sourcesrc="mov_bbb.mp4" type="video/mp4" /><sourcesrc="mov_bbb.ogg" type="video/ogg" /> Your browser does not support HTML5 video. </video></span></vue-identify-network></template><scriptlang="ts">import{defineComponent,ref}from'vue';importtype{Ref}from'vue';import{VueIdentifyNetwork}from'vue-identify-network';exportdefaultdefineComponent({components: { VueIdentifyNetwork,},setup(){constonline: Ref<boolean> = ref(false); const onNetworkChange = (status: boolean) =>{online.value=status;}; return {online,onNetworkChange}; },});</script>

API

Slots

NameDescription
unknownNamed slot for when the type of connection is unidentifyable
slowNamed slot for when navigator.connection.effectiveType === '2g'
fastNamed slot for when navigator.connection.effectiveType !== '2g'

Props

NameTypeRequired?DefaultDescription
unknown-classStringNonullStyling the div which you want to give if network type is undetected.
slow-classStringNonullStyling the div which you want to give if network type is slow.
fast-classStringNonullStyling the div which you want to give if network type is fast.

Events

NameReturnsDescription
@network-typeStringEmits a string value
@network-speedStringEmits a number value

Contributing

  1. Fork it ( https://github.com/vinayakkulkarni/vue-identify-network/fork )
  2. Create your feature branch (git checkout -b feat/new-feature)
  3. Commit your changes (git commit -Sam 'feat: add feature')
  4. Push to the branch (git push origin feat/new-feature)
  5. Create a new Pull Request

Note:

  1. Please contribute using GitHub Flow
  2. Commits & PRs will be allowed only if the commit messages & PR titles follow the conventional commit standard, read more about it here
  3. PS. Ensure your commits are signed. Read why

Author

vue-identify-network © Vinayak, Released under the MIT License.
Authored and maintained by Vinayak Kulkarni with help from contributors (list).

vinayakkulkarni.dev · GitHub @vinayakkulkarni · Twitter @_vinayak_k

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •