@dotdo/esm
v0.1.1
Published
Platform-agnostic core library for esm.do module management.
Readme
@dotdo/esm
Platform-agnostic core library for esm.do module management.
Installation
npm install @dotdo/esm
# or
pnpm add @dotdo/esmUsage
Basic Module Management
import { ESM, InMemoryStorage } from '@dotdo/esm'
// Create an ESM instance with storage
const esm = ESM.withStorage(new InMemoryStorage())
// Write a module
await esm.write('@myorg/utils', {
code: `export function add(a, b) { return a + b }`,
tests: `import { add } from './index.js'
export default [
{ name: 'adds numbers', fn: () => add(1, 2) === 3 }
]`,
})
// Read a module
const module = await esm.read('@myorg/utils')
// Run a module
const result = await esm.run('@myorg/utils', { a: 1, b: 2 })
// Test a module
const testResult = await esm.test('@myorg/utils')Deploy Adapters
Deploy your ESM modules to any platform with built-in adapters:
// Cloudflare Workers
import { createHandler } from '@dotdo/esm/deploy'
import { CloudflareAdapter } from '@dotdo/esm/deploy/cloudflare'
export default {
fetch: createHandler(new CloudflareAdapter())
}// Vercel Edge Functions
import { createHandler } from '@dotdo/esm/deploy'
import { VercelAdapter } from '@dotdo/esm/deploy/vercel'
export default createHandler(new VercelAdapter())// AWS Lambda
import { createHandler } from '@dotdo/esm/deploy'
import { AWSLambdaAdapter } from '@dotdo/esm/deploy/aws'
export const handler = createHandler(new AWSLambdaAdapter())// Netlify Functions
import { createHandler } from '@dotdo/esm/deploy'
import { NetlifyAdapter } from '@dotdo/esm/deploy/netlify'
export const handler = createHandler(new NetlifyAdapter())// Deno Deploy
import { createHandler } from '@dotdo/esm/deploy'
import { DenoAdapter } from '@dotdo/esm/deploy/deno'
Deno.serve(createHandler(new DenoAdapter()))// Bun
import { createHandler } from '@dotdo/esm/deploy'
import { BunAdapter } from '@dotdo/esm/deploy/bun'
export default {
fetch: createHandler(new BunAdapter())
}Exports
| Export | Description |
|--------|-------------|
| @dotdo/esm | Main ESM class and core utilities |
| @dotdo/esm/types | TypeScript type definitions |
| @dotdo/esm/errors | Error classes |
| @dotdo/esm/executor | Code execution utilities |
| @dotdo/esm/storage | Storage implementations |
| @dotdo/esm/deploy | Universal deploy handler |
| @dotdo/esm/deploy/cloudflare | Cloudflare Workers adapter |
| @dotdo/esm/deploy/vercel | Vercel Edge adapter |
| @dotdo/esm/deploy/aws | AWS Lambda adapter |
| @dotdo/esm/deploy/netlify | Netlify Functions adapter |
| @dotdo/esm/deploy/deno | Deno Deploy adapter |
| @dotdo/esm/deploy/bun | Bun adapter |
License
MIT
