GT2/Ejectable/node_modules/min-document/docs.mli

157 lines
3.7 KiB
OCaml
Raw Normal View History

2021-08-16 00:14:59 +00:00
type Comment := {
data: String,
length: Number,
nodeName: "#comment",
nodeType: 8,
nodeValue: String,
ownerDoucment: null | Document,
toString: (this: Comment) => String
}
type DOMText := {
data: String,
type: "DOMTextNode",
length: Number,
nodeType: 3,
toString: (this: DOMText) => String,
replaceChild: (
this: DOMText,
index: Number,
length: Number,
value: String
) => void
}
type DOMNode := DOMText | DOMElement | DocumentFragment
type DOMChild := DOMText | DOMElement
type DOMElement := {
tagName: String,
className: String,
dataset: Object<String, Any>,
childNodes: Array<DOMChild>,
parentNode: null | DOMElement,
style: Object<String, String>,
type: "DOMElement",
nodeType: 1,
ownerDoucment: null | Document,
namespaceURI: null | String,
appendChild: (this: DOMElement, child: DOMChild) => DOMChild,
replaceChild:(
this: DOMElement,
elem: DOMChild,
needle: DOMChild
) => DOMChild,
removeChild: (this: DOMElement, child: DOMChild) => DOMChild,
insertBefore: (
this: DOMElement,
elem: DOMChild,
needle: DOMChild | null | undefined
) => DOMChild,
addEventListener: addEventListener,
dispatchEvent: dispatchEvent,
focus: () => void,
toString: (this: DOMElement) => String,
getElementsByClassName: (
this: DOMElement,
className: String
) => Array<DOMElement>,
getElementsByTagName: (
this: DOMElement,
tagName: String
) => Array<DOMElement>,
}
type DocumentFragment := {
childNodes: Array<DOMChild>,
parentNode: null | DOMElement,
type: "DocumentFragment",
nodeType: 11,
nodeName: "#document-fragment",
ownerDoucment: Document | null,
appendChild: (this: DocumentFragment, child: DOMChild),
replaceChild:
(this: DocumentFragment, elem: DOMChild, needle: DOMChild),
removeChild: (this: DocumentFragment, child: DOMChild),
toString: (this: DocumentFragment) => String
}
type Document := {
body: DOMElement,
childNodes: Array<DOMChild>,
documentElement: DOMElement,
nodeType: 9,
createComment: (this: Document, data: String) => Commment,
createTextNode: (this: Document, value: String) => DOMText,
createElement: (this: Document, tagName: String) => DOMElement,
createElementNS: (
this: Document,
namespace: String | null,
tagName: String
) => DOMElement,
createDocumentFragment: (this: Document) => DocumentFragment,
createEvent: () => Event,
getElementById: (
this: Document,
id: String,
) => null | DOMElement,
getElementsByClassName: (
this: Document,
className: String
) => Array<DOMElement>,
getElementsByTagName: (
this: Document,
tagName: String
) => Array<DOMElement>
}
type Event := {
type: String,
bubbles: Boolean,
cancelable: Boolean,
initEvent: (
this: Event,
type: String,
bubbles: Boolean,
cancelable: Boolean
) => void
}
type addEventListener := (
this: DOMElement,
type: String,
listener: Listener
) => void
type dispatchEvent := (
this: DOMElement,
ev: Event
)
min-document/event/add-event-listener := addEventListener
min-document/event/dispatch-event := dispatchEvent
min-document/document := () => Document
min-document/dom-element :=
(tagName: String, owner?: Document, namespace?: String | null) => DOMElement
min-document/dom-fragment :=
(owner?: Document) => DocumentFragment
min-document/dom-text :=
(value: String, owner?: Document) => DOMText
min-document/event := () => Event
min-document/serialize := (DOMElement) => String
min-document := Document