* chore: replace eslint & prettier w/ biomejs
* fix syntax error in ci.yml workflow
* ensure that build CI jobs only run if check job succeeds to save resources
This adds are new attribute to Elements, "dangerouslySetInnerHTML", which like the same attribute from React allows one to take a stirng of unescaped HTML and render it unconditionally. This is of course a potentially dangerous operation that can open your app up to XSS attacks, but for interoperating with existing content management systems and libraries that output HTML (e.g. markdown renderers).
Using "dangerouslySetInnerHTML" on an element with children will generate an error within createElement, since it doesn't make sense to have both children and inner HTML.
Fixes a couple of issues with config files in websnacks projects.
First, config files are no longer required and the dev and build
commands will no longer error out if a websnacks.ts/js file doesn't
exist.
Second, all optional user config params are now actually optional -
before some parameters were assumed to exist and would error out if not
present (e.g. the "watch" parameter).
Finally, e2e tests were added to prevent regressions on these issues
and test helpers were extracted to a separate file.
Appearently the esModuleInterop flag in TypeScript is not compatible
with node-watch, and the import helper was mangling the import as a
result and causing an error in the dev command that resulted in files
not being watched.
This fixes that import issue and adds an e2e test to help prevent a
regression of this issue in the future.