diff --git a/README.md b/README.md index b2cb494..02e3e57 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,13 @@ [![CI/CD](https://github.com/phillipdupuis/pydantic-to-typescript/actions/workflows/cicd.yml/badge.svg)](https://github.com/phillipdupuis/pydantic-to-typescript/actions/workflows/cicd.yml) [![Coverage Status](https://coveralls.io/repos/github/phillipdupuis/pydantic-to-typescript/badge.svg?branch=master)](https://coveralls.io/github/phillipdupuis/pydantic-to-typescript?branch=master) -A simple CLI tool for converting pydantic models into typescript interfaces. Useful for any scenario in which python and javascript applications are interacting, since it allows you to have a single source of truth for type definitions. +A simple CLI tool for converting pydantic models into typescript interfaces. +It supports all versions of pydantic, with polyfills for older versions to ensure that the resulting typescript definitions are stable and accurate. -This tool requires that you have the lovely json2ts CLI utility installed. Instructions can be found here: https://www.npmjs.com/package/json-schema-to-typescript +Useful for any scenario in which python and javascript applications are interacting, since it allows you to have a single source of truth for type definitions. + +This tool requires that you have the lovely json2ts CLI utility installed. +Instructions can be found here: https://www.npmjs.com/package/json-schema-to-typescript ### Installation @@ -14,16 +18,26 @@ This tool requires that you have the lovely json2ts CLI utility installed. Instr $ pip install pydantic-to-typescript ``` ---- +### Pydantic V2 support + +If you are encountering issues with `pydantic>2`, it is most likely because you're using an old version of `pydantic-to-typescript`. +Run `pip install 'pydantic-to-typescript>2'` and/or add `pydantic-to-typescript>=2` to your project requirements. + +### CI/CD + +You can now use `pydantic-to-typescript` to automatically validate and/or update typescript definitions as part of your CI/CD pipeline. + +The github action can be found here: https://github.com/marketplace/actions/pydantic-to-typescript. +The available inputs are documented here: https://github.com/phillipdupuis/pydantic-to-typescript/blob/master/action.yml. ### CLI -| Prop | Description | -| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ‑‑module | name or filepath of the python module you would like to convert. All the pydantic models within it will be converted to typescript interfaces. Discoverable submodules will also be checked. | -| ‑‑output | name of the file the typescript definitions should be written to. Ex: './frontend/apiTypes.ts' | -| ‑‑exclude | name of a pydantic model which should be omitted from the resulting typescript definitions. This option can be defined multiple times, ex: `--exclude Foo --exclude Bar` to exclude both the Foo and Bar models from the output. | -| ‑‑json2ts‑cmd | optional, the command used to invoke json2ts. The default is 'json2ts'. Specify this if you have it installed locally (ex: 'yarn json2ts') or if the exact path to the executable is required (ex: /myproject/node_modules/bin/json2ts) | +| Prop | Description | +| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ‑‑module | name or filepath of the python module you would like to convert. All the pydantic models within it will be converted to typescript interfaces. Discoverable submodules will also be checked. | +| ‑‑output | name of the file the typescript definitions should be written to. Ex: './frontend/apiTypes.ts' | +| ‑‑exclude | name of a pydantic model which should be omitted from the resulting typescript definitions. This option can be defined multiple times, ex: `--exclude Foo --exclude Bar` to exclude both the Foo and Bar models from the output. | +| ‑‑json2ts‑cmd | optional, the command used to invoke json2ts. The default is 'json2ts'. Specify this if you have it installed locally (ex: 'yarn json2ts') or if the exact path to the executable is required (ex: /myproject/node_modules/bin/json2ts) | ---