@desolint/general-shared
v0.0.1
Published
Framework-agnostic types and zero-dependency utilities shared across Desol Int. projects. Early extraction — currently ships tryCatch helpers.
Readme
@desolint/general-shared
Framework-agnostic types and zero-dependency utilities shared across Desol Int. projects. Zero runtime dependencies — safe to depend on from both @desolint/general-server and @desolint/general-client.
Requirements
No runtime dependencies and no peer dependencies — this package is types and standalone utilities, so it imposes no version constraints of its own.
Install
You normally do not install this package directly. It is a pinned dependency of @desolint/general-server and @desolint/general-client, and both re-export what it exposes through their own ./tryCatch subpath.
Install it directly only if you're consuming it without either of the other two:
npm install @desolint/general-sharedQuick start
Nothing is exported from the package root — each utility lives behind its own subpath:
import {tryCatch, asyncTryCatch} from '@desolint/general-shared/tryCatch'; // no extra deps/tryCatch
Wraps a function call and returns a discriminated-union result instead of throwing.
| Export | Notes |
| --------------------- | --------------------------------------------------------------------- |
| tryCatch({fn}) | Sync. Returns TryCatchResult<T>. |
| asyncTryCatch({fn}) | Async. Same result shape; awaits fn first. |
| TryCatchResult<T> | {success: true, response: T} | {success: false, error: unknown}. |
Deliberately excluded from this package's own root export — general-server's and
general-client's ./tryCatch subpaths are the intended entry points for most
consumers, not @desolint/general-shared directly.
Status
Scaffold stage — only tryCatch has been ported so far. More framework-agnostic
types and utilities (interfaces, constants, shared schemas) are planned but don't
exist yet.
Development
npm install # install dependencies (from the repo root)
npm run build # builds general-shared -> general-server -> general-client, in that order
npm test # type-check + jest
npm run lint # eslintThis package is part of the package-general workspaces monorepo — run these
commands from the repository root, not this directory.
License
MIT © Desolint — see LICENSE.
