Files
securebit-chat/node_modules/html5-qrcode/src/camera/factories.ts

34 lines
861 B
TypeScript
Raw Normal View History

/**
* @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);
}
}