Client-side request switching and adapters for mokup.
npm install @mokup/clientClient-side request switching utilities and adapters for Mokup.
``bash`
pnpm add @mokup/client
`ts
import { createFetchAdapter, createMockResolver } from '@mokup/client'
const resolver = createMockResolver({
mockBase: 'http://localhost:3300',
realBase: 'https://api.example.com',
pathMap: [{ from: '/api/', to: '/' }],
markers: { header: true },
})
const mokupFetch = createFetchAdapter({ resolver })
await mokupFetch('/api/users', { mock: true })
`
`ts
import { applyMokupToAxios } from '@mokup/client'
import axios from 'axios'
const api = axios.create({ baseURL: 'https://api.example.com' })
applyMokupToAxios(api, {
resolverOptions: {
mockBase: 'http://localhost:3300',
realBase: 'https://api.example.com',
pathMap: [{ from: '/api/', to: '/' }],
},
})
await api.request({ url: '/api/users', mock: true })
`
- mockBase: mock server origin or base pathrealBase
- : real API origin or base pathpathMap
- : prefix rewrite rules (/api/ -> /)allowHosts
- : only rewrite matching hostsmarkers
- : inject headers or query markers (x-mokup, __mokup)storage
- : persist global toggle (optional)
Order (highest to lowest):
1. Request mock or meta.mokupsetUseMock
2. Headers/cookie/query markers
3. Global resolverOptions.env.useMock
4.
`ts
const resolver = createMockResolver({ mockBase, realBase })
resolver.setUseMock(true)
const useMock = resolver.getUseMock()
``