This repository is a personal TypeScript-first rewrite to the original @elasticpath/js-sdk.
This repository is currently in process and dosn't cover all Elastic Path endpoints at this time.
Use at your own risk.
- Bun 1.3+
- Node.js 22+
bun installbun run lint
bun run typecheck
bun run build
bun run test
bun run check
bun run test-output
bun run playground
bun run playground:distbun run check runs the full pre-push verification sequence: build, lint, typecheck, and test.
To enforce that locally before every push, install the tracked Git hooks once per clone:
bun run hooks:installThe starter entrypoint preserves the legacy gateway(...) shape while using a TypeScript-native implementation.
import { gateway } from '@aaronbarnaby/ep-sdk';
const client = gateway({
client_id: process.env.EP_CLIENT_ID,
client_secret: process.env.EP_CLIENT_SECRET,
headers: {
'EP-Beta-Features': 'account-management',
},
});
const products = await client.send('/products', 'GET');
console.log(products);Supported foundation pieces today:
- Typed gateway and client factory
- Shared request factory with auth support
- Legacy-friendly config keys such as
client_id,client_secret,custom_fetch, andcustom_authenticator - Dual ESM and CJS package output
- bun:test test suite and JUnit output for CI
- CLI playground for local manual testing
The playground is a Bun CLI script intended for quick local verification outside the test suite.
bun run playgroundUseful environment variables:
EP_CLIENT_IDEP_CLIENT_SECRETEP_HOSTEP_BETA_FEATURES
The build is handled by tsup and emits:
dist/index.jsfor ESM consumersdist/index.cjsfor CommonJS consumersdist/index.d.tsfor type definitions
Publishing is handled with semantic-release from main and publishes to npm as @aaronbarnaby/ep-sdk.