Pull requests, bug reports, and all other forms of contribution are welcomed and highly encouraged!
If you encounter a problem with this library or if you have a new feature you'd like to see in this project, please create a new issue.
Please leverage the repository's own tools to make sure the code is aligned with our standards. If you're using VSCode, it's easiest to use the recommended extensions (.vscode/extensions.json
) to get integrated linting and autoformatting.
It's recommended to run all check commands before submitting the PR (type:check
, format:check
, lint:check
, spell:check
, yarn lint
and yarn test:coverage
).
- Set up yarn
- Run
yarn
- Run
yarn dev
and view the demo site at the printed localhost URL
This package uses Vite with Hot Module Replacement (HMR), so file edits should reflect immediately in your browser during local development.
To instead test a "built" version of this package which is installed into an "external" module, you can run yarn example
, which runs a server with the separate application in the example/
directory.
When a new version should be cut since some new changes have landed on the main
branch, do the following to publish it:
- Go to the
main
branch and pull in the latest changes. - Commit change using (commit convention)[https://www.conventionalcommits.org]
- Push the commit (ex:
git push origin main
) - The
release.yml
GitHub Actions workflow will auto-generate a tag, change log, release note and a PR branch - The
automerge.yml
GitHub Actions workflow will merge and delete the PR branch - The
publish.yml
GitHub Actions workflow will publish the package to the npm registry
- with yarn
- solution:
. Remove
yarn.lock
.yarn cache clean --all
. Create an emptyyarn.lock
. runyarn
- For now, linting is not working because the actual version of eslint does not support the latest Typescript So the solution is to upgrade eslint. But many eslint plugins does not support the v9 yet.
- upgrade eslint-plugin-prefer-arrow-functions using eslint v9
- upgrade eslint-config-airbnb-typescript using eslint v9