Repository navigation
Releases: linked-fw/server-utils
Release list
v1.1.1
Patch Changes
-
#19
db0e6b9Thanks @flyon! - PinAppContextonglobalThisso module re-evaluation cannot fork it.The dev server loads this module on two different lifecycles:
LinkedServer
importsAppContextProviderstatically and is instantiated once at boot, while
the consumers below it (AppRoot,Html) arrive via
vite.ssrLoadModule('/src/App.tsx'), which is re-evaluated on every full SSR
invalidation. Becauseserver-utilsis bundled into the SSR graph, a bare
createContextcall then handed the consumers a NEW context object while the
provider still held the boot-time one.useAppContext()found no matching
provider, returned null, and every SSR render threw "Cannot destructure property
'isNativeApp' of useAppContext()".The stale provider is pinned inside the long-lived server object, so this never
recovered on its own: a single HMR page reload could flip a working dev server
into serving 500s on every request until the process was restarted. It also
presented as a bare "SSR timed out" rather than the real error, because
onShellErrordid not answer the request (fixed separately in@_linked/server).Pinning the context object on
globalThiskeeps provider and consumer on one
context across re-evaluations.
v1.1.0
Minor Changes
- #17
41db1b2Thanks @flyon! - -Server.callnow retries transient failures (connection-level rejections and 502/503/504) with exponential backoff, so a dropped socket / gateway blip under load no longer fails the request hard. 4xx and plain 500 are not retried (the server already processed the request).- Published ESM-only (dropped the CJS build). No CJS
requireconsumers remained; this matches the rest of the@_linked/*fleet and lets the build resolve@_linked/core'sexportsmap.
- Published ESM-only (dropped the CJS build). No CJS
v1.0.10
v1.0.9
Patch Changes
-
#12
ce41a57Thanks @flyon! -BackendProvidergainsregisterRoute(method, path, ...handlers)+disposeRoutes()— register express routes/middleware that are tracked and torn down on HMR reload (so backend source changes don't stack duplicate middleware). Used by@_linked/auth'sdispose(). Fixesthis.registerRoute is not a functionon boot.Also:
Server.tsre-exportsCallConfigwithexport type(it's an interface) — fixes the runtime ESM error "does not provide an export named 'CallConfig'".
v1.0.8
v1.0.7
v1.0.6
Patch Changes
- #5
88cb730Thanks @flyon! - Rebuild + republish. The 1.0.5 tarball was missing all.jsfiles (only.d.tsshipped) becauseyarn linked buildwas silently failing inside CI at the dual-package step. Switch to the explicit per-step build pattern that@_linked/cliitself uses (rimraf && build-esm && build-cjs && copy-to-lib && dual-package), which fails loudly per step and produces completelib/esm/+lib/cjs/output with their dual-packagepackage.jsonmarkers.
v1.0.5
Patch Changes
-
#4
620ff0fThanks @flyon! -initFrontendnow returnsPromise<void>(wasPromise<unknown>), so callers can await it without an explicit cast.Also: the
buildscript now requireslib/esmandlib/cjsto exist after compile, so a silently-failing build no longer produces an empty published tarball. -
6965162-LincdServerProxy.parseShape: prefer thepackageNamestored on the shape constructor (set by@_linked/coreduringlinkedPackage()registration) instead of extracting it from the URI. The URI form passes throughURI.sanitizewhich is lossy (@_linked/server→-_linked-server), so the sanitized segment can't round-trip as a Node module specifier. Falls back to URI parsing for shapes predating thepackageNameproperty.Also: restore previously-deleted
src/types.d.ts(CSS module declarations) needed by tsconfig.
v1.0.4
Patch Changes
887c3cc- Initial release under the new publishing setup.