open-index/open-npm huggingface dataset:
npm package: @jbrems/context-helper
Description: Daisy chained helper methods for the CanvasRenderingContext2D
Author: Jonas Brems
Latest version: 0.1.0

# <img src="logo.png" alt="logo" height="100" style="margin-bottom: -25px;"> context-helper
**Daisy chained helper methods for the Canvas 2D context.**

```html
  <canvas id="myCanvas" width="100" height="100"></canvas>
```
```javascript
  const canvas = document.getElementById('myCanvas')
  const ctx = new ContextHelper(canvas.getContext('2d'))

  // Tripod
  ctx.setLineWidth(8).setLineCap('round').setLineJoin('round').setStrokeStyle('#2B2B2B').setFillStyle('#C47A3D')
  ctx.beginPath().roundRect(93, 20, 12, 150, 4).stroke().fill()
  ctx.translate(70, 110).rotateDegrees(10).beginPath().roundRect(-6, -80, 12, 160, 4).stroke().fill()
  ctx.resetTransform().translate(128, 110).rotateDegrees(-10).beginPath().roundRect(-6, -80, 12, 160, 4).stroke().fill()
  ctx.resetTransform().translate(100, 130).beginPath().roundRect(-70, -6, 140, 12, 4).stroke().fill()

  // Canvas
  ctx.resetTransform().translate(100, 84).beginPath().roundRect(-60, -40, 120, 80, 4).stroke('#2B2B2B').fill('white')

  // Bracket
  ctx.setLineWidth(6)
  ctx.resetTransform().translate(50, 88).beginPath().moveTo(10, -10).lineTo(0, 0).lineTo(10, 10).stroke('#F35050')
  
  // c
  ctx.translate(34, 0).beginPath().arc(0, 0, 12, 0.25 * Math.PI, 1.75 * Math.PI, false).stroke('#2D8EFF')

  // h
  ctx.translate(22, 0).beginPath().moveTo(0, 12).lineTo(0, -24).moveTo(0, 2).arc(10, 2, 10, Math.PI, 0, false).lineTo(20, 12).stroke('#3DBA73')
  
  // Bracket
  ctx.resetTransform().translate(150, 88).beginPath().moveTo(-10, -10).lineTo(0, 0).lineTo(-10, 10).stroke('#F35050')
    
```
Creates this awesome logo:  
<img src="logo.png" alt="Context-helper logo" />
npm package: @jbrems/logger
Description: A simple Winston logger instance for personal use.
Author: Jonas Brems
Latest version: 1.1.1

# @jbrems/logger
A simple Winston logger instance for personal use. Writes logs to the console.

## ♻ Use
1. Add the `@jbrems/logger` package to your npm project
   ```javascript
   yarn add @jbrems/logger
   ```
2. Import the logger instance in your code
   ```typescript
   import { logger } from '@jbrems/logger';
   logger.info('My first info message');
   ```
   will produce `YYYY-MM-DD HH:mm:ss.SSS +ms   info My first info message`  
   or provide a label for your logger
   ```javascript
   import { getLogger } from '@jbrems/logger';
   const logger = getLogger('Bookservice 📚');
   logger.debug('Fetching books from series Harry Potter...');
   ```
   will produce `YYYY-MM-DD HH:mm:ss.SSS +ms   [Bookservice 📚] debug Fetching books from series Harry Potter...`

## 🎁 Contribute

### 🎀 eslint
This project relies on `eslint` to enforce code quality. It is advised to enable
`Run eslint --fix on save` in `Settings > Language & Frameworks > Javascript > 
Code Quality Tools > ESLint`.

[Read more here](https://github.com/jbrems/docs/blob/master/project-setup.md#-eslint)

### 🏗 Build
To compile the Typescript code to Javascript run the `yarn build` command.
This command will compile all `.ts` files in the `src` folder to `.js` files in the 
`dist` folder and will generate type definitions.

> This command will run eslint before compiling the code.

### 📦 Publish
To publish this package to NPM run `yarn publish`.  

> This command will run the build command before publishing.

> I you are not logged in to npm use `npm login`.

### 🃏 Test
To run the Jest unit tests for this project run `yarn test`.

> The `jest` command will be run with `--verbose` to force Jest to write to stdout.