zimic-http typegen
zimic-http typegen
contains commands to generate types from schema sources. This is useful to save development time,
avoid errors and keep your types consistent with specifications, such as OpenAPI.
zimic-http typegen
Generate types from schema sources.
Commands:
zimic-http typegen openapi <input> Generate types from an OpenAPI schema.
Related:
zimic-http typegen openapi
Generate types from an OpenAPI schema.
zimic-http typegen openapi <input>
Positionals:
input The path to a local OpenAPI schema file or an URL to fetch it. Version
3 is supported as YAML or JSON. [string] [required]
Options:
-o, --output The path to write the generated types to. If not provided,
the types will be written to stdout. [string]
-s, --service-name The name of the service to use in the generated types.
[string] [required]
-c, --comments Whether to include comments in the generated types.
[boolean] [default: true]
-p, --prune Whether to remove unused operations and components from
the generated types. This is useful for reducing the size
of the output file. [boolean] [default: true]
-f, --filter One or more expressions to filter the types to generate.
Filters must follow the format `<method> <path>`, where
`<method>` is an HTTP method or `*`, and `<path>` is a
literal path or a glob. Filters are case-sensitive
regarding paths. For example, `GET /users`, `* /users`,
`GET /users/*`, and `GET /users/**/*` are valid filters.
Negative filters can be created by prefixing the
expression with `!`. For example, `!GET /users` will
exclude paths matching `GET /users`. If more than one
positive filter is provided, they will be combined with
OR, while negative filters will be combined with AND.
[array]
-F, --filter-file A path to a file containing filter expressions. One
expression is expected per line and the format is the same
as used in a `--filter` option. Comments are prefixed with
`#`. A filter file can be used alongside additional
`--filter` expressions. [string]
You can use this command to generate types from a local OpenAPI file:
zimic-http typegen openapi ./schema.yaml \
--output ./schema.ts \
--service-name MyService
Or an URL to fetch it:
zimic-http typegen openapi https://example.com/api/openapi.yaml \
--output ./schema.ts \
--service-name MyService
Our OpenAPI typegen example
demonstrates how to use zimic-http typegen openapi
to generate types and use them in your application and
interceptors.
OpenAPI comments
By default, descriptions in the OpenAPI schema are included as comments in the generated types. You can omit them using
--no-comments
or --comments false
.
zimic-http typegen openapi ./schema.yaml \
--output ./schema.ts \
--service-name MyService \
--no-comments
OpenAPI pruning
By default, pruning is enabled, meaning that unused types are not generated. If you want all types declared in the
schema to be generated, use --no-prune
or --prune false
.
zimic-http typegen openapi ./schema.yaml \
--output ./schema.ts \
--service-name MyService \
--no-prune
OpenAPI filtering
You can also filter a subset of paths to generate types for. Combined with pruning, this is useful to reduce the size of the output file and only generate the types you need.
zimic-http typegen openapi ./schema.yaml \
--output ./schema.ts \
--service-name MyService \
--filter 'GET /users**'
When many filters are used, a filter file can be provided, where each line represents a filter expression and comments
are marked with #
:
# Include any endpoint starting with /users and having any HTTP method
* /users**
# Include any sub-endpoints of /posts with method GET.
GET /posts/**/*
# Include the endpoints /workspaces with methods GET, POST, or PUT.
GET,POST,PUT /workspaces
# Exclude endpoints to get user notifications
!GET /users/*/notifications/**/*
Then, use the filter file in the command:
zimic-http typegen openapi ./schema.yaml \
--output ./schema.ts \
--service-name MyService \
--filter-file ./filters.txt