Opinionated standard library for Webiny. This is an internal package — we make breaking changes freely and do not follow semver for external consumers.
Services are built on a lightweight dependency injection system. Each feature follows the same three-layer pattern: an abstraction (DI token + interface), an implementation (concrete class), and a feature (registers the implementation in the DI container). This keeps code testable and lets different environments (Node.js, browser) swap implementations behind the same interface.
The package is ESM-only and ships three subpath exports. Because each is a separate entry point, Node.js-specific code is never bundled into a browser build and vice versa — unless you explicitly import the wrong subpath.
| Import | Environment | Description |
|---|---|---|
@webiny/stdlib |
Any | Platform-agnostic utilities |
@webiny/stdlib/node |
Node.js | Node.js-specific tools |
@webiny/stdlib/browser |
Browser | Browser-specific tools |
| Feature | Description |
|---|---|
Result / ResultAsync |
Typed success/failure values — synchronous and async |
BaseError |
Abstract base class for typed domain errors |
Logger / ConsoleLogger / ConsoleLoggerFeature |
Logging abstraction + console implementation — docs |
Cache / MemoryCacheFeature |
Synchronous key-value cache — docs |
AsyncCache / AsyncMemoryCacheFeature |
Async key-value cache — docs |
| Feature | Description |
|---|---|
FileTool / FileToolFeature |
Read, write, copy, remove files — docs |
DirectoryTool / DirectoryToolFeature |
Create, read, remove, copy, glob directories — docs |
JsonFileTool / JsonFileToolFeature |
Read and write JSON files with optional schema validation — docs |
PathTool / PathToolFeature |
node:path wrapper + resolvePackageFile for package-relative paths — docs |
PinoLogger / PinoLoggerFeature |
pino-based Logger implementation — docs |
NdJsonReaderTool / NdJsonReaderToolFeature |
Parse NDJSON from files, streams, or in-memory lines with checkpoint support — docs |
ReadStreamFactory / ReadStreamFactoryFeature |
Disposable node:fs read streams via AsyncDisposable — docs |
PackageJsonFileTool / PackageJsonFileToolFeature |
Read, validate, mutate, and write package.json files — docs |
| Feature | Description |
|---|---|
LocalStorageCacheFeature |
Cache implementation backed by window.localStorage — docs |
The package version in package.json is always 0.0.0. The real version is injected at publish time by the release pipeline using conventional commits: feat bumps the minor, everything else (fix, chore, refactor, …) bumps the patch. There are no major version bumps — breaking changes may land on minor releases.