Mock Rules
A mock file can export a single rule or an array. Rule fields:
handler: response content or handler function (required)enabled: enable/disable the rule (defaulttrue)status: status codeheaders: response headersdelay: delay in ms
JSON / JSONC
Return JSON directly, comments and trailing commas are supported:
jsonc
{
// user profile
"id": 1,
"name": "Ada"
}TS/JS
Export an object or array:
ts
export default {
status: 201,
headers: { 'x-mock': 'ok' },
handler: { ok: true },
}Tip: you can wrap TS/JS rules with defineHandler for better IntelliSense:
ts
import { defineHandler } from 'mokup'
export default defineHandler({
status: 201,
headers: { 'x-mock': 'ok' },
handler: { ok: true },
})Array exports are supported, but each entry still uses file-based routing.
Faker integration
Use @faker-js/faker in TS/JS handlers to generate realistic mock data:
ts
import type { RequestHandler } from 'mokup'
import { faker } from '@faker-js/faker'
const handler: RequestHandler = () => ({
id: faker.string.uuid(),
name: faker.person.fullName(),
email: faker.internet.email(),
createdAt: faker.date.recent({ days: 30 }).toISOString(),
})
export default handlerTip: you can also wrap the handler with defineHandler for better IntelliSense:
ts
import type { RequestHandler } from 'mokup'
import { faker } from '@faker-js/faker'
import { defineHandler } from 'mokup'
const handler: RequestHandler = () => ({
id: faker.string.uuid(),
name: faker.person.fullName(),
email: faker.internet.email(),
createdAt: faker.date.recent({ days: 30 }).toISOString(),
})
export default defineHandler(handler)Optional: seed the generator for reproducible output (place this once in a shared module):
ts
import { faker } from '@faker-js/faker'
faker.seed(123)