diff --git a/__test__/canvas-class.spec.ts b/__test__/canvas-class.spec.ts index 0743f4f2..b3f2942a 100644 --- a/__test__/canvas-class.spec.ts +++ b/__test__/canvas-class.spec.ts @@ -1,11 +1,19 @@ import test from 'ava' -import { createCanvas, Canvas } from '../index' +import { createCanvas, Canvas, SvgExportFlag } from '../index' test('Canvas constructor should be equal to createCanvas', (t) => { t.true(new Canvas(100, 100) instanceof createCanvas(100, 100).constructor) }) +test('CanvasElement instance should be equal to Canvas', (t) => { + t.true(createCanvas(100, 100) instanceof Canvas) +}) + +test('SVGCanvas instance should be equal to Canvas', (t) => { + t.true(createCanvas(100, 100, SvgExportFlag.NoPrettyXML) instanceof Canvas) +}) + test('ctx.canvas should be equal to canvas', (t) => { const canvas = createCanvas(100, 100) const ctx = canvas.getContext('2d') diff --git a/index.js b/index.js index e30622af..3b8719b5 100644 --- a/index.js +++ b/index.js @@ -71,6 +71,10 @@ class Canvas { constructor(width, height, flag) { return createCanvas(width, height, flag) } + + static [Symbol.hasInstance](instance) { + return instance instanceof CanvasElement || instance instanceof SVGCanvas + } } if (!process.env.DISABLE_SYSTEM_FONTS_LOAD) {