Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ppcano/new-template-typescript
https://github.com/ppcano/new-template-typescript
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/ppcano/new-template-typescript
- Owner: ppcano
- Created: 2020-10-01T09:58:06.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T14:56:45.000Z (almost 2 years ago)
- Last Synced: 2024-11-08T17:19:48.118Z (about 2 months ago)
- Language: TypeScript
- Size: 1.02 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![banner](assets/ts-js-k6.png)# Template to use TypeScript with k6
![.github/workflows/push.yml](https://github.com/k6io/template-typescript/workflows/.github/workflows/push.yml/badge.svg?branch=master)
This repository provides a scaffolding project to start using TypeScript in your k6 scripts.
## Rationale
While JavaScript is great for a myriad of reasons, one area where it fall short is type safety and developer ergonomics. It's perfectly possible to write JavaScript code that will look OK and behave OK until a certain condition forces the executor into a faulty branch.
While it, of course, still is possible to shoot yourself in the foot with TypeScript as well, it's significantly harder. Without adding much overhead, TypeScript will:
- Improve the ability to safely refactor your code.
- Improve readability and maintainablity.
- Allow you to drop a lot of the defensive code previously needed to make sure consumers are calling functions properly.## Prerequisites
- [k6](https://k6.io/docs/getting-started/installation)
- [NodeJS](https://nodejs.org/en/download/)
- [Yarn](https://yarnpkg.com/getting-started/install) (optional)## Installation
**Creating a project from the `template-typescript` template**
To generate a TypeScript project that includes the dependencies and initial configuration, navigate to the [template-typescript](https://github.com/k6io/template-typescript) page and click **Use this template**.
![](assets/use-this-template-button.png)
**Install dependencies**
Clone the generated repository on your local machine, move to the project root folder and install the dependencies defined in [`package.json`](./package.json)
```bash
$ yarn install
```## Running the test
To run a test written in TypeScript, we first have to transpile the TypeScript code into JavaScript and bundle the project
```bash
$ yarn webpack
```This command creates the final test files to the `./dist` folder.
Once that is done, we can run our script the same way we usually do, for instance:
```bash
$ k6 run dist/test1.js
```### Transpiling and Bundling
By default, k6 can only run ES5.1 JavaScript code. To use TypeScript, we have to set up a bundler that converts TypeScript to JavaScript code.
This project uses `Babel` and `Webpack` to bundle the different files - using the configuration of the [`webpack.config.js`](./webpack.config.js) file.
If you want to learn more, check out [Bundling node modules in k6](https://k6.io/docs/using-k6/modules#bundling-node-modules).