{"id":16014629,"url":"https://github.com/chore-dev/composer","last_synced_at":"2026-02-01T20:33:23.082Z","repository":{"id":242052405,"uuid":"793466581","full_name":"chore-dev/composer","owner":"chore-dev","description":"Single command project setup! This package automates essential tools for code style, version control, releases, and Docker.","archived":false,"fork":false,"pushed_at":"2024-12-20T06:20:49.000Z","size":228,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-29T17:09:55.929Z","etag":null,"topics":["cli","commitlint","docker","editorconfig","eslint","git","husky","lint-staged","prettier","release-it","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chore-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-29T09:22:19.000Z","updated_at":"2024-12-20T06:20:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"a3c063cc-c8aa-4aff-8d7b-8e368b014f7c","html_url":"https://github.com/chore-dev/composer","commit_stats":{"total_commits":79,"total_committers":2,"mean_commits":39.5,"dds":"0.012658227848101222","last_synced_commit":"595035496f903f48a664ee2178db92078ca428a2"},"previous_names":["chore-dev/composer"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/chore-dev/composer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chore-dev%2Fcomposer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chore-dev%2Fcomposer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chore-dev%2Fcomposer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chore-dev%2Fcomposer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chore-dev","download_url":"https://codeload.github.com/chore-dev/composer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chore-dev%2Fcomposer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28989099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T18:17:03.387Z","status":"ssl_error","status_checked_at":"2026-02-01T18:16:57.287Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","commitlint","docker","editorconfig","eslint","git","husky","lint-staged","prettier","release-it","typescript"],"created_at":"2024-10-08T15:04:25.271Z","updated_at":"2026-02-01T20:33:23.064Z","avatar_url":"https://github.com/chore-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# composer\n\nSingle command project setup! This package automates essential tools for code style, version\ncontrol, releases, and Docker.\n\n\u003e **NOTE**: This package assists in setting up the following tools. You may click the links below to\n\u003e learn more about each tool.\n\n| IDE                                       | Development                                        | Linting \u0026 Prettify                                                            | Version control                            | Deployment                                             |\n| ----------------------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------ |\n| [EditorConfig](https://editorconfig.org/) | [TypeScript](https://www.typescriptlang.org/docs/) | [ESLint](https://eslint.org/docs/latest/use/getting-started)\u003csup\u003e@8.0.0\u003c/sup\u003e | [commitlint](https://commitlint.js.org/)   | [Docker](https://docs.docker.com/)                     |\n|                                           |                                                    | [lint-staged](https://github.com/lint-staged/lint-staged)                     | [Git](https://git-scm.com/)                | [Release It](https://github.com/release-it/release-it) |\n|                                           |                                                    | [Prettier](https://prettier.io/docs/en/)                                      | [husky](https://typicode.github.io/husky/) |                                                        |\n\n\u003e **NOTE**: Currently fixed ESLint version at latest v8.0.0 due to the following reasons:\n\u003e\n\u003e - ESLint v9 contains breaking API changes\n\u003e - The eslint-plugin-react plugin is not compatible with ESLint v9\n\n## Table of Contents\n\n- [Prerequisite](#prerequisite)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Options](#options)\n  - [Preset file](#preset-file)\n- [Outputs](#outputs)\n  - [Docker](#docker)\n  - [EditorConfig](#editorconfig)\n  - [Git](#git)\n  - [Husky](#husky)\n  - [Prettier](#prettier)\n  - [release-it](#release-it)\n  - [commitlint](#commitlint)\n  - [ESLint](#eslint)\n  - [lint-staged](#lint-staged)\n  - [TypeScript](#typescript)\n\n## Prerequisite\n\nIn order to use this package, you project must meet the following requirements:\n\n- Contains a `package.json` file\n\n```bash\n# NPM\n$ npm init\n\n# PNPM\n$ pnpm init\n\n# Yarn\n$ yarn init\n```\n\n- The directory is a `git` repository (In order to set up\n  [husky](https://typicode.github.io/husky/), [commitlint](https://commitlint.js.org/),\n  [lint-staged](https://github.com/lint-staged/lint-staged), and\n  [Release It](https://github.com/release-it/release-it))\n\n```bash\n$ git init\n```\n\n## Installation\n\nInstall the package as a dev dependency:\n\n```shell\n# NPM\n$ npm install -D @chore-dev/composer\n\n# PNPM\n$ pnpm add -D @chore-dev/composer\n\n# Yarn\n$ yarn add -D @chore-dev/composer\n```\n\n## Usage\n\n1. Add the following script to your `package.json` file\n\n\u003e You may skip this step if you are using PNPM or Yarn\n\n```json\n{\n  ...\n  \"scripts\": {\n    // ...existing scripts\n    \"composer\": \"composer\"\n  },\n  ...\n}\n```\n\n2. Run the following command to start the Composer:\n\n```shell\n# NPM\n$ npm run composer [\u003coptions\u003e]\n\n# PNPM\n$ pnpm composer [\u003coptions\u003e]\nor # If you have added the script to your `package.json` file\n$ pnpm run composer [\u003coptions\u003e]\n\n# Yarn\n$ yarn composer [\u003coptions\u003e]\nor # If you have added the script to your `package.json` file\n$ yarn run composer [\u003coptions\u003e]\n```\n\n## Options\n\n| Option                  | Alias             | Description                                       | Example                  |\n| ----------------------- | ----------------- | ------------------------------------------------- | ------------------------ |\n| `--dry-run`             | `-D`              | Run the command without making any changes        |                          |\n| `--no-backup`           |                   | Skip creating backup files while running composer |                          |\n| `--preset path::string` | `-P path::string` | Use a preset file and skip all questions          | `--preset ./preset.json` |\n\n### Preset file\n\nThe preset file is a JSON file that contains the configuration for the Composer. The following is\nthe structure of the preset file:\n\n```typescript\ninterface Preset {\n  // Project environment\n  env: Record\u003c'isBrowser' | 'isNode', boolean\u003e;\n  framework: 'react' | 'vue' | 'none';\n  packageManager: 'npm' | 'pnpm' | 'yarn';\n  styleSheet: 'css' | 'scss' | 'none';\n  withSyntaxExtension: boolean;\n  // Tools\n  commitLint: Record\u003c'createConfig' | 'install' | 'integrate', boolean\u003e | false;\n  docker: Record\u003c'addIgnores', boolean\u003e | false;\n  editorConfig: Record\u003c'createConfig', boolean\u003e;\n  eslint: Record\u003c'addIgnores' | 'createConfig' | 'insertScripts' | 'install', boolean\u003e | false;\n  git: Record\u003c'addIgnores', boolean\u003e | false;\n  husky: Record\u003c'insertScripts' | 'install', boolean\u003e | false;\n  lintStaged: Record\u003c'createConfig' | 'install' | 'integrate', boolean\u003e | false;\n  prettier: Record\u003c'addIgnores' | 'createConfig' | 'insertScripts' | 'install', boolean\u003e | false;\n  releaseIt: Record\u003c'createConfig' | 'insertScripts' | 'install', boolean\u003e | false;\n  typescript: Record\u003c'createConfig' | 'install', boolean\u003e | false;\n}\n```\n\nYou may also copy the preset file from the Composer by running the following command:\n\n```shell\n# NPM\n$ npm run composer --dry-run\n\n# PNPM\n$ pnpm composer --dry-run\nor # If you have added the script to your `package.json` file\n$ pnpm run composer --dry-run\n\n# Yarn\n$ yarn composer --dry-run\nor # If you have added the script to your `package.json` file\n$ yarn run composer --dry-run\n```\n\n## Outputs\n\nComposer may generate the following files according to the tools you have selected:\n\n\u003e Click the items below to learn more about customizing them\n\n### commitlint\n\n- [commitlint.config.js](https://github.com/conventional-changelog/commitlint?tab=readme-ov-file#config)\n\n### Docker\n\n- [.dockerignore](https://docs.docker.com/build/building/context/#dockerignore-files)\n\n### EditorConfig\n\n- [.editorconfig](https://editorconfig.org/)\n\n### ESLint\n\n- [eslint.config.js](https://eslint.org/docs/latest/use/configure/configuration-files)\n\n### Git\n\n- [.gitignore](https://git-scm.com/docs/gitignore)\n\n### Husky\n\n- [.husky](https://typicode.github.io/husky/how-to.html) (Directory)\n  - [.husky/commit-msg](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)\n  - [.husky/pre-commit](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)\n\n### lint-staged\n\n- [lint-staged.config.js](https://github.com/lint-staged/lint-staged?tab=readme-ov-file#configuration)\n\n### Prettier\n\n- [.prettier.config.js](https://prettier.io/docs/en/option-philosophy)\n- [.prettierignore](https://prettier.io/docs/en/ignore)\n\n### release-it\n\n- [.release-it.json](https://github.com/release-it/release-it/blob/main/docs/configuration.md)\n\n### TypeScript\n\n- [tsconfig.json](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)\n\n[^ Back to top](#composer)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchore-dev%2Fcomposer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchore-dev%2Fcomposer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchore-dev%2Fcomposer/lists"}