Mimlet
banner
mimletdev.bsky.social
Mimlet
@mimletdev.bsky.social
TypeScript test-data toolkit. Build from schemas or factories, connect fixtures explicitly, and replay property failures with fast-check. Alpha.

https://jeffreynijs.github.io/mimlet/
Mimlet's first beta is out: 0.1.0-beta.0, and a plain npm install gets it.

New: long enum values and UTC date-times generate as they should, and every error code is documented.

Try it, tell us what's confusing:
npm i -D @mimlet/zod zod
jeffreynijs.github.io/mimlet/guide/beta-feedback

#TypeScript
October 3, 2026 at 12:42 PM
npm only warns about an unsupported peer. Then your test fails deep inside effect.

npx mimlet doctor names the cause: @mimlet/effect supports effect 3.22.2, but 4.0.0 is installed. --json gives agents stable codes.

npm i -D @mimlet/codegen
jeffreynijs.github.io/mimlet/guide/cli-diagnostics
October 2, 2026 at 5:37 PM
ArkType rules in, valid fixtures out.

fromArkType(User) samples values that satisfy every rule, like 'string.email'.

Break one and you get ArkType's own message: age must be at least 18 (was 15).

npm i -D @mimlet/arktype [email protected]
jeffreynijs.github.io/mimlet/guide/zod-and-arktype
October 2, 2026 at 3:30 PM
New in alpha.2: named setters, no builder file.

const users = fluent(fromZod(User), ['name'])
users.withName('Ada').build()

Pick the fields you want. The setters use your schema's input types.

npm i -D @mimlet/core @mimlet/zod
jeffreynijs.github.io/mimlet/guide/fluent-builders
October 2, 2026 at 11:34 AM
Our tiny mimic got noticed by Chiitan 🥹

Thanks for the like, @chiitan.love!
October 1, 2026 at 1:55 PM
3/3 With JSON Schema, this demo deliberately changes quantity 9 to 0. Mimlet checks for exactly one observed minimum issue at /quantity, and rejects mismatched results.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:44 PM
2/3 With Valibot, build() produces the input fixture: age "42". buildValidated() runs native parsing and returns numeric age 42, with the transform applied once.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:43 PM
1/3 With TypeBox, a delivery-to-pickup switch needs the whole union branch. Mimlet’s fromTypeBoxVariant() selects that shape, including pickupCode, and native validation checks the result.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:41 PM
7/7 A checkout bug, a smaller failing case, a fix, then a regression test.

This demo uses fast-check for generation and shrinking. Mimlet keeps declared fixture relationships together as cases are rebuilt.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:20 PM
6/7 Using Hey API? The separate hey-api-builders v3 alpha integration adds fluent overrides to generated model fixtures.

This demo covers model definitions and an explicit admin override.

Mimlet ecosystem
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:19 PM
5/7 Generate a typed builder from a factory. Use a fluent override for the admin case, then check whether the generated file has drifted.

The demo keeps source generation separate from building fixtures. Check mode does not rewrite files.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:18 PM
4/7 Build a mock request from an operation: path params, JSON body, method and headers.

This demo validates the runtime envelope and serializes a PATCH request locally. It does not send it.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:16 PM
3/7 One fixture recipe can feed a preview loader and an HTTP response resolver. Matching fresh seeded sessions produce matching values in independent objects.

This demo builds the response locally; it makes no network request.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:13 PM
2/7 Found a failing property? Save its replay record.

fast-check supplies seed/path replay. Mimlet checks the recipe context you provide before running it again. Keep the original source and predicate too.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:12 PM
1/7 From a Zod schema to a test fixture, then an admin variant. The original recipe stays unchanged.

Use buildValidated() when you want native Zod validation. Explicit invalid overrides are rejected, not repaired.

Mimlet alpha
jeffreynijs.github.io/mimlet/
October 1, 2026 at 1:10 PM
A checkout fixture changes customer, but its order still points at the old ID.

Mimlet makes those dependencies explicit, so new builds stay coherent. Start from schemas or factories; explore and replay cases with fast-check.

Alpha 0.1.0-alpha.2
jeffreynijs.github.io/mimlet/
October 1, 2026 at 12:59 PM