Files
securebit-chat/node_modules/html5-qrcode/src/camera/factories.ts
lockbitchat 34094956b7 feat(core): update session, security system and QR exchange
- Removed session creation and Lightning payment logic
- Refactored security system:
  * no more restrictions
  * all systems enabled on session creation
- Improved QR code exchange for mobile devices
2025-09-23 20:01:02 -04:00

34 lines
861 B
TypeScript

/**
* @fileoverview
* Set of factory implementations around Camera.
*
* @author mebjas <minhazav@gmail.com>
*/
import { Camera } from "./core";
import { CameraImpl } from "./core-impl";
/** Factory class for creating Camera. */
export class CameraFactory {
/**
* Returns {@link CameraFactory} if {@link navigator.mediaDevices} is
* supported else fails.
*/
public static async failIfNotSupported(): Promise<CameraFactory> {
if (!navigator.mediaDevices) {
throw "navigator.mediaDevices not supported";
}
return new CameraFactory();
}
private constructor() { /* No Op. */ }
/** Creates camera instance based on constraints. */
public async create(videoConstraints: MediaTrackConstraints)
: Promise<Camera> {
return CameraImpl.create(videoConstraints);
}
}