Skip to content

NicolasOmar/react-key-generator

Repository files navigation

React Key Generator

A generator of random React keys using window.crypto.

Table of contents

Purpose

After working on several React-based projects integrated with SonarCloud/SonarQube quality reviews, I have noticed a pattern in the shape of a warning that requires a specific function to be solved: generating a random key for each project's children (feature used to avoid performance issues).

Now, I decided to create a simple but effective generator method that can be installed and called whenever needed, rather than implementing the whole function in each project.

Status

Npm Version Npm Bundle Size Npm Downloads Code Coverage

GitHub Repo stars GitHub commit activity GitHub last commit Semantic Commits Contributor Covenant

Project Stack

typescript dependency vitest dependency

Quick start

Several quick start options are available:

  • Clone the repo: git clone https://github.com/NicolasOmar/react-key-generator.git.
  • Install with npm: npm install @nicolasomar/react-key-generator@latest
    • Before cloning this repo, I recommend installing Node >=20.10.0 to install packages.

Documentation

It will be added shortly in the form of TypeScript comments and other useful ways.

Usage

Once the package has been installed, just call its (for now) only method, generateKey whenever you need:

import { generateKey } from "@nicolasomar/react-key-generator"

Versioning

After my previous experience with semantic-release in other projects, I decided to give the following meaning to the project's versions after v4.0.0:

  • Major versions (5.0.0, 6.0.0, and beyond) will refer to milestone achievements and significant changes that will need extra attention before the update.
  • Minor versions (4.1.0, 4.2.0, and so on) will refer to bug fixes that required several important code changes or specific new features.
  • Patch versions (4.0.1, 4.0.2, and so on) will refer to bug fixes that required small code changes or weekly dependency updates.

I will not have a roadmap for this project until I need it.

Branching

Given the mentioned release logic, main is the only static branch, and each developed feature or fix will have a unique branch with its PR and a merge commit following semantic versioning and semantic commits specifications.

Changelog

The changelog (powered by semantic-release) is regularly updated to reflect what's changed in each new release.

License

Code released under the MIT License.