Skip to content

webiny/stdlib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@webiny/stdlib

Opinionated standard library for Webiny. This is an internal package — we make breaking changes freely and do not follow semver for external consumers.

Design

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.

Subpath exports

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

@webiny/stdlib — Common

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

@webiny/stdlib/node — Node.js

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 AsyncDisposabledocs
PackageJsonFileTool / PackageJsonFileToolFeature Read, validate, mutate, and write package.json files — docs

@webiny/stdlib/browser — Browser

Feature Description
LocalStorageCacheFeature Cache implementation backed by window.localStoragedocs

Versioning

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages