Package Exports
- @daiso-tech/core/backoff-policies
- @daiso-tech/core/cache
- @daiso-tech/core/cache/contracts
- @daiso-tech/core/cache/kysely-cache-adapter
- @daiso-tech/core/cache/memory-cache-adapter
- @daiso-tech/core/cache/mongodb-cache-adapter
- @daiso-tech/core/cache/no-op-cache-adapter
- @daiso-tech/core/cache/redis-cache-adapter
- @daiso-tech/core/cache/test-utilities
- @daiso-tech/core/collection
- @daiso-tech/core/collection/contracts
- @daiso-tech/core/event-bus
- @daiso-tech/core/event-bus/contracts
- @daiso-tech/core/event-bus/memory-event-bus-adapter
- @daiso-tech/core/event-bus/no-op-event-bus-adapter
- @daiso-tech/core/event-bus/redis-pub-sub-event-bus-adapter
- @daiso-tech/core/event-bus/test-utilities
- @daiso-tech/core/hooks
- @daiso-tech/core/lock
- @daiso-tech/core/lock/contracts
- @daiso-tech/core/lock/kysely-lock-adapter
- @daiso-tech/core/lock/memory-lock-adapter
- @daiso-tech/core/lock/mongodb-lock-adapter
- @daiso-tech/core/lock/no-op-lock-adapter
- @daiso-tech/core/lock/redis-lock-adapter
- @daiso-tech/core/lock/test-utilities
- @daiso-tech/core/namespace
- @daiso-tech/core/resilience
- @daiso-tech/core/semaphore
- @daiso-tech/core/semaphore/contracts
- @daiso-tech/core/semaphore/kysely-semaphore-adapter
- @daiso-tech/core/semaphore/memory-semaphore-adapter
- @daiso-tech/core/semaphore/mongodb-semaphore-adapter
- @daiso-tech/core/semaphore/no-op-semaphore-adapter
- @daiso-tech/core/semaphore/redis-semaphore-adapter
- @daiso-tech/core/semaphore/test-utilities
- @daiso-tech/core/serde
- @daiso-tech/core/serde/contracts
- @daiso-tech/core/serde/no-op-serde-adapter
- @daiso-tech/core/serde/super-json-serde-adapter
- @daiso-tech/core/serde/test-utilities
- @daiso-tech/core/shared-lock/contracts
- @daiso-tech/core/shared-lock/kysely-shared-lock-adapter
- @daiso-tech/core/shared-lock/memory-shared-lock-adapter
- @daiso-tech/core/shared-lock/mongodb-shared-lock-adapter
- @daiso-tech/core/shared-lock/no-op-shared-lock-adapter
- @daiso-tech/core/shared-lock/redis-shared-lock-adapter
- @daiso-tech/core/shared-lock/test-utilities
- @daiso-tech/core/time-span
- @daiso-tech/core/time-span/contracts
- @daiso-tech/core/utilities
Readme
@daiso-tech/core
@daiso-tech/core is a TypeScript-first backend library for building web apps and API servers. It includes an ecosystem of official packages designed to work seamlessly together.
Type safe: We pay a closer look at type-safety, seamless intellisense, and support for auto imports when designing library APIs.
ESM ready: @daiso-tech/core leverages modern JavaScript primitives, including ES modules
Easily testable: @daiso-tech/core includes built-in vitest helpers for custom adapters and in-memory adapters for all components, enabling testing without Docker.
Supports standard schema: Integrated seamlessly with standard schema allowing you to use libraries like zod to ensure both compile time and runtimte typesafety.
A growing collection of officially maintained components
Cache: Speed up your applications by storing slowly changing data in a cache store.
EventBus: Easily send events accross different applications or in-memory.
Distributed lock: Synchronize the access to a shared resource to prevents several processes, or concurrent code, from executing a section of code at the same time.
Distributed semaphore: A semaphore is a concurrency control primitive used to limit the number of processes or systems that can access a shared resource of code concurrently.
Distributed shared lock: A shared lock (a.k.a reader writer lock) is a concurrency primitive offering better concurrency than a lock by coordinating a reader semaphore for concurrent access and an writer lock for mutual exclusion, strictly preventing conflicting simultaneous access and maintaining data consistency.
Serde: Add custom serialization and deserialization logic that seamlessly integrates with all other components.
Collection: Effortlessly work with Arrays, Iterables, and AsyncIterables. Filter and transform with precision.
Hooks: Extend any sync and async function with agnostic hooks.@daiso-tech/core includes predefined retry, fallback, timeout and hedging hooks to easily allow handling transient failures.