Giter VIP home page Giter VIP logo

ts-dev-tools's Introduction

Homepage

npm Continuous integration Code coverage License: MIT PRs Welcome Sponsor GitHub stars


Welcome to ts-dev-tools ๐Ÿ› ๏ธ

Opinionated and advisable packages to configure tools to develop a Typescript project


Why ts-dev-tools ?

1. Aims to provide a first-class developper experience

Install ts-dev-tools and your project is dev ready, no more installation or setup, it just works

2. A fine tuned collection of tools and configuration ready for a realworld project

Within the dozen of existing packages, ts-dev-tools uses a short list of consistent libraries and their recommanded configuration. ts-dev-tools is used by various real world projects to be run in production, so its toolset is effective and meets industry standards.

3. Stable and secure

For every changes and dependency update, ts-dev-tools is:

3. One package to rule them all, one dependency to keep up to date

Dependencies are updated all weeks in order to keep dev tools up to date agains security issues and to give access to the latest available feature.

Using ts-dev-tools you should just have to update it and you'll have all the dev dependencies used by ts-dev-tools, up to date !

Usage

1. Choose the plugin that fits with you need

Name Description
@ts-dev-tools/core Common Typescript tools (Eslint and prettier, lint-staged and pretty-quick)
@ts-dev-tools/react Dev tools for a for ReactJS project

2. Install

Example with plugin @ts-dev-tools/core, replace @ts-dev-tools/core by the plugin you want to use

npm install --include=dev @ts-dev-tools/core

Or

yarn add --dev @ts-dev-tools/core

3. Enable ts-dev-tools

npx ts-dev-tools install

Or

yarn ts-dev-tools install

โš ๏ธ If your package is not private and you're publishing it on a registry like npmjs.com, you need to disable postinstall script using pinst. Otherwise, postinstall will run when someone installs your package and result in an error.


Author

๐Ÿ‘ค Escemi [email protected]

๐Ÿค Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide and Contributor Code of Conduct.

Show your support

Give a โญ๏ธ if this project helped you!

๐Ÿ“ License

This project is MIT licensed.

ts-dev-tools's People

Contributors

dependabot[bot] avatar neilime avatar snyk-bot avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

ts-dev-tools's Issues

This is a workaround for having workflow actions. See https://github.com/orgs/co...

https://api.github.com/escemi-tech/ts-dev-tools/blob/86fff4cfdbdcd502ed98eda99961595fac09ed1f/.github/workflows/__shared-ci.yml#L8

name: Shared - Continuous Integration for common tasks

on:
  workflow_call:

jobs:
  continuous-integration:
    # FIXME: This is a workaround for having workflow actions. See https://github.com/orgs/community/discussions/38659
    permissions:
      id-token: write
      contents: read
      security-events: write
    uses: hoverkraft-tech/ci-github-nodejs/.github/workflows/[email protected]
    with:
      build: '{"artifact":"packages/*/dist"}'

ts-dev-tools is not available when @ts-dev-tools/react is installed in a monorepo package

Describe the bug

ts-dev-tools does not exist in monorepo package node_module/bin directory
It works when installing @ts-dev-tools/core

To Reproduce
Steps to reproduce the behavior:

  1. In a fresh monorepo package
  2. Run yarn install @ts-dev-tools/react
  3. Run yarn ts-dev-tools
  4. See error error Command "ts-dev-tools" not found.

Expected behavior

Should execute ts-dev-tools bin:

$ /home/test/monorepo-project/packages/test/node_modules/.bin/ts-dev-tools
Usage
    ts-dev-tools install [path from project root]

Add typescript as dev dependency

Is your feature request related to a problem? Please describe.

Add typescript as dev dependency so projects using ts-dev-tools will not have to require it anymore

Support @commitlint/config-nx-scopes if project is using nx

Is your feature request related to a problem? Please describe.
Yes, the problem arises when working in projects that utilize NX (Nrwl Extensions). Currently, if @commitlint/config-nx-scopes is not included in the commitlint configuration of an NX project, developers might face inconsistencies and missed scope validations, leading to less disciplined commit messages. This can disrupt project tracking and clarity, particularly in larger teams.

Describe the solution you'd like
I would like the system to automatically check if a project is using NX and if so, integrate @commitlint/config-nx-scopes into the commitlint configuration. This would ensure that all NX scopes are validated correctly, improving commit message quality and compliance with project conventions.

Describe alternatives you've considered
An alternative would be to manually update each NX project's commitlint configuration to include @commitlint/config-nx-scopes. However, this manual step is prone to human error and might be overlooked in large teams or multiple project environments.

Additional context
This integration should include a dynamic package installation feature where, if the project is identified as using NX, @commitlint/config-nx-scopes would be automatically installed and configured. This could be a part of the initial setup or a dedicated script that runs checks and updates configurations accordingly. Here is a link to the official documentation which might be helpful in understanding the scope and usage of @commitlint/config-nx-scopes: commitlint config-nx-scopes documentation.

TODO:

  • The system should verify if NX is installed in the project. If so, it should automatically add @commitlint/config-nx-scopes to the commitlint configuration.
  • It must be capable of dynamically installing packages: if the project is confirmed to be using NX, it should automatically install @commitlint/config-nx-scopes.

Improve e2e tests

  • Separate test by packages
  • Use real typescript app for core package
  • Use create react app for testing react package

Supports package manager

Is your feature request related to a problem? Please describe.

  • Instead of hardcoding yarn, use current package manager (npm or yarn)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.