Claude-skill-registry east-node-std
Node.js platform functions for the East language. Use when writing East programs that need Console I/O, FileSystem operations, HTTP Fetch requests, Cryptography, Time operations, Path manipulation, Random number generation, or Testing. Triggers for: (1) Writing East programs with @elaraai/east-node-std, (2) Using platform functions like Console.log, FileSystem.readFile, Fetch.get, Crypto.uuid, Time.now, Path.join, Random.normal, (3) Testing East code with describeEast and Assert.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/east-node-std" ~/.claude/skills/majiayu000-claude-skill-registry-east-node-std && rm -rf "$T"
manifest:
skills/data/east-node-std/SKILL.mdsource content
East Node Standard Library
Node.js platform functions for the East language. Enables East programs to interact with the filesystem, network, console, and other I/O operations.
Quick Start
import { East, StringType, NullType } from "@elaraai/east"; import { NodePlatform, Console, FileSystem } from "@elaraai/east-node-std"; const processFile = East.function( [StringType], NullType, ($, path) => { const content = $.let(FileSystem.readFile(path)); $(Console.log(content)); } ); // Compile with NodePlatform (includes all platform functions) const compiled = East.compile(processFile.toIR(), NodePlatform); await compiled("input.txt");
Decision Tree: Which Module to Use
Task → What do you need? │ ├─ Console (stdout/stderr output) │ └─ .log(), .error(), .write() │ ├─ FileSystem (read/write files and directories) │ ├─ Text → .readFile(), .writeFile(), .appendFile() │ ├─ Binary → .readFileBytes(), .writeFileBytes() │ ├─ Query → .exists(), .isFile(), .isDirectory() │ ├─ Directory → .createDirectory(), .readDirectory() │ └─ Delete → .deleteFile() │ ├─ Fetch (HTTP requests) │ └─ .get(), .getBytes(), .post(), .request() │ ├─ Crypto (hashing, UUIDs, random bytes) │ └─ .uuid(), .randomBytes(), .hashSha256(), .hashSha256Bytes() │ ├─ Time (timestamps and delays) │ └─ .now(), .sleep() │ ├─ Path (path manipulation) │ └─ .join(), .resolve(), .dirname(), .basename(), .extname() │ ├─ Random (statistical distributions) │ ├─ Basic → .uniform(), .normal(), .range() │ ├─ Continuous → .exponential(), .weibull(), .pareto(), .logNormal() │ ├─ Discrete → .bernoulli(), .binomial(), .geometric(), .poisson() │ ├─ Composite → .irwinHall(), .bates() │ └─ Control → .seed() │ └─ Assert (testing with describeEast) └─ .is(), .equal(), .notEqual(), .less(), .lessEqual(), .greater(), .greaterEqual(), .between(), .throws(), .fail()
Compiling East Programs
Option 1: Use NodePlatform (all modules)
const compiled = East.compile(myFunction.toIR(), NodePlatform);
Option 2: Use specific module implementations
const compiled = East.compile(myFunction.toIR(), [...Console.Implementation, ...FileSystem.Implementation]);
Reference Documentation
- API Reference - Complete function signatures, types, and arguments for all modules
- Examples - Working code examples by use case
Available Modules
| Module | Import | Purpose |
|---|---|---|
| Console | | stdout/stderr output |
| FileSystem | | Read/write files and directories |
| Fetch | | HTTP requests |
| Crypto | | Hashing, UUIDs, random bytes |
| Time | | Timestamps and sleep |
| Path | | Path manipulation |
| Random | | 14 statistical distributions |
| Assert | | Testing utilities |
Accessing Types
import { Fetch } from "@elaraai/east-node-std"; // Access types via Module.Types.TypeName const method = Fetch.Types.Method; const config = Fetch.Types.RequestConfig; const response = Fetch.Types.Response;