UNPKG

network-information-types

Version:

Type definitions for Network Information API

78 lines (52 loc) 2.08 kB
# network-information-types [![npm version](https://badge.fury.io/js/network-information-types.svg)](https://badge.fury.io/js/network-information-types) Type definition for [Network Information API](https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API) ## Caveat This is a temporary solution until TypeScript adds support for this API as built-in types. See https://github.com/Microsoft/TypeScript/issues/27186 . ## Usage - Install Package via npm - Edit your tsconfig.json - Now you get `navigator.connection` with its type! ### Install ```shell $ yarn add -D network-information-types ``` ### tsconfig.json `network-information-types` is a _ambient_ types that modify global `navigator` type, so **it MUST be added in `types`**. Package names in `types` array are resolved with `typeRoots`. By default, `typesRoots` is just `./node_modules/@types`. To resolve `network-information-types` package, add the relative path directly as below. ```json { "compilerOptions": { ... "types": [ "./node_modules/network-information-types" ] }, } ``` ### Use the types Now you can access `navigator.connection` property as `NetworkInformation` object. `navigator.connection` and its properties are all optional because browser support for each is separated. See https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation#Browser_compatibility . ```ts // Example: http://wicg.github.io/netinfo/#example-1 if (navigator.connection) { // Get the connection type. const type: ConnectionType = navigator.connection.type; // Get an upper bound on the downlink speed of the first network hop const max: number = navigator.connection.downlinkMax; const changeHandler = (e: Event) => { // Handle change to connection here. }; // Register for event changes. navigator.connection.onchange = changeHandler; // Alternatively. navigator.connection.addEventListener('change', changeHandler); } ``` ## Author Suguru Inatomi: https://github.com/lacolaco - Twitter: https://twitter.com/laco2net ## License MIT