Skip to content

Release v0.8.1

Choose a tag to compare

@LibirSoft LibirSoft released this 26 Jul 18:19
· 54 commits to master since this release
7cb1d0d

Import failures no longer swallowed. A file inside sourceFolder that fails to import was console.error'd and skipped, so the server started with that component silently absent — first symptom a runtime injection failure or a vanished route. It now aborts startup, through the framework logger.
Import timeout diagnostics. An import that has not settled after 10s is reported by file name, so a never-resolving top-level await in application code is diagnosable instead of an unexplained hang. Tunable via importTimeout in asena-config.ts; warning only, the boot is not failed.
readConfigFile performance and determinism. It walked all of process.cwd() — node_modules, .git, dist — on every boot to find a file that sits in the project root, and the first match won in undefined readdirSync order, so a dependency shipping a matching filename could be picked up instead of the project's own config. Now: direct root lookup first, filtered and ordered walk as fallback.
Absolute sourceFolder. Scanned paths were joined onto process.cwd() unconditionally, so an absolute sourceFolder made every import fail — swallowed by the catch above and surfacing as a generic No components found.
isValidationError() / ValidationErrorLike added to @AsenaJs/asena/adapter. Adapter-agnostic contract the adapters use to route request validation failures through ConfigService.onError; no Zod dependency in core.