Data.Options
Overview of the Problem
This module provides a way of dealing with the JS idiom of options objects in PureScript, by giving you the tools to provide a reasonably comfortable typed layer on top of JavaScript APIs which make use of this idiom.
Many JavaScript APIs include functions which take an object argument,
where the object's properties come from a fixed set of optional
configuration values. For example, the createWriteStream
function from
the Node.js fs
module may contain properties such as:
flags
, which should be aString
, such as"w"
,"rw"
, or"r+"
,defaultEncoding
, which should be aString
representing an encoding, such as"utf8"
,
and so on.
Why PureScript Records Don't Work
PureScript's record types can be a little awkward for this, since it is
usually the case that any subset of these properties can be specified;
however, a value of type { flags :: String, defaultEncoding :: String, [...] }
must include every property listed, even if you only want to specify
one or two properties.
Using this Library
This library provides a better solution for this problem. Using this
module, you could wrap fs.createWriteStream
as follows:
First, create a phantom type used for the options object:
data CreateWriteStreamOptions
Then, create Option
values for each of the options:
flags :: Option CreateWriteStreamOptions String
flags = opt "flags"
defaultEncoding :: Option CreateWriteStreamOptions String
defaultEncoding = opt "defaultEncoding"
-- and so on
Import the function you're wrapping using the FFI, using the Foreign
type for the options object:
-- don't export this!
foreign import createWriteStreamImpl :: FilePath -> Foreign -> Effect Unit
Finally, in the function you are going to export, take an Options
value
for the options argument, and use the options
function provided by this
library to convert it into a Foreign
value, which will then have a
suitable representation for passing to the JavaScript API.
createWriteStream :: forall eff. FilePath -> Options CreateWriteStreamOptions -> Effect Unit
createWriteStream path opts = createWriteStreamImpl path (options opts)
Then, users of your API can create Options
values using the :=
operator to assign values for the options they want to configure, and the
Monoid Options
instance to combine them. For example, as a user of this
API, you might write:
FS.createWriteStream "file.txt" $
defaultEncoding := "utf8" <>
flags := "rw"
Increasing Type Safety
You can also use more specific types for more type safety. For example,
it would be safer to use the existing FileFlags
and Encoding
types
already provided by the node-fs
library. However, we cannot use them
directly because they will have the wrong runtime representation. This is
where the Contravariant
instance for Option
comes in; it can be used
to transform an option's value to give it a suitable runtime
representation based on what the JS API is expecting. For example:
flags :: Option CreateWriteStreamOptions FileFlags
flags = cmap fileFlagsToNode (opt "flags")
Note that fileFlagsToNode
takes a FileFlags
and returns a String
suitable for passing to a Node.js API.
#Options
#options
#assoc
#(:=)
Operator alias for Data.Options.assoc (right-associative / precedence 6)
An infix version of assoc
.
#optional
#opt
#tag
#defaultToOptions
defaultToOptions :: forall opt value. String -> value -> Options opt
The default method for turning a string property key into an
Option
. This function simply calls unsafeToForeign
on the value. If
you need some other behaviour, you can write your own function to replace
this one, and construct an Option
yourself.
Packages
abides
- Test.Abides.Control.Alt
- Test.Abides.Control.Alternative
- Test.Abides.Control.Applicative
- Test.Abides.Control.Apply
- Test.Abides.Control.Bind
- Test.Abides.Control.Category
- Test.Abides.Control.Comonad
- Test.Abides.Control.Extend
- Test.Abides.Control.Monad
- Test.Abides.Control.MonadPlus
- Test.Abides.Control.MonadZero
- Test.Abides.Control.Plus
- Test.Abides.Control.Semigroupoid
- Test.Abides.Data.BooleaneanAlgebra
- Test.Abides.Data.Bounded
- Test.Abides.Data.BoundedEnum
- Test.Abides.Data.CommutativeRing
- Test.Abides.Data.DivisionRing
- Test.Abides.Data.Eq
- Test.Abides.Data.EuclideanRing
- Test.Abides.Data.Foldable
- Test.Abides.Data.Functor
- Test.Abides.Data.HeytingAlgebra
- Test.Abides.Data.Monoid
- Test.Abides.Data.Ord
- Test.Abides.Data.Ring
- Test.Abides.Data.Semigroup
- Test.Abides.Data.Semiring
- Test.Abides.Properties
aff-bus
aff-coroutines
aff-promise
aff-retry
arraybuffer-types
arrays-zipper
assert
aws-encryption-sdk
basic-auth
bigints
bower-json
bucketchain-basic-auth
bucketchain-conditional
bucketchain-cors
bucketchain-csrf
bucketchain-header-utils
bucketchain-health
bucketchain-history-api-fallback
bucketchain-simple-api
- Bucketchain.SimpleAPI
- Bucketchain.SimpleAPI.Auth
- Bucketchain.SimpleAPI.Auth.Class
- Bucketchain.SimpleAPI.Batch
- Bucketchain.SimpleAPI.Body
- Bucketchain.SimpleAPI.Class
- Bucketchain.SimpleAPI.FreeT.Class
- Bucketchain.SimpleAPI.JSON
- Bucketchain.SimpleAPI.Proc
- Bucketchain.SimpleAPI.RawData
- Bucketchain.SimpleAPI.Response
- Bucketchain.SimpleAPI.Response.Class
bucketchain-sslify
bucketchain-static
bytestrings
canvas
cartesian
catenable-lists
channel
channel-stream
checked-exceptions
cheerio
cirru-parser
clipboardy
codec
concur-core
const
coroutines
css
- CSS.Animation
- CSS.Background
- CSS.Border
- CSS.Box
- CSS.Common
- CSS.Cursor
- CSS.Display
- CSS.Elements
- CSS.Flexbox
- CSS.Font
- CSS.FontFace
- CSS.FontStyle
- CSS.Geometry
- CSS.Gradient
- CSS.ListStyle
- CSS.ListStyle.Image
- CSS.ListStyle.Position
- CSS.ListStyle.Type
- CSS.Media
- CSS.Overflow
- CSS.Property
- CSS.Pseudo
- CSS.Render
- CSS.Selector
- CSS.Size
- CSS.String
- CSS.Stylesheet
- CSS.Text
- CSS.Text.Overflow
- CSS.Text.Shadow
- CSS.Text.Transform
- CSS.Text.Whitespace
- CSS.TextAlign
- CSS.Time
- CSS.Transform
- CSS.Transition
- CSS.VerticalAlign
cssom
debug
decimals
distributive
dom-filereader
dom-indexed
- DOM.HTML.Indexed
- DOM.HTML.Indexed.ButtonType
- DOM.HTML.Indexed.CrossOriginValue
- DOM.HTML.Indexed.DirValue
- DOM.HTML.Indexed.FormMethod
- DOM.HTML.Indexed.InputAcceptType
- DOM.HTML.Indexed.InputType
- DOM.HTML.Indexed.KindValue
- DOM.HTML.Indexed.MenuType
- DOM.HTML.Indexed.MenuitemType
- DOM.HTML.Indexed.OnOff
- DOM.HTML.Indexed.OrderedListType
- DOM.HTML.Indexed.PreloadValue
- DOM.HTML.Indexed.ScopeValue
- DOM.HTML.Indexed.StepValue
- DOM.HTML.Indexed.WrapValue
downloadjs
dynamic-buffer
easy-ffi
elasticsearch
- Database.ElasticSearch.Bulk
- Database.ElasticSearch.Client
- Database.ElasticSearch.Common
- Database.ElasticSearch.Create
- Database.ElasticSearch.Delete
- Database.ElasticSearch.Get
- Database.ElasticSearch.Index
- Database.ElasticSearch.Indices.Create
- Database.ElasticSearch.Indices.Delete
- Database.ElasticSearch.Internal
- Database.ElasticSearch.Query
- Database.ElasticSearch.Search
- Database.ElasticSearch.Update
elmish-html
email-validate
encoding
exceptions
exists
exitcodes
expect-inferred
fixed-points
fixed-precision
form-urlencoded
format
functions
fuzzy
geometry-plane
gomtang-basic
grain
- Grain.Class
- Grain.Class.GProxy
- Grain.Class.KGProxy
- Grain.Class.LProxy
- Grain.Internal.Diff
- Grain.Internal.Element
- Grain.Internal.Emitter
- Grain.Internal.Handler
- Grain.Internal.MArray
- Grain.Internal.MMap
- Grain.Internal.MObject
- Grain.Internal.Prop
- Grain.Internal.PropDiff
- Grain.Internal.Ref
- Grain.Internal.SpecialProp
- Grain.Internal.Store
- Grain.Internal.Styler
- Grain.Internal.Util
- Grain.Markup.Element
- Grain.Markup.Handler
- Grain.Markup.Prop
- Grain.TypeRef
- Grain.UI
grain-router
grain-virtualized
graphql-client
- Data.GraphQL.AST
- Data.GraphQL.Parser
- GraphQL.Client.Alias
- GraphQL.Client.Args
- GraphQL.Client.BaseClients.Affjax
- GraphQL.Client.BaseClients.Apollo
- GraphQL.Client.BaseClients.Apollo.ErrorPolicy
- GraphQL.Client.BaseClients.Apollo.FetchPolicy
- GraphQL.Client.BaseClients.Urql
- GraphQL.Client.CodeGen.GetSymbols
- GraphQL.Client.CodeGen.Js
- GraphQL.Client.CodeGen.Lines
- GraphQL.Client.CodeGen.Query
- GraphQL.Client.CodeGen.Schema
- GraphQL.Client.CodeGen.Template.Enum
- GraphQL.Client.CodeGen.Template.Schema
- GraphQL.Client.CodeGen.Types
- GraphQL.Client.ID
- GraphQL.Client.Query
- GraphQL.Client.QueryReturns
- GraphQL.Client.SafeQueryName
- GraphQL.Client.Subscription
- GraphQL.Client.ToGqlString
- GraphQL.Client.Types
- GraphQL.Client.WatchQuery
- GraphQL.Hasura.ComparisonExp
- GraphQL.Hasura.Decode
- GraphQL.Hasura.Encode
graphs
halogen
- Halogen
- Halogen.Aff.Driver
- Halogen.Aff.Driver.Eval
- Halogen.Aff.Driver.State
- Halogen.Aff.Util
- Halogen.Component
- Halogen.Component.Profunctor
- Halogen.Data.OrdBox
- Halogen.Data.Slot
- Halogen.HTML
- Halogen.HTML.Core
- Halogen.HTML.Elements
- Halogen.HTML.Elements.Keyed
- Halogen.HTML.Events
- Halogen.HTML.Properties
- Halogen.HTML.Properties.ARIA
- Halogen.Query
- Halogen.Query.ChildQuery
- Halogen.Query.Event
- Halogen.Query.HalogenM
- Halogen.Query.HalogenQ
- Halogen.Query.Input
- Halogen.VDom.Driver
halogen-bootstrap4
halogen-css
halogen-select
halogen-storybook
halogen-subscriptions
heterogeneous
heterogeneous-extrablatt
http-methods
httpure-middleware
identity
inflection
integers
interpolate
invariant
js-date
js-fileio
js-timers
js-uri
jwt
lazy
lcg
leibniz
machines
makkori
math
matrices
media-types
minibench
mmorph
monad-loops
monad-unlift
motsunabe
naturals
nested-functor
newtype
node-child-process
node-fs-aff
node-he
node-path
node-process
node-readline
node-sqlite3
node-streams
node-url
nonempty
now
nullable
open-folds
open-memoize
open-mkdirp-aff
open-pairing
option
options
options-extra
optparse
- Options.Applicative.BashCompletion
- Options.Applicative.Builder
- Options.Applicative.Builder.Completer
- Options.Applicative.Builder.Internal
- Options.Applicative.Common
- Options.Applicative.Extra
- Options.Applicative.Help.Chunk
- Options.Applicative.Help.Core
- Options.Applicative.Help.Levenshtein
- Options.Applicative.Help.Pretty
- Options.Applicative.Help.Types
- Options.Applicative.Internal
- Options.Applicative.Internal.Utils
- Options.Applicative.Types
- Text.PrettyPrint.Leijen
ordered-collections
ordered-set
pairs
parsing-expect
parsing-hexadecimal
parsing-uuid
parsing-validation
partial
phoenix
point-free
posix-types
prelude
- Control.Applicative
- Control.Apply
- Control.Bind
- Control.Category
- Control.Monad
- Control.Semigroupoid
- Data.Boolean
- Data.BooleanAlgebra
- Data.Bounded
- Data.Bounded.Generic
- Data.CommutativeRing
- Data.DivisionRing
- Data.Eq
- Data.Eq.Generic
- Data.EuclideanRing
- Data.Field
- Data.Function
- Data.Functor
- Data.Generic.Rep
- Data.HeytingAlgebra
- Data.HeytingAlgebra.Generic
- Data.Monoid
- Data.Monoid.Additive
- Data.Monoid.Conj
- Data.Monoid.Disj
- Data.Monoid.Dual
- Data.Monoid.Endo
- Data.Monoid.Generic
- Data.Monoid.Multiplicative
- Data.NaturalTransformation
- Data.Ord
- Data.Ord.Generic
- Data.Ordering
- Data.Ring
- Data.Ring.Generic
- Data.Semigroup
- Data.Semigroup.First
- Data.Semigroup.Generic
- Data.Semigroup.Last
- Data.Semiring
- Data.Semiring.Generic
- Data.Show
- Data.Show.Generic
- Data.Symbol
- Data.Unit
- Data.Void
- Record.Unsafe
- Type.Data.Row
- Type.Data.RowList
- Type.Proxy
prettier
prettier-printer
pretty-logs
profunctor-lenses
- Data.Lens.AffineTraversal
- Data.Lens.At
- Data.Lens.Common
- Data.Lens.Fold
- Data.Lens.Fold.Partial
- Data.Lens.Getter
- Data.Lens.Grate
- Data.Lens.Index
- Data.Lens.Indexed
- Data.Lens.Internal.Bazaar
- Data.Lens.Internal.Exchange
- Data.Lens.Internal.Focusing
- Data.Lens.Internal.Forget
- Data.Lens.Internal.Grating
- Data.Lens.Internal.Indexed
- Data.Lens.Internal.Market
- Data.Lens.Internal.Re
- Data.Lens.Internal.Shop
- Data.Lens.Internal.Stall
- Data.Lens.Internal.Tagged
- Data.Lens.Internal.Wander
- Data.Lens.Internal.Zipping
- Data.Lens.Iso
- Data.Lens.Iso.Newtype
- Data.Lens.Lens
- Data.Lens.Lens.Product
- Data.Lens.Lens.Tuple
- Data.Lens.Lens.Unit
- Data.Lens.Lens.Void
- Data.Lens.Prism
- Data.Lens.Prism.Coproduct
- Data.Lens.Prism.Either
- Data.Lens.Prism.Maybe
- Data.Lens.Record
- Data.Lens.Setter
- Data.Lens.Traversal
- Data.Lens.Types
- Data.Lens.Zoom
ps-cst
- Language.PS.CST.Printers
- Language.PS.CST.Printers.PrintImports
- Language.PS.CST.Printers.PrintModuleModuleNameAndExports
- Language.PS.CST.Printers.TypeLevel
- Language.PS.CST.Printers.Utils
- Language.PS.CST.ReservedNames
- Language.PS.CST.Sugar.Declaration
- Language.PS.CST.Sugar.Leafs
- Language.PS.CST.Sugar.QualifiedName
- Language.PS.CST.Types.Declaration
- Language.PS.CST.Types.Leafs
- Language.PS.CST.Types.Module
- Language.PS.CST.Types.QualifiedName
- Language.PS.SmartCST.ProcessModule
- Language.PS.SmartCST.ProcessSmartDeclaration
- Language.PS.SmartCST.ProcessSmartDeclaration.Utils
- Language.PS.SmartCST.Sugar.Declaration
- Language.PS.SmartCST.Types.Declaration
- Language.PS.SmartCST.Types.SmartQualifiedName
- Language.PS.SmartCST.Types.SmartQualifiedNameConstructor
psci-support
quickcheck-combinators
quickcheck-laws
- Test.QuickCheck.Laws
- Test.QuickCheck.Laws.Control.Alt
- Test.QuickCheck.Laws.Control.Alternative
- Test.QuickCheck.Laws.Control.Applicative
- Test.QuickCheck.Laws.Control.Apply
- Test.QuickCheck.Laws.Control.Bind
- Test.QuickCheck.Laws.Control.Category
- Test.QuickCheck.Laws.Control.Comonad
- Test.QuickCheck.Laws.Control.Extend
- Test.QuickCheck.Laws.Control.Monad
- Test.QuickCheck.Laws.Control.MonadPlus
- Test.QuickCheck.Laws.Control.MonadZero
- Test.QuickCheck.Laws.Control.Plus
- Test.QuickCheck.Laws.Control.Semigroupoid
- Test.QuickCheck.Laws.Data.BooleanAlgebra
- Test.QuickCheck.Laws.Data.Bounded
- Test.QuickCheck.Laws.Data.BoundedEnum
- Test.QuickCheck.Laws.Data.CommutativeRing
- Test.QuickCheck.Laws.Data.DivisionRing
- Test.QuickCheck.Laws.Data.Eq
- Test.QuickCheck.Laws.Data.EuclideanRing
- Test.QuickCheck.Laws.Data.Field
- Test.QuickCheck.Laws.Data.Foldable
- Test.QuickCheck.Laws.Data.Functor
- Test.QuickCheck.Laws.Data.FunctorWithIndex
- Test.QuickCheck.Laws.Data.HeytingAlgebra
- Test.QuickCheck.Laws.Data.Monoid
- Test.QuickCheck.Laws.Data.Ord
- Test.QuickCheck.Laws.Data.Ring
- Test.QuickCheck.Laws.Data.Semigroup
- Test.QuickCheck.Laws.Data.Semiring
quickcheck-utf8
quotient
random
rationals
rave
react-basic-classic
react-basic-emotion
react-dom
react-enzyme
react-testing-library
read
record-extra
record-extra-srghma
- Record.ExtraSrghma.CompareRecord
- Record.ExtraSrghma.FoldlValues
- Record.ExtraSrghma.FoldlValuesWithIndex
- Record.ExtraSrghma.FoldrValues
- Record.ExtraSrghma.FoldrValuesLazy
- Record.ExtraSrghma.FoldrValuesWithIndex
- Record.ExtraSrghma.Keys
- Record.ExtraSrghma.MapIndex
- Record.ExtraSrghma.MapRecord
- Record.ExtraSrghma.MapValuesWithIndex
- Record.ExtraSrghma.ParSequenceRecord
- Record.ExtraSrghma.SequenceRecord
- Record.ExtraSrghma.ValuesToUnfoldableLazy
- Record.ExtraSrghma.ZipRecord
redux-devtools
refs
remotedata
result
return
ring-modules
row-extra
safe-coerce
safely
scrypt
selection-foldable
semirings
server-sent-events
setimmediate
simple-ajax
simple-emitter
simple-json
simple-jwt
simple-ulid
sized-vectors
slug
snabbdom
sparse-matrices
sparse-polynomials
spec
- Test.Spec
- Test.Spec.Assertions
- Test.Spec.Assertions.String
- Test.Spec.Console
- Test.Spec.Reporter.Base
- Test.Spec.Reporter.Console
- Test.Spec.Reporter.Dot
- Test.Spec.Reporter.Spec
- Test.Spec.Reporter.Tap
- Test.Spec.Result
- Test.Spec.Runner
- Test.Spec.Runner.Event
- Test.Spec.Speed
- Test.Spec.Style
- Test.Spec.Summary
- Test.Spec.Tree
spec-discovery
spec-mocha
spec-quickcheck
strings
- Data.Char
- Data.Char.Gen
- Data.String.CaseInsensitive
- Data.String.CodePoints
- Data.String.CodeUnits
- Data.String.Common
- Data.String.Gen
- Data.String.NonEmpty.CaseInsensitive
- Data.String.NonEmpty.CodePoints
- Data.String.NonEmpty.CodeUnits
- Data.String.NonEmpty.Internal
- Data.String.Pattern
- Data.String.Regex
- Data.String.Regex.Flags
- Data.String.Regex.Unsafe
- Data.String.Unsafe
strings-extra
stringutils
subcategory
- Control.Subcategory.Adjoint
- Control.Subcategory.Category
- Control.Subcategory.Closed
- Control.Subcategory.ClosedMonoidal
- Control.Subcategory.ClosedSemimonoidal
- Control.Subcategory.Constituency
- Control.Subcategory.Endofunctor
- Control.Subcategory.Endofunctor.Applicative
- Control.Subcategory.Endofunctor.Apply
- Control.Subcategory.Endofunctor.Bind
- Control.Subcategory.Endofunctor.Discard
- Control.Subcategory.Endofunctor.HasApply
- Control.Subcategory.Endofunctor.HasBind
- Control.Subcategory.Endofunctor.HasCompose
- Control.Subcategory.Endofunctor.HasConst
- Control.Subcategory.Endofunctor.HasMap
- Control.Subcategory.Endofunctor.HasPoint
- Control.Subcategory.Endofunctor.HasPure
- Control.Subcategory.Endofunctor.HasUnpoint
- Control.Subcategory.Endofunctor.Monad
- Control.Subcategory.Endofunctor.Parameterized.HasConst
- Control.Subcategory.Functor
- Control.Subcategory.Functor.Discard
- Control.Subcategory.Functor.HasApply
- Control.Subcategory.Functor.HasBind
- Control.Subcategory.Functor.HasConst
- Control.Subcategory.Functor.HasMap
- Control.Subcategory.Functor.HasPure
- Control.Subcategory.Functor.Parameterized.HasConst
- Control.Subcategory.HasCompose
- Control.Subcategory.HasCurriedEval
- Control.Subcategory.HasCurry
- Control.Subcategory.HasIdentity
- Control.Subcategory.HasIntroduce
- Control.Subcategory.HasStart
- Control.Subcategory.HasTJoin
- Control.Subcategory.HasTUnit
- Control.Subcategory.HasTerminate
- Control.Subcategory.HasUncurriedEval
- Control.Subcategory.HasUncurry
- Control.Subcategory.HasUnit
- Control.Subcategory.Monoidal
- Control.Subcategory.Profunctor
- Control.Subcategory.Profunctor.HasDimap
- Control.Subcategory.Relation.Reflexive
- Control.Subcategory.Relation.Symmetric
- Control.Subcategory.Restrictable
- Control.Subcategory.Semigroupoid
- Control.Subcategory.Semimonoidal
- Control.Subcategory.Slackable
- Control.Subcategory.Strength
substitute
suggest
sunde
supply
systemd-journald
tailrec
text-encoding
thermite
thermite-dom
toppokki
transformers
- Control.Comonad.Env
- Control.Comonad.Env.Class
- Control.Comonad.Env.Trans
- Control.Comonad.Store
- Control.Comonad.Store.Class
- Control.Comonad.Store.Trans
- Control.Comonad.Traced
- Control.Comonad.Traced.Class
- Control.Comonad.Traced.Trans
- Control.Comonad.Trans.Class
- Control.Monad.Cont
- Control.Monad.Cont.Class
- Control.Monad.Cont.Trans
- Control.Monad.Error.Class
- Control.Monad.Except
- Control.Monad.Except.Trans
- Control.Monad.Identity.Trans
- Control.Monad.List.Trans
- Control.Monad.Maybe.Trans
- Control.Monad.RWS
- Control.Monad.RWS.Trans
- Control.Monad.Reader
- Control.Monad.Reader.Class
- Control.Monad.Reader.Trans
- Control.Monad.State
- Control.Monad.State.Class
- Control.Monad.State.Trans
- Control.Monad.Trans.Class
- Control.Monad.Writer
- Control.Monad.Writer.Class
- Control.Monad.Writer.Trans
tree-rose
turf
two-or-more
type-equality
typedenv
typelevel-lists
undefinable
undefined
undefined-is-not-a-problem
undefined-or
unfoldable
unordered-collections
unsafe-coerce
unsafe-reference
untagged-union
uri
- URI.AbsoluteURI
- URI.Authority
- URI.Common
- URI.Extra.MultiHostPortPair
- URI.Extra.QueryPairs
- URI.Extra.UserPassInfo
- URI.Fragment
- URI.HierarchicalPart
- URI.Host
- URI.Host.Gen
- URI.Host.IPv4Address
- URI.Host.IPv6Address
- URI.Host.RegName
- URI.HostPortPair
- URI.HostPortPair.Gen
- URI.Path
- URI.Path.Absolute
- URI.Path.NoScheme
- URI.Path.Rootless
- URI.Path.Segment
- URI.Port
- URI.Port.Gen
- URI.Query
- URI.RelativePart
- URI.RelativeRef
- URI.Scheme
- URI.Scheme.Common
- URI.URI
- URI.URIRef
- URI.UserInfo
url-regex-safe
uuid
vectorfield
veither
vexceptt
web-dom
- Web.DOM.CharacterData
- Web.DOM.ChildNode
- Web.DOM.Comment
- Web.DOM.DOMTokenList
- Web.DOM.Document
- Web.DOM.DocumentFragment
- Web.DOM.DocumentType
- Web.DOM.Element
- Web.DOM.HTMLCollection
- Web.DOM.Internal.Types
- Web.DOM.MutationObserver
- Web.DOM.MutationRecord
- Web.DOM.Node
- Web.DOM.NodeList
- Web.DOM.NodeType
- Web.DOM.NonDocumentTypeChildNode
- Web.DOM.NonElementParentNode
- Web.DOM.ParentNode
- Web.DOM.ProcessingInstruction
- Web.DOM.ShadowRoot
- Web.DOM.Text
web-dom-parser
web-html
- Web.HTML
- Web.HTML.Common
- Web.HTML.Event.BeforeUnloadEvent
- Web.HTML.Event.BeforeUnloadEvent.EventTypes
- Web.HTML.Event.DataTransfer
- Web.HTML.Event.DragEvent
- Web.HTML.Event.DragEvent.EventTypes
- Web.HTML.Event.ErrorEvent
- Web.HTML.Event.EventTypes
- Web.HTML.Event.HashChangeEvent
- Web.HTML.Event.HashChangeEvent.EventTypes
- Web.HTML.Event.PageTransitionEvent
- Web.HTML.Event.PageTransitionEvent.EventTypes
- Web.HTML.Event.PopStateEvent
- Web.HTML.Event.PopStateEvent.EventTypes
- Web.HTML.Event.TrackEvent
- Web.HTML.Event.TrackEvent.EventTypes
- Web.HTML.HTMLAnchorElement
- Web.HTML.HTMLAreaElement
- Web.HTML.HTMLAudioElement
- Web.HTML.HTMLBRElement
- Web.HTML.HTMLBaseElement
- Web.HTML.HTMLBodyElement
- Web.HTML.HTMLButtonElement
- Web.HTML.HTMLCanvasElement
- Web.HTML.HTMLDListElement
- Web.HTML.HTMLDataElement
- Web.HTML.HTMLDataListElement
- Web.HTML.HTMLDivElement
- Web.HTML.HTMLDocument
- Web.HTML.HTMLDocument.ReadyState
- Web.HTML.HTMLElement
- Web.HTML.HTMLEmbedElement
- Web.HTML.HTMLFieldSetElement
- Web.HTML.HTMLFormElement
- Web.HTML.HTMLHRElement
- Web.HTML.HTMLHeadElement
- Web.HTML.HTMLHeadingElement
- Web.HTML.HTMLHyperlinkElementUtils
- Web.HTML.HTMLIFrameElement
- Web.HTML.HTMLImageElement
- Web.HTML.HTMLImageElement.CORSMode
- Web.HTML.HTMLImageElement.DecodingHint
- Web.HTML.HTMLImageElement.Laziness
- Web.HTML.HTMLInputElement
- Web.HTML.HTMLKeygenElement
- Web.HTML.HTMLLIElement
- Web.HTML.HTMLLabelElement
- Web.HTML.HTMLLegendElement
- Web.HTML.HTMLLinkElement
- Web.HTML.HTMLMapElement
- Web.HTML.HTMLMediaElement
- Web.HTML.HTMLMediaElement.CanPlayType
- Web.HTML.HTMLMediaElement.NetworkState
- Web.HTML.HTMLMediaElement.ReadyState
- Web.HTML.HTMLMetaElement
- Web.HTML.HTMLMeterElement
- Web.HTML.HTMLModElement
- Web.HTML.HTMLOListElement
- Web.HTML.HTMLObjectElement
- Web.HTML.HTMLOptGroupElement
- Web.HTML.HTMLOptionElement
- Web.HTML.HTMLOutputElement
- Web.HTML.HTMLParagraphElement
- Web.HTML.HTMLParamElement
- Web.HTML.HTMLPreElement
- Web.HTML.HTMLProgressElement
- Web.HTML.HTMLQuoteElement
- Web.HTML.HTMLScriptElement
- Web.HTML.HTMLSelectElement
- Web.HTML.HTMLSourceElement
- Web.HTML.HTMLSpanElement
- Web.HTML.HTMLStyleElement
- Web.HTML.HTMLTableCaptionElement
- Web.HTML.HTMLTableCellElement
- Web.HTML.HTMLTableColElement
- Web.HTML.HTMLTableDataCellElement
- Web.HTML.HTMLTableElement
- Web.HTML.HTMLTableHeaderCellElement
- Web.HTML.HTMLTableRowElement
- Web.HTML.HTMLTableSectionElement
- Web.HTML.HTMLTemplateElement
- Web.HTML.HTMLTextAreaElement
- Web.HTML.HTMLTimeElement
- Web.HTML.HTMLTitleElement
- Web.HTML.HTMLTrackElement
- Web.HTML.HTMLTrackElement.ReadyState
- Web.HTML.HTMLUListElement
- Web.HTML.HTMLVideoElement
- Web.HTML.History
- Web.HTML.Location
- Web.HTML.Navigator
- Web.HTML.SelectionMode
- Web.HTML.ValidityState
- Web.HTML.Window
web-resize-observer
web-uievents
- Web.UIEvent.CompositionEvent
- Web.UIEvent.CompositionEvent.EventTypes
- Web.UIEvent.EventTypes
- Web.UIEvent.FocusEvent
- Web.UIEvent.FocusEvent.EventTypes
- Web.UIEvent.InputEvent
- Web.UIEvent.InputEvent.EventTypes
- Web.UIEvent.KeyboardEvent
- Web.UIEvent.KeyboardEvent.EventTypes
- Web.UIEvent.MouseEvent
- Web.UIEvent.MouseEvent.EventTypes
- Web.UIEvent.UIEvent
- Web.UIEvent.WheelEvent
- Web.UIEvent.WheelEvent.EventTypes
which