API response
const apiUser = { user_id: 7, full_name: 'Ada', balance: '12.50', verified: 'yes',};Framework-agnostic · TypeScript-first
ShapeWire is a type-safe transformation layer between external data and your application. Turn inconsistent responses into clean models with small functions that compose.
Transformation workbench
const apiUser = { user_id: 7, full_name: 'Ada', balance: '12.50', verified: 'yes',};const toUser = pipe( rename({ user_id: 'id', full_name: 'name', }), defaults({ role: 'viewer' }), normalize({ balance: 'number', verified: 'boolean', }),);
const user = toUser(apiUser);{ id: 7, name: 'Ada', balance: 12.5, verified: true, role: 'viewer',}The transformation layer
APIs optimize data for transport. Applications need stable shapes. ShapeWire cleans, reshapes, filters, fills, merges, and maps data before it reaches UI, state, services, or server code.
It transforms data. It does not fetch it, render UI, validate business rules, or require a state library.
Small pieces, useful together
Rename, pick, omit, default, merge, or target a nested object without changing the source response.
rename · pick · omit · defaults · merge · atTurn inconsistent dates, numbers, booleans, currencies, and domain values into predictable types.
normalize · built-ins · custom callbacksBuild one readable transform, reuse it for objects or lists, and keep transport details out of application code.
pipe · mapEach · inferred output