diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6313b56 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 456ec29..0f1b5be 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,36 +1,41 @@ --- name: 🐛 Bug about: Found an issue in our library? Report it here to help us improve! -title: "Bug: " -labels: "Bug, Needs Triage" -assignees: "" +title: 'Bug: ' +labels: 'Bug, Needs Triage' +assignees: '' --- ### Checks + + - [ ] This is not a duplicate of an existing issue (please have a look through our [open issues list](https://github.com/nativeflowteam/nativeflowcss/issues) to make sure) - [ ] I have thoroughly read and understand [Contributing Guide](https://github.com/nativeflowteam/nativeflowcss/blob/main/CONTRIBUTING.md) - [ ] Would you like to work on this issue? ### Describe the bug + ### To Reproduce + -### (optional) How *if it does* break UI +### (optional) How _if it does_ break UI ->Images +> Images ### (Optional) Additional Comments -*No response* +_No response_ ### (Optional) Discord username + -*No response* +_No response_ diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md index e0bef3c..68573ee 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ b/.github/ISSUE_TEMPLATE/enhancement.md @@ -1,31 +1,37 @@ --- name: 🚀 Enhancement/Feature Request about: Suggest an enhancement or feature for our library to help us improve! -title: "Enhancement: " -labels: "Enhancement, Needs Triage" -assignees: "" +title: 'Enhancement: ' +labels: 'Enhancement, Needs Triage' +assignees: '' --- ### Checks + + - [ ] This is not a duplicate of an existing issue (please have a look through our [open issues list](https://github.com/nativeflowteam/nativeflowcss/issues) to make sure) - [ ] I have thoroughly read and understand [Contributing Guide](https://github.com/nativeflowteam/nativeflowcss/blob/main/CONTRIBUTING.md) - [ ] Would you like to work on this enhancement? ### Describe the enhancement + ### Describe the solution you'd like + ### Describe alternatives you've considered + ### (Optional) Additional Comments -*No response* +_No response_ ### (Optional) Discord username + -*No response* +_No response_ diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ad9173e..7f08fa7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,12 +1,15 @@ ## Because + ## This PR + ## Issue + + Closes #XXXXX ## Additional Information + -*No response* + +_No response_ ### (Optional) Discord username + -*No response* + +_No response_ ## Pull Request Requirements + + - [ ] I have thoroughly read and understand [Contributing Guide](https://github.com/nativeflowteam/nativeflowcss/blob/main/CONTRIBUTING.md) - [ ] The title of this PR follows the `location of change: brief description of change` format, e.g. `Sizing: Add padding support` - [ ] The `Because` section summarizes the reason for this PR diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml deleted file mode 100644 index 9024928..0000000 --- a/.github/actions/setup/action.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Setup -description: Setup Node.js and install dependencies - -runs: - using: composite - steps: - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version-file: .nvmrc - - - name: Cache dependencies - id: npm-cache - uses: actions/cache@v3 - with: - path: | - **/node_modules - key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }}-${{ hashFiles('**/package.json', '!node_modules/**') }} - restore-keys: | - ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }} - ${{ runner.os }}-npm- - - - name: Install dependencies - run: npm install - shell: bash diff --git a/.github/labeler.yml b/.github/labeler.yml index 9c0dfad..ec1e051 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,29 +1,29 @@ -"Spacing": - - "src/spacing/*" +'Spacing': + - 'src/spacing/*' -"Flexbox": - - "src/flexbox/*" +'Flexbox': + - 'src/flexbox/*' -"Border": - - "src/border/*" +'Border': + - 'src/border/*' -"Typography": - - "src/typography/*" +'Typography': + - 'src/typography/*' -"Layout": - - "src/layout/*" +'Layout': + - 'src/layout/*' -"Effects": - - "src/effects/*" +'Effects': + - 'src/effects/*' -"Sizing": - - "src/sizing/*" +'Sizing': + - 'src/sizing/*' -"Transforms": - - "src/transforms/*" +'Transforms': + - 'src/transforms/*' -"Shadow": - - "src/shadow/*" +'Shadow': + - 'src/shadow/*' -"CI": - - ".github/**/*" +'CI': + - '.github/**/*' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f097f74..db82975 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,5 @@ name: CI + on: push: branches: @@ -12,13 +13,19 @@ on: jobs: lint: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm - - name: Setup - uses: ./.github/actions/setup + - name: Install dependencies + run: npm ci - name: Lint files run: npm run lint @@ -27,25 +34,37 @@ jobs: run: npm run typecheck test: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Setup - uses: ./.github/actions/setup + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci - name: Run unit tests run: npm test -- --maxWorkers=2 --coverage build-library: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm - - name: Setup - uses: ./.github/actions/setup + - name: Install dependencies + run: npm ci - name: Build package - run: npm run prepare + run: npm run build diff --git a/.prettierrc b/.prettierrc index 83354f7..7bdf0c6 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,9 +1,10 @@ { "quoteProps": "consistent", "singleQuote": true, + "printWidth": 2000, "tabWidth": 2, "trailingComma": "es5", "useTabs": false, - "endOfLine": "auto", + "endOfLine": "lf", "semi": true } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac41428..7802338 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,12 +21,12 @@ Before you begin working on anything, make sure you follow these steps in order 2. Clone the forked repo to your local machine with one of the commands below. You can also read the GitHub documentation on [cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository). - ```bash - # If you have SSH set up with Git: - git clone git@github.com:nativeflowteam/nativeflowcss.git - # Otherwise for HTTPS: - git clone https://github.com/nativeflowteam/nativeflowcss.git - ``` + ```bash + # If you have SSH set up with Git: + git clone git@github.com:nativeflowteam/nativeflowcss.git + # Otherwise for HTTPS: + git clone https://github.com/nativeflowteam/nativeflowcss.git + ``` 3. `cd` into the directory of your local clone, remember to always pull the `main` branch before you branch out from it to continue working on other sections' respective branches. @@ -36,14 +36,14 @@ Once you have the repo cloned, and the local environment has been set, you can b 1. Create a new branch, replacing the `` with an actual branch name that briefly explains the purpose of the branch in some way: - ```bash - git checkout -b + ```bash + git checkout -b - # Some examples: - git checkout -b docs_update - git checkout -b shadow_nits - git checkout -b size_value_update - ``` + # Some examples: + git checkout -b docs_update + git checkout -b shadow_nits + git checkout -b size_value_update + ``` 2. Add commits as you work on your issue, replacing the `` text with your actual commit message: @@ -55,40 +55,41 @@ Once you have the repo cloned, and the local environment has been set, you can b ``` 3. Sync your local environment every often so that you don't lose on any newer progress. - - Firstly sync your fork with the latest added commits using GitHub GUI. + - Firstly sync your fork with the latest added commits using GitHub GUI. - ![update-pulls](./assets/update-branch.png) + ![update-pulls](./assets/update-branch.png) - - Then pull those changes into your cloned repository. + - Then pull those changes into your cloned repository. - ```bash - git pull - ``` + ```bash + git pull + ``` 4. Push your branch to our repo, replacing the `` with the branch you've been working on locally: - ```bash - git push origin + ```bash + git push origin - # An example: - git push origin size_fix - ``` + # An example: + git push origin size_fix + ``` #### Opening a Pull Request 1. After pushing your changes, go to our repo on GitHub and click the "Compare & pull request" button. If you have multiple of these buttons, be sure you click the one for the correct branch. - If you don't see this button, you can click the branch dropdown menu and then select the branch you just pushed from your local clone: - ![GitHub branch dropdown menu](./assets/main-branch.png) + ![GitHub branch dropdown menu](./assets/main-branch.png) + - Once you have switched to the correct branch on GitHub, click the "Contribute" dropdown and click the "Open pull request" button. 2. Fill the PR template summarising all new additions to your repositories, don't directly merge without a review by maintainers. 3. After your PR has been merged, delete it on the repo, just below the merged notification in the PR, there's an option to delete it, also delete that branch in your local environment and checkout to main to pull the updates. - ```bash - git branch -D branch_name - git checkout main && git pull # pull only works if you synced your fork with main repo - ``` + ```bash + git branch -D branch_name + git checkout main && git pull # pull only works if you synced your fork with main repo + ``` **Thanks for contributing to our repo, Happy Coding <3 !** diff --git a/README.md b/README.md index 78f0ef5..43a239f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- Tailwind-inspired utility-first style objects for React Native, zero-deps && zero-setup, plug-n-play +Tailwind-inspired utility-first style objects for React Native, zero-deps && zero-setup, plug-n-play

