UNPKG

one

Version:

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

68 lines (67 loc) • 2.02 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var light_sensor_exports = {}; __export(light_sensor_exports, { LightSensor: () => LightSensor }); module.exports = __toCommonJS(light_sensor_exports); var import_validate = require("./validate.cjs"); function lightSensorCtor() { if (typeof window === "undefined") return void 0; const ctor = window.AmbientLightSensor; return typeof ctor === "function" ? ctor : void 0; } function isAvailable() { return lightSensorCtor() !== void 0; } function setUpdateInterval(intervalMs) { (0, import_validate.assertUpdateInterval)(intervalMs); } function addListener(listener) { (0, import_validate.assertLightSensorListener)(listener); const Ctor = lightSensorCtor(); if (!Ctor) return { remove: () => {} }; let sensor; const onReading = () => { if (sensor) listener({ illuminance: sensor.illuminance, timestamp: Date.now() / 1e3 }); }; try { sensor = new Ctor(); sensor.addEventListener("reading", onReading); sensor.start(); } catch { sensor = void 0; return { remove: () => {} }; } return { remove: () => { sensor?.removeEventListener("reading", onReading); try { sensor?.stop(); } catch {} sensor = void 0; } }; } const LightSensor = Object.freeze({ isAvailable, setUpdateInterval, addListener });