From cae44a6f0a6649bd8a7c4250a20792bb5c2e5b42 Mon Sep 17 00:00:00 2001 From: Niklas von Hertzen Date: Wed, 29 May 2019 21:11:50 -0700 Subject: [PATCH] fix: typescript options type definition (#1861) --- src/core/cache-storage.ts | 2 +- src/index.ts | 99 +++++++++++---------- src/render/canvas/canvas-renderer.ts | 9 +- src/render/canvas/foreignobject-renderer.ts | 6 +- 4 files changed, 62 insertions(+), 54 deletions(-) diff --git a/src/core/cache-storage.ts b/src/core/cache-storage.ts index 01a38b8..3c6da82 100644 --- a/src/core/cache-storage.ts +++ b/src/core/cache-storage.ts @@ -61,7 +61,7 @@ export class CacheStorage { } } -interface ResourceOptions { +export interface ResourceOptions { imageTimeout: number; useCORS: boolean; allowTaint: boolean; diff --git a/src/index.ts b/src/index.ts index ae14ea6..b033223 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,25 +4,22 @@ import {Parser} from './css/syntax/parser'; import {CloneOptions, DocumentCloner} from './dom/document-cloner'; import {isBodyElement, isHTMLElement, parseTree} from './dom/node-parser'; import {Logger} from './core/logger'; -import {CacheStorage} from './core/cache-storage'; +import {CacheStorage, ResourceOptions} from './core/cache-storage'; import {CanvasRenderer, RenderOptions} from './render/canvas/canvas-renderer'; import {ForeignObjectRenderer} from './render/canvas/foreignobject-renderer'; export type Options = CloneOptions & - RenderOptions & { - allowTaint: boolean; + RenderOptions & + ResourceOptions & { backgroundColor: string; foreignObjectRendering: boolean; - imageTimeout: number; logging: boolean; - proxy?: string; removeContainer?: boolean; - useCORS: boolean; }; const parseColor = (value: string): Color => color.parse(Parser.create(value).parseComponentValue()); -const html2canvas = (element: HTMLElement, options: Options): Promise => { +const html2canvas = (element: HTMLElement, options: Partial = {}): Promise => { return renderElement(element, options); }; @@ -30,7 +27,7 @@ export default html2canvas; CacheStorage.setContext(window); -const renderElement = async (element: HTMLElement, opts: Options): Promise => { +const renderElement = async (element: HTMLElement, opts: Partial): Promise => { const ownerDocument = element.ownerDocument; if (!ownerDocument) { @@ -43,50 +40,43 @@ const renderElement = async (element: HTMLElement, opts: Options): Promise