Releases respect semantic versioning.
Published .
createPseudoNode
where click events could sometimes cause React rendering errors in the head app.Published .
react-dom/client
entry, instead of react-dom
.hydrate.mjs
the new function hydrateRoot
from react-dom/client
instead of the old function hydrate
from react-dom
.--unstable
flag for the install and test scripts.createPseudoNode
tests to better isolate each test.hydrate
tests to better isolate each test and avoid Puppeteer browser errors relating to modifying HTML and import maps.Published .
run
command --no-check
flag when serving the Ruck app in production.Published .
media_types
dependency with new Deno std
APIs, fixing #5.useOnClickRouteLink
tests failing in Linux environments due to the different macOS Chrome browser behavior when a “meta” key is pressed while clicking a link.Published .
Removed TypeScript triple slash reference comments from Ruck modules that were originally intended to enable DOM types. Ruck projects now must have a Deno config file (deno.json
or deno.jsonc
), containing:
{
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"dom.asynciterable",
"deno.ns",
"deno.unstable"
]
}
}
actions/checkout
to v3.deno.json
Deno config file.Published .
navigate
function powering Ruck app route navigation on the client that’s populated in the React context NavigateContext
by the React component ClientProvider
now converts a relative URL used for option url
to an absolute URL using document.baseURI
as the base instead of location.origin
. This is consistent with how a native a
element with a href
attribute relative to a document base
element navigates.serve
option clientImportMap
now also accepts an import map object.documentHasStyleSheet
fixes and improvements:
href
now converts to an absolute URL using document.baseURI
as the base instead of location.origin
.useOnClickRouteLink
fixes and improvements:
Effect
.hydrate
.try
blocks in tests.scripts/test.sh
.Published .
@ts-ignore
comment within tests that’s redundant for TypeScript v4.6+.publicFileResponse.mjs
:
Published .
routeDetailsForContentWithCss.mjs
to routePlanForContentWithCss.mjs
.Router
type (from serve.mjs
) intended for the default export of a project public/router.mjs
module now returns a new RoutePlan
type (also from serve.mjs
) instead of RouteDetails
, which has been removed.Route
type (from serve.mjs
) for the RouteContext
React context value that the useRoute
React hook returns no longer suggests the content
property could be a promise. This type was previously used for both when a route was planned and rendering, and while it’s ok to plan a route without using a promise for the content, it created the false impression that the content for a rendered route might be a promise.serve.mjs
.Published .
serve
function from serve.mjs
now reads the request headers x-forwarded-proto
and x-forwarded-host
when determining the route URL, which should be what the client originally used to start the request. Reverse proxy servers (load balancers, CDNs, etc.) may forward client requests to the Ruck app server using a different protocol or host. E.g. Fly.io forwards https:
requests to the deployed server using http:
..github
directory.