{"_id":"@awesome-cordova-library/network-information","_rev":"2-0b81ac765509bf76a8614628f5431ca9","name":"@awesome-cordova-library/network-information","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@awesome-cordova-library/network-information","version":"1.0.0","description":"This plugin provides an implementation of an old version of the Network Information API. It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["cordova","capacitor","ionic","javascript","mobile","network information","network"],"publishConfig":{"access":"public"},"author":{"name":"Jordan AZOULAY","email":"jazoulay@joazco.com","url":"https://github.com/joazco"},"license":"SEE LICENSE IN LICENSE","repository":{"type":"git","url":"git://github.com/joazco/awesome-cordova-library.git"},"bugs":{"url":"https://github.com/joazco/awesome-cordova-library/issues"},"homepage":"https://github.com/joazco/awesome-cordova-library","devDependencies":{"@types/jest":"^27.5.1","@types/react":"~17.0.21","jest":"^28.1.0","prettier":"^2.6.2","ts-jest":"^28.0.3","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.7.2"},"scripts":{"build":"rm -rf lib/ && tsc","build-yalc":"npm run build; yalc publish --push --private","test":"jest --config jestconfig.json","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json","prepublish":"npm run format; npm run lint; npm test; npm run build"},"directories":{"lib":"lib"},"dependencies":{},"gitHead":"43c6a2946bfde6c0839715f4ced529580c4f55e2","_id":"@awesome-cordova-library/network-information@1.0.0","_nodeVersion":"16.18.0","_npmVersion":"8.5.2","dist":{"integrity":"sha512-tmiVpu/nMmzPvHzDWLoVlYj5jOqLR8V9cYZN0/THVc+zoziJXQgEv1h2M7QDfot+W/0DvLIurlrJN0Xr7wylFQ==","shasum":"9243b6262707ea001d64b26f25be4ebb01233008","tarball":"https://registry.npmjs.org/@awesome-cordova-library/network-information/-/network-information-1.0.0.tgz","fileCount":9,"unpackedSize":11972,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFPc1vTZqX1NZVnguta0AH4oy8FBdHXJMWs6LZKdjso+AiBl1iS8VigU9vooQAgTSQV0V8L0j/PlsGssvZl83mYAYg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUojRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqflw/+LbcRgl52B83l50/K8jDpW3XaLy6JfKb6v65d6FfRB5pewCce\r\nUkGaoiD1g1cBP7QEM/gMfz3TPnggQonB0IRJwt2XFYanCeY0sSblkGtlFZHI\r\nBCg1NWnm8jI1RXLMuVBCC8rPzDktN7FCd8xhwapB235QzXLcPxWWg1WAqQ2X\r\nfN+te6+GWFSV7WH1O6dtDk0MTjkEiMz2ssIUmL00GSAQZjYfqTqhLiaYCK3Q\r\n2b1ba6tcYwYZ5CK/T72veiCNvL6Cv8/ZNnhTctaNCklY8l5d/6JlsB4GL4g/\r\n8IaWZHwkhXUBJ6QYSWGe84Md852Ru4mFaiSVdpinM6peCCi8aljOywqMf+nY\r\nsFc53BHxueZk/+cfqfE3+DUMIQrv/PV+azEmwp+itdD8GC2A8Q+JsglN6nxY\r\nvs1qUHwrgrUsZ9dKkvcmMpwecuma3x7eiRbbTlA3A6wn7c5rj/AS7ZwLgZha\r\nkhIvTIY2HcJ5sKDpJqelSoate2Kstwx+3zp8zuKMlIRBT6ZlyPCpNXxPyiQo\r\nMXqzEE0PsB8nzGX/yf/arnJQAnN32kHujW0NGnzcD54Zxkh5o58KOp1CurR8\r\ngoMk/0LpvarAcP/pjrebHIGqu+x1tDPXlW+/wevXkaCUigLgiq501PUEcLTR\r\nZskv+TdPcYLBEn+A0DmXaWRhLJ974Gx0t50=\r\n=NjAu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"joazco","email":"jazoulay@joazco.com"},"maintainers":[{"name":"joazco","email":"jazoulay@joazco.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/network-information_1.0.0_1666353361398_0.9430912180492415"},"_hasShrinkwrap":false},"1.0.1":{"name":"@awesome-cordova-library/network-information","version":"1.0.1","description":"This plugin provides an implementation of an old version of the Network Information API. It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["cordova","capacitor","ionic","javascript","mobile","network information","network"],"publishConfig":{"access":"public"},"author":{"name":"Jordan AZOULAY","email":"jazoulay@joazco.com","url":"https://github.com/joazco"},"license":"SEE LICENSE IN LICENSE","repository":{"type":"git","url":"git://github.com/joazco/awesome-cordova-library.git"},"bugs":{"url":"https://github.com/joazco/awesome-cordova-library/issues"},"homepage":"https://github.com/joazco/awesome-cordova-library","devDependencies":{"@types/jest":"^27.5.1","@types/react":"~17.0.21","jest":"^28.1.0","prettier":"^2.6.2","ts-jest":"^28.0.3","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.7.2"},"scripts":{"build":"rm -rf lib/ && tsc","build-yalc":"npm run build; yalc publish --push --private","test":"jest --config jestconfig.json","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json","prepublish":"npm run format; npm run lint; npm test; npm run build"},"directories":{"lib":"lib"},"dependencies":{},"gitHead":"2a2b9cf007a870056251632315547e6a651d26a0","_id":"@awesome-cordova-library/network-information@1.0.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-J3thfJAtjCpwB3Oy3rMtxzc+bAWSjEVoirrQx8acTUZTFZJvjg9FL5+oBDFxVCdCgkeWzuFaV6j2GUssZ+EhYQ==","shasum":"d4c800335f6873b024baf1e0ffa682fa515a02aa","tarball":"https://registry.npmjs.org/@awesome-cordova-library/network-information/-/network-information-1.0.1.tgz","fileCount":9,"unpackedSize":12381,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNoHx7EX1PbdJjS6J20ZCN/LGj5h4sycTv5Dw3DVpecAiBjLUzG063LrLL6VUFI0DUrVHUkKj6kRVJD5aRzh/UO0w=="}]},"_npmUser":{"name":"joazco","email":"jazoulay@joazco.com"},"maintainers":[{"name":"joazco","email":"jazoulay@joazco.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/network-information_1.0.1_1694498967536_0.34295654172677614"},"_hasShrinkwrap":false},"1.0.2":{"name":"@awesome-cordova-library/network-information","version":"1.0.2","description":"This plugin provides an implementation of an old version of the Network Information API. It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["cordova","capacitor","ionic","javascript","mobile","network information","network"],"publishConfig":{"access":"public"},"author":{"name":"Jordan AZOULAY","email":"jazoulay@joazco.com","url":"https://github.com/joazco"},"license":"SEE LICENSE IN LICENSE","repository":{"type":"git","url":"git://github.com/joazco/awesome-cordova-library.git"},"bugs":{"url":"https://github.com/joazco/awesome-cordova-library/issues"},"homepage":"https://github.com/joazco/awesome-cordova-library","devDependencies":{"@types/jest":"^27.5.1","@types/react":"~17.0.21","jest":"^28.1.0","prettier":"^2.6.2","ts-jest":"^28.0.3","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.7.2"},"scripts":{"build":"rm -rf lib/ && tsc","build-yalc":"npm run build; yalc publish --push --private","test":"jest --config jestconfig.json","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json","prepublish":"npm run format; npm run lint; npm test; npm run build"},"directories":{"lib":"lib"},"dependencies":{},"gitHead":"2a2b9cf007a870056251632315547e6a651d26a0","_id":"@awesome-cordova-library/network-information@1.0.2","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-t9d1Xv14qhJDn9fNCzKy6XGUd5GM1OnaP1tRVgUTjVDZ5aai77mnSzZciZwl+zJUPBAt7qNZP0cL4gZHTqtAuw==","shasum":"6ba7d6e38d83f4eb7fbb5ff0973f1116badc54b6","tarball":"https://registry.npmjs.org/@awesome-cordova-library/network-information/-/network-information-1.0.2.tgz","fileCount":9,"unpackedSize":12370,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1PEUWuUcmJyCPzpnIjw/dy2M8HEaxFp+1IF36Vl8wZwIhAO7G09GT21y/5blZBn8O8zh1ldYMSoF6qUbKqw29kLUM"}]},"_npmUser":{"name":"joazco","email":"jazoulay@joazco.com"},"maintainers":[{"name":"joazco","email":"jazoulay@joazco.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/network-information_1.0.2_1694501292287_0.3567072791936874"},"_hasShrinkwrap":false}},"time":{"created":"2022-10-21T11:56:01.329Z","1.0.0":"2022-10-21T11:56:01.576Z","modified":"2023-09-12T06:48:12.772Z","1.0.1":"2023-09-12T06:09:27.729Z","1.0.2":"2023-09-12T06:48:12.575Z"},"maintainers":[{"name":"joazco","email":"jazoulay@joazco.com"}],"description":"This plugin provides an implementation of an old version of the Network Information API. It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.","homepage":"https://github.com/joazco/awesome-cordova-library","keywords":["cordova","capacitor","ionic","javascript","mobile","network information","network"],"repository":{"type":"git","url":"git://github.com/joazco/awesome-cordova-library.git"},"author":{"name":"Jordan AZOULAY","email":"jazoulay@joazco.com","url":"https://github.com/joazco"},"bugs":{"url":"https://github.com/joazco/awesome-cordova-library/issues"},"license":"SEE LICENSE IN LICENSE","readme":"---\nid: plugin-network-information\ntitle: Network Information\ntags:\n  - cordova\n  - capacitor\n  - ionic\n  - javascript\n  - typescript\n  - plugin\n  - mobile\n  - network information\n---\n\nNetwork Information\n\nThis plugin provides an implementation of an old version of the Network Information API. It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.\n\n[Online documentation](https://awesomecordovalibrary.com)\n\n[Cordova documentation](https://cordova.apache.org/docs/en/11.x/reference/cordova-plugin-network-information/index.html)\n\n## Installation\n\n### Cordova\n\n```sh\ncordova plugin add cordova-plugin-network-information\nnpm install @awesome-cordova-library/network-information\n```\n\n### Capacitor / Ionic\n\n```bash\ncordova plugin add cordova-plugin-network-information\nnpm install @awesome-cordova-library/network-information\nnpx cap sync\n```\n\n## Vanilla\n\n### Declaration\n\n```typescript\nexport declare type ConnectionType = 'unknown' | 'ethernet' | 'wifi' | '2g' | '3g' | '4g' | 'cellular' | 'none';\nexport declare enum Connection {\n  UNKNOWN = 'unknown',\n  ETHERNET = 'ethernet',\n  WIFI = 'wifi',\n  CELL_2G = '2g',\n  CELL_3G = '3g',\n  CELL_4G = '4g',\n  CELL = 'cellular',\n  NONE = 'none',\n}\n\nclass NetworkInformation {\n  /**\n   * This function offers a fast way to determine the device's network connection state, and type of connection.\n   * @returns {ConnectionType}\n   */\n  static getNetworkType(): ConnectionType;\n  /**\n   *\n   * @param callback {() => void}\n   */\n  static onOffline(callback: () => void): void;\n  /**\n   * This event fires when an application goes online, and the device becomes connected to the Internet.\n   * @param callback {(networkType: ConnectionType) => void}\n   */\n  static onOnline(callback: (networkType: ConnectionType) => void): void;\n}\n```\n\n### Usages\n\n```typescript\nimport NetworkInformation from '@awesome-cordova-library/network-information';\n\nconst type = NetworkInformation.getNetworkType();\nNetworkInformation.onOffline(() => {});\nNetworkInformation.onOnline((type) => {});\n```\n\n## React\n\n### Declaration\n\n```typescript\nconst useNetworkInformation: () => {\n  getNetworkType: () => ConnectionType;\n  onOffline: (callback: () => void) => void;\n  onOnline: (callback: (networkType: ConnectionType) => void) => void;\n};\n```\n\n### Usages\n\n```typescript\nimport { useEffect, useState } from 'react';\nimport { ConnectionType } from '@awesome-cordova-library/network-information/';\nimport useNetworkInformation from '@awesome-cordova-library/network-information/lib/react';\n\nfunction App() {\n  const [connectionType, setConnectionType] = useState<ConnectionType>('unknown');\n  const [isOnline, setIsOnline] = useState<boolean>(true);\n  const { getNetworkType, onOffline, onOnline } = useNetworkInformation();\n\n  useEffect(() => {\n    const networkType = getNetworkType();\n    setConnectionType(networkType);\n    setIsOnline(networkType !== 'unknown' && networkType !== 'none');\n    setInterval(() => {\n      setConnectionType(getNetworkType());\n    }, 1000);\n  }, [getNetworkType]);\n\n  useEffect(() => {\n    onOnline((_type) => setIsOnline(true));\n  }, [onOnline]);\n\n  useEffect(() => {\n    onOffline(() => setIsOnline(false));\n  }, [onOffline]);\n\n  return (\n    <div>\n      <p>Connection type: {connectionType}</p>\n      <p>Is online: {String(isOnline)}</p>\n    </div>\n  );\n}\n```\n","readmeFilename":"README.md"}