Skip to content

vinayakkulkarni/vue-identify-network

Repository files navigation

vue-identify-network ⚡️

GitHub Workflow StatusGitHub Workflow StatusGitHub release (latest SemVer)npmnpmnpm bundle size (version)npm type definitionsDeepScan gradeSnyk Vulnerabilities for GitHub RepoLGTM AlertsLGTM GradeGitHub contributors

built using janakeslintprettierrollupvuetypescript

Features

  • Identify the Internet Speed ⚡️ your users have.
  • Built from scratch usign Vue 2 & Composition API with TypeScript
  • For Vue 2.x version – npm i vue-identify-network@2
  • For Vue 3.x version – npm i vue-identify-network@3

Table of Contents

Demo

Edit vue-identify-network-demo

Requirements

Installation

npm install --save vue-identify-network npm install --save-dev @vue/composition-api

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

Build Setup

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

Usage

Globally

As a component

Vue.component('VueIdentifyNetwork',require('vue-identify-network'));

As a plugin

importVuefrom'vue';importVueIdentifyNetworkfrom'vue-identify-network';Vue.use(VueIdentifyNetwork);

Locally

import{VueIdentifyNetwork}from'vue-identify-network';

Example

Locally imported as a component
<vue-identify-network@network-type="handleNetworkIdentified" @network-speed="handleNetworkSpeed" ><template#unknown> REEE! Unable to identify your network type. </template><template#slow><imgsrc="cat.gif" alt="you got slow internet" /></template><template#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></template></vue-identify-network>
import{VueIdentifyNetwork}from'vue-identify-network';Vue.component('example-component',{components: { VueIdentifyNetwork },setup(){functionhandleNetworkIdentified(type: string){console.log('connection type: ',type);}functionhandleNetworkSpeed(speed: number){console.log('downlink: ',speed);}}});

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

Built with

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

  •  
  •  
  •  
  •