import _WidgetBase = require("dijit/_WidgetBase"); export interface BuildContext { getDomElement(): HTMLElement; } export function isNode(el: any): el is HTMLElement { return el && el.nodeName && el.nodeType; } export function isWidget(v: any): v is _WidgetBase { return v && "domNode" in v; } export function isBuildContext(v: any): v is BuildContext { return typeof v === "object" && typeof v.getDomElement === "function"; } export function isPlainObject(v: object) { if (typeof v !== "object") return false; const vp = Object.getPrototypeOf(v); return !vp || vp === Object.prototype; } export type _WidgetBaseConstructor = dijit._WidgetBaseConstructor<_WidgetBase>; export function isWidgetConstructor(v: any): v is _WidgetBaseConstructor { return typeof v === "function" && v.prototype && "domNode" in v.prototype; }