UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 6.66 kB
{"version":3,"file":"index.js","names":["unavailable"],"sources":["esm/platform/location/index.js"],"sourcesContent":["import { Location as unavailable } from \"./unavailable\";\nimport { validateCallback } from \"../validateCallback\";\nimport { assertIdentifier, assertRegion, assertRegionListener } from \"./validation\";\nlet permission = \"notDetermined\";\nlet observing;\nfunction observe() {\n return observing ??= (async () => {\n if (!navigator.permissions) return;\n try {\n const status = await navigator.permissions.query({ name: \"geolocation\" });\n const update = () => {\n permission = status.state === \"granted\" ? \"whenInUse\" : status.state === \"denied\" ? \"denied\" : \"notDetermined\";\n };\n update();\n status.addEventListener(\"change\", update);\n } catch {\n }\n })();\n}\nfunction position(value) {\n permission = \"whenInUse\";\n const c = value.coords;\n return {\n latitude: c.latitude,\n longitude: c.longitude,\n accuracy: c.accuracy,\n altitude: c.altitude ?? 0,\n altitudeAccuracy: c.altitudeAccuracy ?? -1,\n course: c.heading ?? -1,\n speed: c.speed ?? -1,\n timestamp: value.timestamp\n };\n}\nfunction failure(error) {\n if (error.code === 1) permission = \"denied\";\n return Object.assign(new Error(error.message), {\n code: error.code === 1 ? \"E_LOCATION_PERMISSION\" : \"E_LOCATION_UNAVAILABLE\"\n });\n}\nasync function current() {\n if (typeof window === \"undefined\" || !navigator.geolocation)\n return unavailable.getCurrentPosition();\n await observe();\n return new Promise(\n (resolve, reject) => navigator.geolocation.getCurrentPosition(\n (value) => resolve(position(value)),\n (error) => reject(failure(error)),\n { enableHighAccuracy: true, maximumAge: 3e4, timeout: 1e4 }\n )\n );\n}\nconst Location = Object.freeze({\n getPermissionStatus: () => {\n if (typeof window === \"undefined\" || !navigator.geolocation) return \"denied\";\n void observe();\n return permission;\n },\n requestWhenInUsePermission: async () => {\n if (typeof window === \"undefined\" || !navigator.geolocation) return \"denied\";\n try {\n await current();\n } catch (error) {\n if (error.code !== \"E_LOCATION_PERMISSION\") throw error;\n }\n return permission;\n },\n getCurrentPosition: current,\n watchPosition: (onPosition, onError, options = {}) => {\n if (typeof window === \"undefined\")\n return unavailable.watchPosition(onPosition, onError, options);\n validateCallback(onPosition, \"Location.watchPosition: onPosition must be a function\");\n validateCallback(onError, \"Location.watchPosition: onError must be a function\");\n if (options.background || !navigator.geolocation) {\n onError(\n Object.assign(\n new Error(\"Location.watchPosition: background location is unavailable on web\"),\n { code: \"E_LOCATION_UNAVAILABLE\" }\n )\n );\n return () => {\n };\n }\n void observe();\n let active = true;\n const id = navigator.geolocation.watchPosition(\n (value) => {\n if (active) onPosition(position(value));\n },\n (error) => {\n if (active) onError(failure(error));\n },\n { enableHighAccuracy: true, maximumAge: 3e4, timeout: 1e4 }\n );\n return () => {\n active = false;\n navigator.geolocation.clearWatch(id);\n };\n },\n geocodeAddress: unavailable.geocodeAddress,\n reverseGeocode: unavailable.reverseGeocode,\n requestAlwaysAuthorization: () => Promise.resolve(\"denied\"),\n startMonitoring: (region) => {\n assertRegion(region, \"startMonitoring\");\n return Promise.resolve();\n },\n stopMonitoring: (identifier) => {\n assertIdentifier(identifier, \"stopMonitoring\");\n return Promise.resolve();\n },\n monitoredRegions: () => [],\n requestState: (identifier) => {\n assertIdentifier(identifier, \"requestState\");\n return Promise.resolve(\"unknown\");\n },\n addDidEnterRegionListener: (listener) => {\n assertRegionListener(listener, \"addDidEnterRegionListener\");\n return { remove: () => {\n } };\n },\n addDidExitRegionListener: (listener) => {\n assertRegionListener(listener, \"addDidExitRegionListener\");\n return { remove: () => {\n } };\n }\n});\nexport {\n Location\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}