Skip to content

Basketry generator for generating Typescript interfaces

License

Notifications You must be signed in to change notification settings

basketry/typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3fc1661 · Oct 6, 2024

History

84 Commits
Apr 23, 2023
Oct 6, 2024
Jan 23, 2022
Jan 23, 2022
Jan 23, 2022
Jan 23, 2022
Jan 23, 2022
Jan 23, 2022
Jan 23, 2022
Apr 2, 2023
Jan 23, 2022
Oct 6, 2024
Oct 6, 2024
Jan 23, 2022
Jan 23, 2022

Repository files navigation

main master

Typescript

Basketry generator for generating Typescript interfaces. This parser can be coupled with any Basketry parser.

Quick Start

The following example converts a "Swagger" doc into Typescript types:

  1. Save https://petstore.swagger.io/v2/swagger.json as petstore.json in the root of your project.
  2. Install packages: npm install -g basketry @basketry/swagger-2 @basketry/typescript
  3. Generate code: basketry --source petstore.json --parser @basketry/swagger-2 --generators @basketry/typescript --output src

When the last step is run, basketry will parse the source file (petstore.json) using the specified parser (@basketry/swagger-2) and then run each specified generator (in this case only @basketry/typescript) writing the output folder (src).


For contributors:

Run this project

  1. Install packages: npm ci
  2. Build the code: npm run build
  3. Run it! npm start

Note that the lint script is run prior to build. Auto-fixable linting or formatting errors may be fixed by running npm run fix.

Create and run tests

  1. Add tests by creating files with the .test.ts suffix
  2. Run the tests: npm t
  3. Test coverage can be viewed at /coverage/lcov-report/index.html

Publish a new package version

  1. Create new version
    1. Navigate to the version workflow from the Actions tab.
    2. Manually dispatch the action with the appropriate inputs
    3. This will create a PR with the new version
  2. Publish to NPM
    1. Review and merge the PR
    2. The publish workflow will create a git tag and publish the package on NPM

Generated with generator-ts-console