39 lines
933 B
TypeScript
39 lines
933 B
TypeScript
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
|
|
}
|
|
}
|