@@ -25,7 +25,7 @@ npm install nativeflowcss ## Description - A utility-first styling object library tailored for React Native, offering a rich set of utilities such as `justify.center`, `m.b_(4)`, and `bdr.color_slate_200`. These utilities can be composed to create any design, similar to the approach used by Tailwind. +A utility-first styling object library tailored for React Native, offering a rich set of utilities such as `justify.center`, `m.b_(4)`, and `bdr.color_slate_200`. These utilities can be composed to create any design, similar to the approach used by Tailwind. ## Documentation diff --git a/eslint.config.js b/eslint.config.js index e6c9c47..19c52ed 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,25 +1,25 @@ -import tseslint from "@typescript-eslint/eslint-plugin"; -import tsparser from "@typescript-eslint/parser"; -import prettier from "eslint-plugin-prettier"; -import eslintConfigPrettier from "eslint-config-prettier"; +import tseslint from '@typescript-eslint/eslint-plugin'; +import tsparser from '@typescript-eslint/parser'; +import prettier from 'eslint-plugin-prettier'; +import eslintConfigPrettier from 'eslint-config-prettier'; export default [ { - files: ["**/*.ts"], + files: ['**/*.ts'], languageOptions: { parser: tsparser, }, plugins: { - "@typescript-eslint": tseslint, + '@typescript-eslint': tseslint, prettier, }, rules: { ...tseslint.configs.recommended.rules, ...eslintConfigPrettier.rules, - "prettier/prettier": "error", + 'prettier/prettier': 'error', }, }, { - ignores: ["lib/**", "node_modules/**"], + ignores: ['lib/**', 'node_modules/**'], }, ]; diff --git a/src/index.ts b/src/index.ts index b563823..3433b89 100644 --- a/src/index.ts +++ b/src/index.ts @@ -35,26 +35,4 @@ import size from './sizing/size'; import text from './typography/text'; import decoration from './typography/decoration'; -export { - p, - m, - aspect, - object_fit, - display, - direction, - pos, - z, - overflow, - flex, - align, - justify, - place, - bdr, - fx, - shadow, - h, - w, - size, - text, - decoration, -}; +export { p, m, aspect, object_fit, display, direction, pos, z, overflow, flex, align, justify, place, bdr, fx, shadow, h, w, size, text, decoration }; diff --git a/src/layout/position.ts b/src/layout/position.ts index 49bdc8d..9a902b5 100644 --- a/src/layout/position.ts +++ b/src/layout/position.ts @@ -40,10 +40,7 @@ const pos: { absolute: { position: string }; fixed: { position: string }; sticky: { position: string }; - [key: string]: - | PositionValue - | { position: string } - | ((value: number) => PositionValue); + [key: string]: PositionValue | { position: string } | ((value: number) => PositionValue); } = { // Position properties relative: { position: 'relative' }, diff --git a/src/spacing/margin.ts b/src/spacing/margin.ts index 48dacd4..d945226 100644 --- a/src/spacing/margin.ts +++ b/src/spacing/margin.ts @@ -34,8 +34,9 @@ const marginValues: { [key: string]: number } = { '96': 384, }; -const getMarginValue = (key: string | number): number => { +const getMarginValue = (key: string | number): number | 'auto' => { if (typeof key === 'number') return key; + if (key === 'auto') return 'auto'; const value = marginValues[key] ?? parseInt(key, 10); if (isNaN(value)) throw new Error(`Invalid margin key: ${key}`); return value; @@ -47,9 +48,9 @@ const generateMargin = (type: string, key: string | number): Margin => { case 'm': return { margin: value }; case 'mx': - return { marginLeft: value, marginRight: value }; + return { marginHorizontal: value }; case 'my': - return { marginTop: value, marginBottom: value }; + return { marginVertical: value }; case 'mt': return { marginTop: value }; case 'mb': @@ -67,26 +68,59 @@ const generateMargin = (type: string, key: string | number): Margin => { } }; -const m: Record Margin)> = {}; +// prettier-ignore +const m: Record) => Margin)> = {}; -Object.keys(marginValues).forEach((key) => { +const allMarginKeys = [...Object.keys(marginValues), 'auto']; + +allMarginKeys.forEach((key) => { ['m', 'mx', 'my', 'mt', 'mr', 'mb', 'ml', 'ms', 'me'].forEach((type) => { m[`${type}_${key}`] = generateMargin(type, key); }); }); ['m', 'mx', 'my', 'mt', 'mr', 'mb', 'ml', 'ms', 'me'].forEach((type) => { + if (type === 'm') { + m[`${type}_`] = (...keys: Array): Margin => { + if (keys.length === 1) return generateMargin(type, keys[0]); + if (keys.length === 2) { + const vertical = getMarginValue(keys[0]); + const horizontal = getMarginValue(keys[1]); + return { marginVertical: vertical, marginHorizontal: horizontal }; + } + if (keys.length === 4) { + const top = getMarginValue(keys[0]); + const right = getMarginValue(keys[1]); + const bottom = getMarginValue(keys[2]); + const left = getMarginValue(keys[3]); + return { + marginTop: top, + marginRight: right, + marginBottom: bottom, + marginLeft: left, + }; + } + throw new Error('m_ expects 1, 2, or 4 values'); + }; + return; + } + m[`${type}_`] = (key: string | number): Margin => generateMargin(type, key); }); // Example usage // const marginStyle = m.m_1; // { margin: 4 } -// const marginHorizontalStyle = m.mx_1; // { marginLeft: 4, marginRight: 4 } -// const marginVerticalStyle = m.my_1; // { marginTop: 4, marginBottom: 4 } +// const marginHorizontalStyle = m.mx_1; // { marginHorizontal: 4 } +// const marginVerticalStyle = m.my_1; // { marginVertical: 4 } // const marginTopStyle = m.mt_1; // { marginTop: 4 } // const marginBottomStyle = m.mb_1; // { marginBottom: 4 } // const marginRightStyle = m.mr_1; // { marginRight: 4 } // const marginLeftStyle = m.ml_1; // { marginLeft: 4 } // const customMarginStyle = m.m_(1000); // { margin: 1000 } +// const customVerticalStyle = m.m_(8, 16); // { marginTop: 8, marginBottom: 16 } +// const customAllSidesStyle = m.m_(4, 8, 12, 16); // { marginTop: 4, marginRight: 8, marginBottom: 12, marginLeft: 16 } +// const autoMarginStyle = m.m_auto; // { margin: 'auto' } +// const autoHorizontalStyle = m.mx_auto; // { marginHorizontal: 'auto' } +// const autoVerticalStyle = m.my_auto; // { marginVertical: 'auto' } export default m; diff --git a/src/spacing/padding.ts b/src/spacing/padding.ts index 44076d2..47559b0 100644 --- a/src/spacing/padding.ts +++ b/src/spacing/padding.ts @@ -34,8 +34,9 @@ const paddingValues: { [key: string]: number } = { '96': 384, }; -const getPaddingValue = (key: string | number): number => { +const getPaddingValue = (key: string | number): number | 'auto' => { if (typeof key === 'number') return key; + if (key === 'auto') return 'auto'; const value = paddingValues[key] ?? parseInt(key, 10); if (isNaN(value)) throw new Error(`Invalid padding key: ${key}`); return value; @@ -47,9 +48,9 @@ const generatePadding = (type: string, key: string | number): Padding => { case 'p': return { padding: value }; case 'px': - return { paddingLeft: value, paddingRight: value }; + return { paddingHorizontal: value }; case 'py': - return { paddingTop: value, paddingBottom: value }; + return { paddingVertical: value }; case 'pt': return { paddingTop: value }; case 'pb': @@ -67,26 +68,59 @@ const generatePadding = (type: string, key: string | number): Padding => { } }; -const p: Record Padding)> = {}; +// prettier-ignore +const p: Record) => Padding)> = {}; -Object.keys(paddingValues).forEach((key) => { +const allPaddingKeys = [...Object.keys(paddingValues), 'auto']; + +allPaddingKeys.forEach((key) => { ['p', 'px', 'py', 'pt', 'pr', 'pb', 'pl', 'ps', 'pe'].forEach((type) => { p[`${type}_${key}`] = generatePadding(type, key); }); }); ['p', 'px', 'py', 'pt', 'pr', 'pb', 'pl', 'ps', 'pe'].forEach((type) => { + if (type === 'p') { + p[`${type}_`] = (...keys: Array): Padding => { + if (keys.length === 1) return generatePadding(type, keys[0]); + if (keys.length === 2) { + const vertical = getPaddingValue(keys[0]); + const horizontal = getPaddingValue(keys[1]); + return { paddingVertical: vertical, paddingHorizontal: horizontal }; + } + if (keys.length === 4) { + const top = getPaddingValue(keys[0]); + const right = getPaddingValue(keys[1]); + const bottom = getPaddingValue(keys[2]); + const left = getPaddingValue(keys[3]); + return { + paddingTop: top, + paddingRight: right, + paddingBottom: bottom, + paddingLeft: left, + }; + } + throw new Error('p_ expects 1, 2, or 4 values'); + }; + return; + } + p[`${type}_`] = (key: string | number): Padding => generatePadding(type, key); }); // Example usage // const paddingStyle = p.p_1; // { padding: 4 } -// const paddingHorizontalStyle = p.px_1; // { paddingLeft: 4, paddingRight: 4 } -// const paddingVerticalStyle = p.py_1; // { paddingTop: 4, paddingBottom: 4 } +// const paddingHorizontalStyle = p.px_1; // { paddingHorizontal: 4 } +// const paddingVerticalStyle = p.py_1; // { paddingVertical: 4 } // const paddingTopStyle = p.pt_1; // { paddingTop: 4 } // const paddingBottomStyle = p.pb_1; // { paddingBottom: 4 } // const paddingRightStyle = p.pr_1; // { paddingRight: 4 } // const paddingLeftStyle = p.pl_1; // { paddingLeft: 4 } // const customPaddingStyle = p.p_(1000); // { padding: 1000 } +// const customVerticalStyle = p.p_(8, 16); // { paddingTop: 8, paddingBottom: 16 } +// const customAllSidesStyle = p.p_(4, 8, 12, 16); // { paddingTop: 4, paddingRight: 8, paddingBottom: 12, paddingLeft: 16 } +// const autoPaddingStyle = p.p_auto; // { padding: 'auto' } +// const autoHorizontalStyle = p.px_auto; // { paddingHorizontal: 'auto' } +// const autoVerticalStyle = p.py_auto; // { paddingVertical: 'auto' } export default p; diff --git a/src/types/layout.ts b/src/types/layout.ts index 20b8bf2..fd04da2 100644 --- a/src/types/layout.ts +++ b/src/types/layout.ts @@ -10,13 +10,6 @@ export type Display = { display: 'none' | 'flex'; }; -export type SizeMode = - | 'cover' - | 'contain' - | 'stretch' - | 'repeat' - | 'center' - | 'fill' - | 'scale_down'; +export type SizeMode = 'cover' | 'contain' | 'stretch' | 'repeat' | 'center' | 'fill' | 'scale_down'; export type PositionValue = { [key: string]: number | string }; diff --git a/src/types/spacing.ts b/src/types/spacing.ts index 31bc973..dd56f74 100644 --- a/src/types/spacing.ts +++ b/src/types/spacing.ts @@ -1,23 +1,23 @@ export type Padding = { - padding?: number; - paddingTop?: number; - paddingBottom?: number; - paddingLeft?: number; - paddingRight?: number; - paddingHorizontal?: number; - paddingVertical?: number; - paddingStart?: number; - paddingEnd?: number; + padding?: number | 'auto'; + paddingTop?: number | 'auto'; + paddingBottom?: number | 'auto'; + paddingLeft?: number | 'auto'; + paddingRight?: number | 'auto'; + paddingHorizontal?: number | 'auto'; + paddingVertical?: number | 'auto'; + paddingStart?: number | 'auto'; + paddingEnd?: number | 'auto'; }; export type Margin = { - margin?: number; - marginTop?: number; - marginBottom?: number; - marginLeft?: number; - marginRight?: number; - marginHorizontal?: number; - marginVertical?: number; - marginStart?: number; - marginEnd?: number; + margin?: number | 'auto'; + marginTop?: number | 'auto'; + marginBottom?: number | 'auto'; + marginLeft?: number | 'auto'; + marginRight?: number | 'auto'; + marginHorizontal?: number | 'auto'; + marginVertical?: number | 'auto'; + marginStart?: number | 'auto'; + marginEnd?: number | 'auto'; }; diff --git a/src/typography/decoration.ts b/src/typography/decoration.ts index 44c7619..d298cb4 100644 --- a/src/typography/decoration.ts +++ b/src/typography/decoration.ts @@ -12,8 +12,7 @@ const decoration: { textDecorationLine: 'line-through' as TextStyle['textDecorationLine'], }, underline_line_through: { - textDecorationLine: - 'underline line-through' as TextStyle['textDecorationLine'], + textDecorationLine: 'underline line-through' as TextStyle['textDecorationLine'], }, none: { textDecorationLine: 'none' as TextStyle['textDecorationLine'] }, diff --git a/src/typography/text.ts b/src/typography/text.ts index 883e4dc..2f1f5e8 100644 --- a/src/typography/text.ts +++ b/src/typography/text.ts @@ -84,10 +84,7 @@ const text: ColuredTextStyle = { textShadowColor: color, }), - shadow_offset_: ( - widthVal: number | string, - heightVal: number | string - ): TextStyle => ({ + shadow_offset_: (widthVal: number | string, heightVal: number | string): TextStyle => ({ textShadowOffset: { width: Number(widthVal), height: Number(heightVal) }, }), diff --git a/tsconfig.json b/tsconfig.json index 019cc4a..518c917 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,9 +3,7 @@ "target": "ES2020", "module": "ESNext", "moduleResolution": "Bundler", - "lib": [ - "ES2020" - ], + "lib": ["ES2020"], "declaration": true, "declarationMap": true, "sourceMap": true, @@ -15,17 +13,8 @@ "ignoreDeprecations": "6.0", "rootDir": "./src", "outDir": "lib", - "types": [ - "jest", - "node" - ] + "types": ["jest", "node"] }, - "include": [ - "src" - ], - "exclude": [ - "node_modules", - "lib", - "example" - ] -} \ No newline at end of file + "include": ["src"], + "exclude": ["node_modules", "lib", "example"] +}