2020-12-19 17:46:41 +01:00
|
|
|
import { env } from '../env/index';
|
2020-08-18 13:54:53 +02:00
|
|
|
import { resolveInput } from './resolveInput';
|
|
|
|
|
|
|
|
export function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {
|
2020-12-23 17:26:55 +01:00
|
|
|
const { Canvas, CanvasRenderingContext2D } = env.getEnv();
|
2020-08-18 13:54:53 +02:00
|
|
|
|
|
|
|
if (canvasArg instanceof CanvasRenderingContext2D) {
|
2020-12-23 17:26:55 +01:00
|
|
|
return canvasArg;
|
2020-08-18 13:54:53 +02:00
|
|
|
}
|
|
|
|
|
2020-12-23 17:26:55 +01:00
|
|
|
const canvas = resolveInput(canvasArg);
|
2020-08-18 13:54:53 +02:00
|
|
|
|
|
|
|
if (!(canvas instanceof Canvas)) {
|
2020-12-23 17:26:55 +01:00
|
|
|
throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');
|
2020-08-18 13:54:53 +02:00
|
|
|
}
|
|
|
|
|
2020-12-23 17:26:55 +01:00
|
|
|
const ctx = canvas.getContext('2d');
|
2020-08-18 13:54:53 +02:00
|
|
|
if (!ctx) {
|
2020-12-23 17:26:55 +01:00
|
|
|
throw new Error('resolveContext2d - canvas 2d context is null');
|
2020-08-18 13:54:53 +02:00
|
|
|
}
|
|
|
|
|
2020-12-23 17:26:55 +01:00
|
|
|
return ctx;
|
|
|
|
}
|