import type { HTML5BackendContext, HTML5BackendOptions } from './types.js'
export class OptionsReader {
public ownerDocument: Document | null = null
private globalContext: HTML5BackendContext
private optionsArgs: HTML5BackendOptions | undefined
public constructor(
globalContext: HTML5BackendContext,
options?: HTML5BackendOptions,
) {
this.globalContext = globalContext
this.optionsArgs = options
}
public get window(): Window | undefined {
if (this.globalContext) {
return this.globalContext
} else if (typeof window !== 'undefined') {
return window
}
return undefined
}
public get document(): Document | undefined {
if (this.globalContext?.document) {
return this.globalContext.document
} else if (this.window) {
return this.window.document
} else {
return undefined
}
}
public get rootElement(): Node | undefined {
return this.optionsArgs?.rootElement || this.window
}
}