Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 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/mcp Node.js MCP server + agent config

@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
uuid RFC 4122 v4 UUID generator (native + fallback) β€” docs
mdbid MongoDB-compatible ObjectId generator β€” docs
generateId / generateAlphaNumericId / generateAlphaLowerCaseId / ... Nanoid-based ID generators with configurable alphabets β€” docs
Env Typed environment variable access (abstraction) β€” 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 node:fs read streams with explicit destroy() cleanup β€” docs
PackageJsonFileTool / PackageJsonFileToolFeature Read, validate, mutate, and write package.json files β€” docs
HashFolderTool / HashFolderToolFeature Deterministic SHA-256 hash of a folder's contents β€” docs
ProcessEnvFeature Env implementation backed by process.env β€” docs
WorkspaceTool / WorkspaceToolFeature Discover workspaces from root package.json (replaces get-yarn-workspaces) β€” docs
GlobTool / GlobToolFeature Find files and directories by glob pattern β€” docs

@webiny/stdlib/browser β€” Browser

Feature Description
LocalStorageCacheFeature Cache implementation backed by window.localStorage β€” docs
BrowserEnvFeature Env implementation backed by an injected variables object β€” docs

@webiny/stdlib/mcp β€” MCP Server

An MCP server that exposes @webiny/stdlib feature documentation as tools for AI agent discovery. Ships a CLI binary (stdlib-mcp) with two commands:

# Start the MCP server (stdio transport)
npx -y @webiny/stdlib stdlib-mcp serve

# Configure an AI agent (Claude Code, Cursor, Cline, Copilot, Windsurf, Kiro, OpenCode)
npx -y @webiny/stdlib stdlib-mcp configure

The server provides two MCP tools: list_stdlib_skills (grouped catalog of all features) and get_stdlib_skill (full documentation for a specific skill). By default it scans skills/ and src/ (or dist/) for README.md and SKILL.md files with YAML front-matter.

Feature Description
McpServer / McpServerFeature MCP server with stdio transport β€” docs
SkillDiscovery / SkillDiscoveryConfig Scans directories for skill files with front-matter β€” docs
AgentConfigurator / AgentConfiguratorFeature Interactive CLI to configure AI agents β€” docs

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

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages