{"id":30768663,"url":"https://github.com/krudi/shared-configs","last_synced_at":"2025-09-08T07:03:05.137Z","repository":{"id":312755492,"uuid":"1048637508","full_name":"krudi/shared-configs","owner":"krudi","description":"Shared configs for Prettier, ESLint (flat), and TypeScript to standardize formatting and linting across JavaScript/TypeScript projects (Node, React, Next.js, monorepos).","archived":false,"fork":false,"pushed_at":"2025-09-02T16:24:56.000Z","size":58,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-02T17:13:17.523Z","etag":null,"topics":["code-style","config","eslint","eslint-config","flat-config","formatter","linting","monorepo","nextjs","prettier","react","shared-config","shared-configs","tsconfig","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krudi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","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":"2025-09-01T19:16:05.000Z","updated_at":"2025-09-02T16:27:52.000Z","dependencies_parsed_at":"2025-09-02T17:13:21.100Z","dependency_job_id":null,"html_url":"https://github.com/krudi/shared-configs","commit_stats":null,"previous_names":["krudi/typescript-config","krudi/shared-configs"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/krudi/shared-configs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krudi%2Fshared-configs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krudi%2Fshared-configs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krudi%2Fshared-configs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krudi%2Fshared-configs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krudi","download_url":"https://codeload.github.com/krudi/shared-configs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krudi%2Fshared-configs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273673229,"owners_count":25147506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["code-style","config","eslint","eslint-config","flat-config","formatter","linting","monorepo","nextjs","prettier","react","shared-config","shared-configs","tsconfig","typescript"],"created_at":"2025-09-04T21:04:17.748Z","updated_at":"2025-09-07T06:03:34.347Z","avatar_url":"https://github.com/krudi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @krudi/shared-configs\n\nA collection of reusable configuration packages for Prettier,\n[ESLint](https://github.com/eslint/eslint) and\n[TypeScript](https://github.com/microsoft/TypeScript). The goal is to enforce a\nconsistent coding style, linting, and compiler setup across multiple projects\n([Node](https://github.com/nodejs/node),\n[React](https://github.com/facebook/react/),\n[Next.js](https://github.com/vercel/next.js),\n[Expo](https://github.com/expo/expo), monorepos\n([Turbo](https://github.com/vercel/turborepo))).\n\n### Quick start\n\nInstall the dependencies -\n`npm install --save-dev @krudi/prettier-config @krudi/eslint-config @krudi/typescript-config`\n\n### Packages\n\n| Package                                                                            | Description                                                                | Version                                                                                   | Additional Information                                                                                 |\n| ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |\n| [@krudi/prettier-config](https://www.npmjs.com/package/@krudi/prettier-config)     | Shared [Prettier](https://github.com/prettier/prettier) configuration      | ![NPM Version](https://img.shields.io/npm/v/@krudi/prettier-config)                        | ![NPM Downloads](https://img.shields.io/npm/dm/@krudi/prettier-config) ![NPM License](https://img.shields.io/npm/l/@krudi/prettier-config) |\n| [@krudi/eslint-config](https://www.npmjs.com/package/@krudi/eslint-config)         | Shared [ESLint](https://github.com/eslint/eslint) flat configuration       | ![NPM Version](https://img.shields.io/npm/v/@krudi/eslint-config)                          | ![NPM Downloads](https://img.shields.io/npm/dm/@krudi/eslint-config) ![NPM License](https://img.shields.io/npm/l/@krudi/eslint-config)     |\n| [@krudi/typescript-config](https://www.npmjs.com/package/@krudi/typescript-config) | Shared [TypeScript](https://github.com/microsoft/TypeScript) configuration | ![NPM Version](https://img.shields.io/npm/v/@krudi/typescript-config)                      | ![NPM Downloads](https://img.shields.io/npm/dm/@krudi/typescript-config) ![NPM License](https://img.shields.io/npm/l/@krudi/typescript-config) |\n\nEach package can be installed individually depending on your needs.\n\n#### Prettier\n\nCreate `prettier.config.mjs` (or `prettier.config.js`) in your project root and\nextend the configuration you need:\n\n```js\n// ESM\nimport base from '@krudi/prettier-config/base';\n\n/** @type {import(\"prettier\").Options} */\nexport default {\n    ...base,\n};\n\n// CommonJS\nconst base = require('@krudi/prettier-config/base');\n\n/** @type {import('prettier').Options} */\nmodule.exports = {\n    ...base,\n};\n```\n\n#### ESLint (flat config)\n\nCreate `eslint.config.mjs` (or `eslint.config.ts`) in your project root and\nextend the configuration you need:\n\n```js\nimport base from '@krudi/eslint-config/base';\nimport prettier from '@krudi/eslint-config/prettier';\nimport turbo from '@krudi/eslint-config/turbo';\n\nexport default [...base, ...prettier, ...turbo];\n```\n\n| File                          | Purpose                                                                                   |\n| ----------------------------- | ----------------------------------------------------------------------------------------- |\n| @krudi/eslint-config/base     | Base ESLint rules for general TypeScript/JavaScript projects                              |\n| @krudi/eslint-config/nextjs   | Additional rules and plugins for [Next.js](https://github.com/vercel/next.js) projects    |\n| @krudi/eslint-config/expo     | Extra configuration for [Expo](https://github.com/expo/expo) React Native projects        |\n| @krudi/eslint-config/prettier | Ensures compatibility between ESLint and [Prettier](https://github.com/prettier/prettier) |\n| @krudi/eslint-config/turbo    | Linting rules tailored for [Turborepo](https://github.com/vercel/turborepo) monorepos     |\n\n#### TypeScript\n\nCreate `tsconfig.json` in your project root and extend the configuration you\nneed:\n\n```yaml\n{\n    'extends': '@krudi/typescript-config/base.json',\n    'compilerOptions': {},\n    'exclude': ['node_modules', 'dist'],\n}\n```\n\n| File                                     | Purpose                                                                      |\n| ---------------------------------------- | ---------------------------------------------------------------------------- |\n| @krudi/typescript-config/base.json       | Base configuration for general TypeScript projects                           |\n| @krudi/typescript-config/nextjs.json     | Optimized settings for [Next.js](https://github.com/vercel/next.js) projects |\n| @krudi/typescript-config/expo.json       | Preconfigured options for [Expo](https://github.com/expo/expo) apps          |\n| @krudi/typescript-config/base.build.json | Stricter configuration for building **npm packages** and CI pipelines        |\n\n### Development\n\n1. First clone this repository and navigate into your project directory\n2. Install the dependencies: `npm install`\n3. `npm run build` - to build all packages\n4. `npm run dev` - run the [TypeScript](https://www.typescriptlang.org/) server\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrudi%2Fshared-configs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrudi%2Fshared-configs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrudi%2Fshared-configs/lists"}