tapis-typescript v1.0.0
tapis-typescript
This project creates autogenerated TypeScript types and fetch bindings for TAPIS v3 from its OpenAPI specifications.
Directory Structure
tapis-typescript
The @tapis/tapis-typescript roll up package.
example
An example project that uses @tapis/tapis-typescript from npm.
tapis-openapi
OpenAPI yml files from https://tapis-project.github.io/live-docs/
gen
Output directory of tapis-typescript npm package
transforms
Transformation scripts
utils.js: Utility functions for working with yml files
transformed_openapi
Transformation script output files
./generate.sh
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:
- Run
transforms/systems.js, which should readtapis_openapi/systems.ymland output the transformed results totransformed_openapi/systems.yml - Run the
openapi-generator-cliand pass itconfigs/systems.jsonwith an output directory ofgen/systems
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-typescriptnpm installnpm run build-servicesnpm 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-typescriptdocker build -t tapis-typescript-environment .docker run -it -v $(pwd):/src --entrypoint=bash tapis-typescript-environment(also seen inrun.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.shscript ./generate.sh pods