Skip to content

Module: Media Processing

Media processing and delivery with pluggable providers. Ships with providers for Cloudinary (Upload API + URL-based transforms), Uploadcare (REST API + CDN delivery with on-the-fly transforms), and imgix (URL-based transforms with signed URLs and responsive srcset generation), plus an in-memory mock for testing. Includes a fluent immutable TransformBuilder, named transform presets, factory-based registry, per-instance circuit breakers, OTel metrics, and native fetch throughout.

Namemodule-media-ts
Version0.1.0
Categorycomposable-modules
LicenseApache-2.0
Personaengineering
Tagsmedia, images, cloudinary, uploadcare, imgix, transforms, typescript
Sourcetemplates/module-media-ts

Render it

Three front doors, one catalog. Pick whichever suits the caller.

# CLI
npx @nanohype/sdk render module-media-ts --out ./my-app

# SDK
import { LocalSource, renderTemplate } from "@nanohype/sdk";
const result = await renderTemplate(source, "module-media-ts", variables);

# MCP — from an agent
get_template({ name: "module-media-ts" })

Prerequisites

ToolVersionWhy
node>=22Node.js runtime for the media module

Variables

Required

ProjectName string
Kebab-case project name, used as package name and directory Must be lowercase kebab-case starting with a letter.

Optional

Description string — defaults to Media processing and delivery with pluggable providers
Short project description for package.json and README
MediaProvider string — defaults to cloudinary
Default media provider (cloudinary, uploadcare, imgix, mock, or a custom name)

What it produces

29 files. Placeholder names such as __APP_NAME__ are what the renderer substitutes into.

.env.example
.gitignore
biome.json
package.json
README.md
src/media/__tests__/builder.test.ts
src/media/__tests__/mock.test.ts
src/media/__tests__/presets.test.ts
src/media/__tests__/registry.test.ts
src/media/__tests__/signing.test.ts
src/media/bootstrap.ts
src/media/config.ts
src/media/index.ts
src/media/logger.ts
src/media/metrics.ts
src/media/providers/cloudinary.ts
src/media/providers/imgix.ts
src/media/providers/index.ts
src/media/providers/mock.ts
src/media/providers/registry.ts
src/media/providers/types.ts
src/media/providers/uploadcare.ts
src/media/resilience/__tests__/circuit-breaker.test.ts
src/media/resilience/circuit-breaker.ts
src/media/transforms/builder.ts
src/media/transforms/presets.ts
src/media/types.ts
tsconfig.json
vitest.config.ts

Composes with