Infra SDK for Dashboard MFEs. Provides HTTP client factory, auth refresh wrapper, error normalization, React Query helpers, and base types. Does not include feature queries or mutations.
Peer deps are expected to be provided by consumers.
import { createApiClient } from '@yuno-payments/dashboard-api-sdk'
const api = createApiClient({
baseURL: 'https://api.example.com',
getToken: () => localStorage.getItem('token') || '',
timeoutMs: 15000,
headers: async () => ({
'X-Environment': 'PROD',
'x-organization-code': 'ORG',
'x-account-code': 'ACC'
})
})
const res = await api.get('/health')
import { createApiClient, wrapWithAuthRefresh } from '@yuno-payments/dashboard-api-sdk'
const api = createApiClient({ baseURL: '...' })
wrapWithAuthRefresh(api, {
refreshToken: async () => {
const token = await fetch('/auth/refresh').then(r => r.json())
localStorage.setItem('token', token.access_token)
return token.access_token
}
})
import { normalizeError } from '@yuno-payments/dashboard-api-sdk'
try {
await api.get('/protected')
} catch (e) {
const err = normalizeError(e)
if (err.kind === 'Unauthorized') {
// handle
}
}
import { makeKey, shouldRetry, defaultQueryOptions } from '@yuno-payments/dashboard-api-sdk'
import { QueryClient } from '@tanstack/react-query'
const key = makeKey('payments', 'list', { page: 1 })
const client = new QueryClient({
defaultOptions: defaultQueryOptions
})
import { Money, Pagination, DateRange } from '@yuno-payments/dashboard-api-sdk'
- SDK provides infra only: client, auth refresh, errors, React Query helpers, base types.
- Feature queries and mutations live in each MFE.
- No OpenAPI code generation; manual types and optional runtime validation in consumers if needed.
- Monetary values must not be rounded.
- Replace direct axios usage in MFEs with
createApiClient
. - Adopt
normalizeError
andshouldRetry
. - Use
makeKey
for cache key namespacing. - Move queries/mutations from the central repo into their owning MFE.
- Remove imports of deprecated central queries.