Skip to content

webiny/stdlib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 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
immutableGet / immutableSet / immutableDelete / mutableSet / mutableDelete Dot-notation get/set/delete on nested objects — docs
toBoolean / isTruthy / isFalsy Semantic boolean coercion — 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

Versioning and publishing are managed by Changesets. The version in package.json is the real published version, bumped automatically when a version PR is merged. To record a version bump, run yarn changeset before opening a PR. There are no major version bumps — breaking changes may land on minor releases.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages