Releases: cloudflare/chanfana
Releases · cloudflare/chanfana
v2.3.0
What's Changed
- Add docs for Hono type hints
- Several typescript type improvements
- Add built-in API exception
- Add option to access url parameters while generating schemas docs here
- Improve built-in base CRUD endpoints by @G4brym in #191
Full Changelog: v2.2.0...v2.3.0
v2.2.0
What's Changed
- Add built-in CRUD base endpoints by @G4brym in #185
This is still very experimental, docs will arrive soon sneak peek here
Maintenance Changed
- Migrate to biomejs for lint and format by @G4brym in #186
- Migrate to vitest and update dependencies by @G4brym in #190
Full Changelog: v2.1.0...v2.2.0
v2.1.0
v2.0.5
v2.0.4
What's Changed
- Change type to allow docs_url, redoc_url and openapi_url to be null by @marceloverdijk in #171
Full Changelog: v2.0.3...v2.0.4
v2.0.3
v2.0.2
Library Revamp
- Rename library from itty-router-openapi to chanfana
- Refactor everything to separate routing from openapi logic
- Added support for Hono
Breaking Changes:
- removed
OpenAPIRouter()
method - removed
aiPlugin
option - removed
skipValidation
option (see new validation method bellow) itty-router
is no longer a dependency and users must manually add it to their project- validated data is no longer send in the last argument of the handler function (see new validation method bellow)
- Endpoint's
schema
is no longer a static variable - Endpoint's
schema.parameters
was renamed toschema.request
to follow zod-to-openapi structure - Endpoint
Path
parameters are now calledparams
to match the validated Data object name - Endpoint's
schema.requestBody
was renamed toschema.request.body
to follow zod-to-openapi structure - Validation no longer occurs before the endpoint's
handle
function is called, developers must manually call thegetValidatedData
to execute the data validation step- Tip: you can wrap this function call with
try {} catch (e) {}
to handle input errors, otherwise this library will return the errors in a Json response with http 400
- Tip: you can wrap this function call with
Additions:
- new
await this.getValidatedData<typeof this.schema>()
method to retrieve all validated data, when sending<typeof this.schema>
in the generic the returned value will have full typescript inference based on the schema - automatically coerce all headers, query and params inputs based on specified zod type
- new
fromIttyRouter()
instantiate method - new
fromHono()
instantiate method
Migration Guide: https://chanfana.pages.dev/user-guide/migrating-from-itty-router-openapi/
Full Changelog: v1.1.1...v2.0.2
v1.1.1
v1.1.0
What's Changed
Now you can get full type hint and type check on the data
argument of every endpoint, learn more here!
export class TaskFetch extends OpenAPIRoute {
static schema = {
parameters: {
taskSlug: Path(Str, {
description: 'Task slug',
}),
},
}
async handle(request: Request, env: any, context: any, data: DataOf<typeof TaskFetch.schema>) {
// full type hint for query, path, header, and request body parameters!
data.params.taskSlug
// ...
}
}
Full Changelog: v1.0.14...v1.1.0