| # Fetch Licenses |
| |
| A service that makes license files readable using headless Chrome. |
| |
| ### Setup |
| |
| * This project uses TypeScript and Node. |
| * Download `fnm` and run `fnm install` to install a suitable version of Node. |
| * Run `npm install` to setup dependencies. |
| * Use Visual Studio code to debug and test. |
| |
| ### Testing |
| |
| #### Local debugging |
| Run the web service locally using the provided package scripts. |
| Run `npm run-script debug` and this spins up a local web server. You can use Visual Studio code to attach to this process. |
| `nodemon` and `tsc --watch` compiles and restarts your service as you are making changes to the source code automatically in `debug` mode. |
| |
| #### Example HTTP Request |
| |
| ``` |
| curl -d '{"url": "https://opensource.org/licenses/bsd-license.php"}' -H 'Content-Type: application/json' -X POST 'http://localhost:8080/convert/licenses' |
| ``` |
| |
| ### Deploy |
| |
| * Install the `gcloud` CLI. |
| * Run `npm run-script setupGcpProject` to setup credentials. |
| * Run `npm run-script deploy` to deploy the project to App Engine. |
| |
| |
| ### Notes |
| |
| Using Puppeteer v18.2.1 only because `npm post install` scripts for Puppeteer 19.x.x have been broken for App Engine standard. |
| More context is [here](https://github.com/puppeteer/puppeteer/issues/9128). |