Skip to content

Latest commit

 

History

History
64 lines (38 loc) · 2.69 KB

README.md

File metadata and controls

64 lines (38 loc) · 2.69 KB

tapis-typescript

This project creates autogenerated TypeScript types and fetch bindings for TAPIS v3 from its OpenAPI specifications.

Directory Structure

The @tapis/tapis-typescript roll up package.

An example project that uses @tapis/tapis-typescript from npm.

OpenAPI yml files from https://tapis-project.github.io/live-docs/

Output directory of tapis-typescript npm package

Transformation scripts

  • utils.js: Utility functions for working with yml files

Transformation script output files

Generation script that accepts the name of the service as a parameter and runs the entire workflow. All files must match the service name. For example, running ./generate.sh systems will:

Visit the Wiki (!!)

[There's lots of greate information in the wiki how to create services and various transformations of the data.]https://github.com/tapis-project/tapis-typescript/wiki/Publishing-New-Services-to-@tapis-tapis-typescript

Building and Testing

The @tapis/typescript top level package locally references all of the services in the ./gen folder. These services must be built, and then the top level package can be built. To do so, do the following:

  • cd tapis-typescript
  • npm install
  • npm run build-services
  • npm run build

Then you can run npm run test

Building and Testing - In Docker

This library contains some dependencies which makes configuring your environment somewhat complicated. To alleviate this, there is a provided Docker environment to work in.

  • cd <your_path>/tapis-typescript
  • docker build -t tapis-typescript-environment .
  • docker run -it -v $(pwd):/src --entrypoint=bash tapis-typescript-environment (also seen in run.sh)
    • You might need to leave out the volume mount to run npm install due to user permissions.
  • This should mount your host's repo folder to the container's /src. Meaning all changes in the container should persists on your host.
  • Now you should be able to run npm commands and ./generate.sh script
  • ./generate.sh pods