Skip to content

Commit

Permalink
feat: 0.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
leomotors committed Dec 16, 2022
1 parent 07379b7 commit 6fae35d
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 49 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

All notables change for @leomotors/config will be noted here

## [0.3.0] - 2022-12-16

- experimental v3

## [0.2.0] - 2022-12-16

- should now works with basic presets
Expand Down
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
# @leomotors/config

My personal config for node projects, include ESLint Prettier and TSConfig

## Install

```bash
pnpm add -D @leomotors/config
```

Install peer dependencies too (auto-install-peers might not work here in some cases)

```bash
pnpm add -D @types/eslint@ @typescript-eslint/parser eslint-plugin-sort-destructure-keys \
@types/node eslint-config-prettier eslint \
@types/prettier eslint-plugin-import \
@typescript-eslint/eslint-plugin eslint-plugin-prettier
```

Some config require extra dependencies
10 changes: 3 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@leomotors/config",
"description": "My personal config for node projects, include ESLint Prettier and TSConfig",
"version": "0.2.0",
"version": "0.3.0",
"license": "MIT",
"author": {
"name": "Nutthapat Pongtanyavichai",
Expand All @@ -21,8 +21,7 @@
],
"exports": {
"./eslint": "./dist/eslint.js",
"./prettier": "./dist/prettier/index.js",
"./prettier/importOrders": "./dist/prettier/importOrders.js"
"./prettier": "./dist/prettier/index.js"
},
"typesVersions": {
"*": {
Expand All @@ -31,17 +30,14 @@
],
"prettier": [
"./dist/prettier/index.d.ts"
],
"prettier/importOrders": [
"./dist/prettier/importOrders.d.ts"
]
}
},
"scripts": {
"build": "tsc",
"lint": "eslint src",
"format": "eslint src --fix",
"prepack": "rm -rf dist && pnpm build"
"prepack": "rm -rf dist && pnpm build && pnpm lint"
},
"devDependencies": {
"@ianvs/prettier-plugin-sort-imports": "^3.7.1",
Expand Down
12 changes: 6 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 1 addition & 5 deletions src/eslint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,8 @@ export function reactConfig({ reactVersion }: ReactConfigOptions = {}) {
assertDeps(["eslint-plugin-react"]);

return {
..._config,
plugins: [..._config.plugins, "react"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
],
rules: {
..._config.rules,
"react/jsx-sort-props": [
Expand Down
31 changes: 31 additions & 0 deletions src/prettier/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { PrettierConfig, SortImportsConfig, assertDeps } from "../utils";

import { orderDefault } from "./importOrders";

export function config() {
return {
bracketSpacing: true,
tabWidth: 2,
useTabs: false,
singleQuote: false,
semi: true,
printWidth: 80,
} satisfies PrettierConfig;
}

interface WithSortImportsOptions {
importOrder?: string[];
}

export function withSortImports({ importOrder }: WithSortImportsOptions = {}) {
assertDeps(["@ianvs/prettier-plugin-sort-imports"]);

return {
...config(),
plugins: ["@ianvs/prettier-plugin-sort-imports"],
importOrder: importOrder ?? orderDefault,
importOrderSeparation: true,
importOrderSortSpecifiers: true,
importOrderParserPlugins: ["typescript", "decorators-legacy", "jsx"],
} satisfies SortImportsConfig;
}
33 changes: 2 additions & 31 deletions src/prettier/index.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,2 @@
import { assertDeps, PrettierConfig, SortImportsConfig } from "../utils";

import { orderDefault } from "./importOrders";

export function config() {
return {
bracketSpacing: true,
tabWidth: 2,
useTabs: false,
singleQuote: false,
semi: true,
printWidth: 80,
} satisfies PrettierConfig;
}

interface WithSortImportsOptions {
importOrder?: string[];
}

export function withSortImports({ importOrder }: WithSortImportsOptions = {}) {
assertDeps(["@ianvs/prettier-plugin-sort-imports"]);

return {
...config(),
plugins: ["@ianvs/prettier-plugin-sort-imports"],
importOrder: importOrder ?? orderDefault,
importOrderSeparation: true,
importOrderSortSpecifiers: true,
importOrderParserPlugins: ["typescript", "decorators-legacy", "jsx"],
} satisfies SortImportsConfig;
}
export * from "./config";
export * from "./importOrders";

0 comments on commit 6fae35d

Please sign in to comment.