open-index/open-npm huggingface dataset:
npm package: @ggallon/react-mapkit-js
Description: React wrapper for Apple's MapKit JS
Author: Gwenaël Galon
Latest version: 0.1.1

# react-mapkit-js
React wrapper for Apple's MapKit JS.

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe react-mapkit-js here.

[build-badge]: https://travis-ci.org/ggallon/react-mapkit-js.svg?branch=master
[build]: https://travis-ci.org/ggallon/react-mapkit-js

[npm-badge]: https://badge.fury.io/js/%40ggallon%2Freact-mapkit-js.svg
[npm]: https://www.npmjs.org/package/@ggallon/react-mapkit-js

[coveralls-badge]: https://coveralls.io/repos/github/ggallon/react-mapkit-js/badge.svg?branch=master
[coveralls]: https://coveralls.io/github/ggallon/react-mapkit-js?branch=master
npm package: @ggallon/react-pixi
Description: Write PixiJS applications using React declarative style.
Latest version: 7.0.0-canary.0

<p align="center">
  <img src="https://user-images.githubusercontent.com/232559/142733492-3c106f68-8b8e-459c-95f9-aca77561d438.png" alt="react-pixi" width="310" />
</p>

<h1 align="center">
  React Pixi
</h1>

<p align="center">
  <strong>Simply the best way to write PIXI applications in React</strong>
  <br />
  <sub>Write <a href="http://www.pixijs.com/">PIXI</a> applications using React declarative style 👌</sub>
</p>

<br />

<p align="center">
  <img src="https://img.shields.io/github/v/release/inlet/react-pixi" alt="release" />
  <img src="https://img.shields.io/npm/dm/@inlet/react-pixi" alt="downloads" />
  <img src="https://img.shields.io/circleci/project/github/inlet/react-pixi/master.svg" alt="ci tests" />
  <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="license" />
  <img src="https://img.shields.io/badge/react-latest-ff69b4.svg" alt="react version" />
  <img src="https://img.shields.io/badge/pixi-v6+-ff69b4.svg" alt="pixi version" />
</p>

<br />

ReactPixi is an open-source, production-ready library to render high performant PIXI applications in React.

## Get started

### Quick start

```
npm install pixi.js @inlet/react-pixi
```

```jsx
import { Stage, Container, Sprite } from '@inlet/react-pixi'

export const MyComponent = () => (
  <Stage>
    <Sprite image="./my-image.png" x={100} y={100} />

    <Container x={500}>
      <Text text="Hello World" filter={[blurFilter]} />
    </Container>
  </Stage>
)
```

### Docs

Check out [our documentation](https://reactpixi.org) for guides and a full API reference.

Or checkout [our examples](https://codepen.io/collection/XPpGdb) on codepen for inspiration.

## Contribute

Want to contribute to ReactPixi? Our [contributing guide](CONTRIBUTING.md) has you covered.

## License

ReactPixi is MIT licensed.

## Meet fellow developers

You have an amazing feature in mind or just want to get in touch with other developers? Feel free to join our Slack channel.

[Join us on Slack](https://join.slack.com/t/reactpixi/shared_invite/enQtODk5NjQ2ODQ4MTI5LWVjNzlkZTJjYmI4NDcxYzljNDM4MmYwMzZkYWFlM2VkNmFhNDBmYzg3OGE5YzBiY2NmZTIwZDY0MTA4ZjA4OGM)
npm package: @ggallon/react-simple-di
Description: Simple Dependancy Injection Solution for React
Latest version: 1.3.0

# react-simple-di

Simple dependancy injection solution for React.

### Installation

```
npm i @ggallon/react-simple-di
```

### Intro

In `react-simple-di`, we've two types of dependencies, they are:

1. context - These are usually, configurations, models and client for different remote data solutions.
2. actions - Actions are simple functions which used to perform business logic with the help of the above context.

> Every action will receive the `context` as it's first argument.

### Injecting Dependancies

First, we need to inject dependencies to a root level React component. Mostly, this will be the main layout component of our app.

Here are our dependencies:
```js
const context = {
    DB,
    Router,
    appName: 'My Blog'
};

const actions = {
    posts: {
        create({DB, Router}, title, content) {
            const id = String(Math.random());
            DB.createPost(id, title, content);
            Router.go(`/post/${id}`);
        }
    }
};
```

First we've defined our context. Then, we have our actions. Here actions must follow a structure like mentioned above.

Let's inject our dependencies:

```js
import {injectDeps} from 'react-simple-di';
import Layout from './layout.jsx';

// Above mentioned actions and context are defined here.

const LayoutWithDeps = injectDeps(context, actions)(Layout);
```

Now you can use `LayoutWithDeps` anywhere in your app.

## Using Depedencies

Any component rendered inside `LayoutWithDeps` can access both context and actions. 

When using dependecies it will compose a new React component and pass dependencies via props to the original component.

First let's create our UI component. Here it will expect dependecies to come via props `appName` and `createPost`.

```js
class CreatePost extends React.Component {
    render() {
        const {appName} = this.props;
        return (
            <div>
                Create a blog post on app: ${appName}. <br/>
                <button onClick={this.create.bind(this)}>Create Now</button>
            </div>
        );
    }

    create() {
        const {createPost} = this.props;
        createPost('My Blog Title', 'Some Content');
    }
}
```

So, let's use dependencies:

```js
import {useDeps} from 'react-simple-di';

// Assume above mentioned CreatePost react component is
// defined here.

const depsToPropsMapper = (context, actions) => ({
    appName: context.appName,
    createPost: actions.posts.create
});

const CreatePostWithDeps = useDeps(depsToPropsMapper)(CreatePost);
```

That's it. 

> Note: Here when calling the `actions.posts.create` action, you don't need to provide the context as the first argument. It'll handle by `react-simple-di`.

**Default Mapper**

If you didn't provide a mapper function, useDeps will use a default mapper function will allows you to get context and props directy. Here's that default mapper:

```js
const mapper = (context, actions) => ({
    context: () => context,
    actions: () => actions
});
```
npm package: @ggallon/react-stubber
Description: Simple but useful stubbing solution React
Latest version: 1.0.2

# React Stubber

A simple but useful stubbing solution for React. This will work with any container library whether it's Redux, [React Komposer](https://github.com/ggallon/react-komposer) or with any React Component.

---

Read this article for an introduction: [Stubbing React Containers for Testing](https://voice.kadira.io/stubbing-react-containers-for-testing-11bcd537e586?source=latest)

## Usage

First of all, we need to wrap React classes we need to stub with the `mayBeStubbed` function. See:

```js
import React from 'react';
// compose if our container building library.
import compose from './compose';
import { mayBeStubbed } from 'react-stubber';

export const CommentList = () => (
  <ul>

  </ul>
);
CommentList.displayName = 'CommentList';
export const CommentListContainer = mayBeStubbed(compose(CommentList));
```

Then we can use the `CommentListContainer` anywhere we need.

So, let's use the above `CommentListContainer` inside another Component called `Post`.

```js
export const Post = (post) => (
  <div style={style}>
    <h1>{post.title}</h1>
    <p>{post.text}</p>
    <hr />
    <h3>Comments</h3>
    <CommentListContainer postId={post.id} />
  </div>
);
```

In order to do isolated testing, first make sure we are in the **stubbing mode**.

We need to do this, before importing any React component. This is something you could do when doing the test setup or in the React Storybook config file.

```js
import { setStubbingMode } from 'react-stubber';
setStubbingMode(true);
```

Then when we render Post we will get something like this:

![](docs/with-default-stub.png)

We can also stub this component with a custom component we like. This is how we do that. You need to do this before using the `Post` component. <br />
(The test file or storybook story file is a good place for this).

```js
import { stub } from 'react-stubber';

stub(CommentListContainer3, (props) => (
  <div>Comments for postId: {props.postId}</div>
));
```

Then once rendered it will looks like this.

![](docs/with-custom-stub.png)
npm package: @ggascoigne/babel-config
Description: A shareable babel configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.5.0

# DEPRECATED - Babel Config

~~My personal shareable babel configuration.~~

**Why?** - Alternatives to babel such as esbuild offer better performance for my projects.

## Install

```bash
pnpm add -D @babel/cli @babel/core @ggascoigne/babel-config
```

## Usage

**`babel.config.js`**

```js
module.exports = {
  extends: ['@ggascoigne/babel-config'],
};
```

## Extending

**`babel.config.js`**

```js
module.exports = {
  extends: ['@ggascoigne/babel-config'],
  presets: ['@babel/preset-typescript'],
};
```

## Under The Hood

### `index.js`

- `@babel/plugin-transform-runtime`
- `@babel/preset-env`
- `@babel/runtime`
- `core-js`

## License

MIT
npm package: @ggascoigne/browserslist-config
Description: A shareable browserslist configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.7.0

# Browserslist Config

My personal shareable browserslist configuration.

## Install

```bash
pnpm add -D @ggascoigne/browserslist-config
```

## Usage

**`.browserslistrc`**

```bash
extends @ggascoigne/browserslist-config
```

## Under The Hood

### `index.js`

- `browserslist`

## License

MIT
npm package: @ggascoigne/commitizen-config
Description: A shareable commitizen configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.4.0

# DEPRECATED - Commitizen Config

~~My personal shareable commitizen configuration.~~

**Why?** - This package no longer uses a postinstall script to auto create a `.czrc` file and it is preferred to follow `commitizen`'s instructions to install and set up.

## Install

```bash
pnpm add -D commitizen @ggascoigne/commitizen-config
```

## Usage

**`.czrc`**

```bash
{
  "path": "cz-conventional-changelog"
}
```

## Add an NPM Script

Running this command:

```bash
npm set-script commit "git-cz"
```

Will create:

**`package.json`**

```json
"scripts": {
  "commit": "git-cz"
},
```

## Under The Hood

### `.czrc`

- `cz-conventional-changelog`

## License

MIT
npm package: @ggascoigne/commitlint-config
Description: A shareable commitlint configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.5.0

# Commitlint Config

My personal shareable commitlint configuration.

## Install

```bash
pnpm pnpm -D @commitlint/cli @ggascoigne/commitlint-config
```

## Usage

**`commitlint.config.js`**

```js
module.exports = {
  extends: ['@ggascoigne/commitlint-config'],
};
```

## Extending

**`commitlint.config.js`**

```js
module.exports = {
  extends: ['@ggascoigne/commitlint-config'],
  rules: {
    'body-leading-blank': [2, 'always'],
  },
};
```

## Add a Husky Hook

Install husky:

```bash
pnpm add -D husky && npm set-script prepare "husky install" && pnpm prepare
```

Add the hook:

```bash
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit'
```

## Under The Hood

### `index.js`

- `@commitlint/config-conventional`

## License

MIT
npm package: @ggascoigne/eslint-config
Description: A shareable eslint configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 2.5.0

# Eslint Config

My personal shareable eslint configuration.

## Install

```bash
pnpm add -D eslint @ggascoigne/eslint-config
```

## Usage

**`.eslintrc.js`**

### JS

```js
module.exports = {
  extends: '@ggascoigne/eslint-config',
}
```

The default config is React-centric, if you want a config without react then use:

```js
module.exports = {
  extends: '@ggascoigne/eslint-config/base',
}
```

### TS

```js
module.exports = {
  extends: '@ggascoigne/eslint-config/ts',
}
```

### Jest

```js
module.exports = {
  extends: '@ggascoigne/eslint-config/jest',
}
```

## Extending

An example configuring a mixed JS/TS, `tsconfig`-compatible configuration with jest linting.

**`.eslintrc.js`**

```js
module.exports = {
  ignorePatterns: ['dist/**'],
  overrides: [
    {
      files: ['**/*.ts'],
      extends: ['@ggascoigne/eslint-config/ts', '@ggascoigne/eslint-config/jest'],
      parserOptions: {
        project: 'tsconfig.json',
        tsconfigRootDir: __dirname,
      },
    },
    {
      files: ['**/*.js'],
      extends: ['@ggascoigne/eslint-config', '@ggascoigne/eslint-config/jest'],
    },
  ],
}
```

## Add an NPM Script

Running this command:

```bash
npm set-script lint:js "eslint --fix **/*.{js,jsx,ts,tsx}"
```

Will create:

**`package.json`**

```json
"scripts": {
  "lint:js": "eslint --fix **/*.{js,jsx,ts,tsx}"
},
```

## Add a Pre-commit Hook

**`lint-staged.config.js`**

```js
module.exports = {
  '*.{js,jsx,ts,tsx}': ['prettier --cache --write', 'eslint --cache --fix'],
}
```

## Under The Hood

### `index.js`

- Plugins
  - `eslint-plugin-prettier`
- Parser
  - default `eslint` parser
- Extends
  - `eslint-plugin-unicorn`
  - `eslint-plugin-promise`
  - `eslint-plugin-sonarjs`
  - `eslint-plugin-security`,
  - default `eslint` ruleset
  - `eslint-config-airbnb-base`
  - `eslint-config-prettier`
- Rules
  - [Prettier Special Rules](https://github.com/prettier/eslint-config-prettier#special-rules)
  - Other rules can be found in the config

### `ts.js`

- Plugins
  - `@typescript-eslint/eslint-plugin`
  - `eslint-plugin-prettier`
- Parser
  - `@typescript-eslint/parser`
- Extends
  - `eslint-plugin-unicorn`
  - `eslint-plugin-promise`
  - `eslint-plugin-sonarjs`
  - `eslint-plugin-security`,
  - `@typescript-eslint/eslint-plugin`
  - `eslint-config-airbnb-typescript`
  - `eslint-config-prettier`
- Rules
  - [Prettier Special Rules](https://github.com/prettier/eslint-config-prettier#special-rules)
  - Other rules can be found in the config

### `jest.js`

- Plugins
  - `jest`
  - `jest-dom`
  - `jest-formatting`
- Extends
  - `plugin:jest/recommended`
  - `plugin:jest-dom/recommended`
  - `plugin:jest-formatting/recommended`

## License

MIT
npm package: @ggascoigne/htmlhint-config
Description: A shareable htmlhint configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.1.0

# Htmlhint Config

My personal shareable htmlhint configuration.

## Install

```bash
pnpm add -D htmlhint @ggascoigne/htmlhint-config
```

## Add an NPM Script

Running this command:

```bash
npm set-script lint:html "htmlhint --config ./node_modules/@ggascoigne/htmlhint-config/index.json **/*.html"
```

Will create:

**`package.json`**

```json
"scripts": {
  "lint:html": "htmlhint --config ./node_modules/@ggascoigne/htmlhint-config/index.json **/*.html"
},
```

## License

MIT
npm package: @ggascoigne/jest-config
Description: A shareable jest configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.8.0

# Jest Config

My personal shareable jest configuration.

## Install

```bash
pnpm add -D jest @ggascoigne/jest-config
```

## Usage

**`jest.config.js`**

```js
module.exports = {
  preset: '@ggascoigne/jest-config',
};
```

## Extending

An example with `testMatch` that Jest uses to detect test files.

**`jest.config.js`**

```js
module.exports = {
  preset: '@ggascoigne/jest-config',
  testMatch: [
    '<rootDir>/__tests__/**/**.+(ts|tsx|js|jsx)',
    '<rootDir>/src/**/?(*.)+(spec|test).+(ts|tsx|js|jsx)',
  ],
};
```

## Add an NPM Script

Running this command:

```bash
npm set-script test "jest"
```

Will create:

**`package.json`**

```json
"scripts": {
  "test": "jest"
},
```

## Add a Pre-commit Hook

**Note**: Executes tests and coverage output related to files that have been changed in the current commit only.

**`lint-staged.config.js`**

```js
module.exports = {
  '*.{js,jsx,ts,tsx}': [
    'pnpm test --bail --passWithNoTests --findRelatedTests --coverage',
  ],
};
```

## Under The Hood

### `jest-preset.js`

- `@types/jest`
- `ts-jest`
- `jest-environment-jsdom`
- `jest-transform-stub`

## License

MIT
npm package: @ggascoigne/lint-staged-config
Description: A shareable lint-staged configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.5.0

# Lint-Staged Config

My personal shareable lint-staged configuration.

## Install

```bash
pnpm add -D lint-staged @ggascoigne/lint-staged-config
```

## Usage

**`lint-staged.config.js`**

```js
module.exports = require('@ggascoigne/lint-staged-config');
```

### YML

```js
module.exports = require('@ggascoigne/lint-staged-config/yml');
```

## Extending

An example that includes checking for credentials, ignoring `prettier` on unknown extensions, `yml` linting, and executing tests and coverage output related to files that have been changed in the current commit only.

**`lint-staged.config.js`**

```js
const config = require('@ggascoigne/lint-staged-config');
const ymlConfig = require('@ggascoigne/lint-staged-config/yml');

module.exports = {
  '*': ['secretlint'],
  '!(*.{md,js,jsx,ts,tsx,json,css,scss,yml,yaml})': [
    'prettier --cache --write --ignore-unknown',
  ],
  ...ymlConfig,
  ...config,
  '*.{js,jsx,ts,tsx}': [
    'pnpm test --bail --passWithNoTests --findRelatedTests --coverage',
  ],
};
```

## Add a Husky Hook

Install husky:

```bash
pnpm add -D husky && npm set-script prepare "husky install" && pnpm prepare
```

Add the hook:

```bash
npx husky add .husky/pre-commit 'npx --no-install lint-staged'
```

## License

MIT
npm package: @ggascoigne/markdownlint-config
Description: A shareable markdownlint configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 2.2.6

# Markdownlint Config

My personal shareable markdownlint configuration.

## Install

```bash
pnpm add -D markdownlint @ggascoigne/markdownlint-config
```

## Usage

**`.markdownlint.json`**

```bash
{
  "extends": "./node_modules/@ggascoigne/markdownlint-config/index.json"
}
```

## Extending

**`.markdownlint.json`**

```bash
{
  "extends": "./node_modules/@ggascoigne/markdownlint-config/index.json",
  "MD013": false,
}
```

## Add an NPM Script

Running this command:

```bash
npm set-script lint:md "markdownlint --fix **/*.md --ignore node_modules --ignore **/CHANGELOG.md"
```

Will create:

**`package.json`**

```json
"scripts": {
  "lint:md": "markdownlint --fix **/*.md --ignore node_modules --ignore **/CHANGELOG.md"
},
```

## Add a Pre-commit Hook

**`lint-staged.config.js`**

```js
module.exports = {
  '*.md': ['prettier --cache --write', 'markdownlint'],
};
```

## Under The Hood

### `index.json`

- `markdownlint-cli`

## License

MIT
npm package: @ggascoigne/postcss-config
Description: A shareable postcss configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.9.0

# Postcss Config

My personal shareable postcss configuration.

## Install

```bash
pnpm add -D postcss @ggascoigne/postcss-config
```

## Usage

**`postcss.config.js`**

```js
module.exports = require('@ggascoigne/postcss-config');
```

## Under The Hood

### `index.js`

- `autoprefixer`
- `postcss-100vh-fix`
- `postcss-cli`
- `postcss-flexbugs-fixes`
- `postcss-normalize`
- `postcss-preset-env`
- `postcss-reporter`

## License

MIT
npm package: @ggascoigne/prettier-config
Description: A shareable prettier configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.6.0

# Prettier Config

My personal shareable prettier configuration.

## Install

```bash
pnpm add -D prettier @ggascoigne/prettier-config
```

## Usage

**`.prettierrc.js`**

```js
module.exports = '@ggascoigne/prettier-config'
```

## Extending

**`.prettierrc.js`**

```js
module.exports = {
  ...require('@ggascoigne/prettier-config'),
  semi: true,
}
```

## Add an NPM Script

Running this command:

```bash
npm set-script lint:prettier "prettier --write ."
```

Will create:

**`package.json`**

```json
"scripts": {
  "lint:prettier": "prettier --write ."
},
```

## Add a Pre-commit Hook

**`lint-staged.config.js`**

```js
module.exports = {
  '**/*': ['prettier --cache --write --ignore-unknown'],
}
```

## License

MIT
npm package: @ggascoigne/react-daterange-picker
Description: A react date range picker using Material Design
Author: Manpreet Singh Matharu
Latest version: 1.0.5

# react-daterange-picker 
A react date range picker using material-ui components.

<a href='https://www.npmjs.com/package/@matharumanpreet00/react-daterange-picker'>
    <img src='https://img.shields.io/npm/v/@matharumanpreet00/react-daterange-picker.svg' alt='Latest npm version'>
</a>

## Live Demo: https://flippingbitss.github.io/react-daterange-picker/




## Usage

```bash
npm install @matharumanpreet00/react-daterange-picker --save
# or with yarn
yarn add @matharumanpreet00/react-daterange-picker
```

![Screenshot](/screenshot_1.png?raw=true "Screenshot")

## Basic Example
```tsx
import React from "react";
import { DateRangePicker, DateRange } from "@matharumanpreet00/react-daterange-picker";

type Props = {}
type State = {
    open: boolean,
    dateRange: DateRange
}

class App extends React.Component<Props, State> {
	state = {
		open: true,
		dateRange: {}
	};
	
	render() {
		return (
			<DateRangePicker
				open={this.state.open}
				onChange={range => this.setState({ dateRange: range })}
			/>
		);
	}
}

export default App;
```

## Basic example using hooks
```tsx
import React from "react";
import { DateRangePicker, DateRange } from "@matharumanpreet00/react-daterange-picker";

type Props = {}

const App: React.FunctionComponent<Props> = props => {
	const [open, setOpen] = React.useState(false);
	const [dateRange, setDateRange] = React.useState<DateRange>({});

	return (
		<DateRangePicker
			open={open}
			onChange={range => setDateRange(range)}
		/>
	);
}

export default App;
```

## Types 
```ts
interface DateRange {
    startDate?: Date,
    endDate?: Date
}

interface DefinedRange {
    label: string,
    startDate: Date,
    endDate: Date
}
```

## Props

Name | Type | Required | Default value | Description
:--- | :--- | :--- | :--- | :---
`initialDateRange` | `DateRange` | | `{}` | initially selected date range
`minDate` | `Date | string` | | 10 years ago | min date allowed in range
`maxDate` | `Date | string` | | 10 years from now | max date allowed in range
`onChange` | `(DateRange) => void` | _required_ | - | handler function for providing selected date range
`definedRanges` | `DefinedRange[]` | | - | custom defined ranges to show in the list
npm package: @ggascoigne/secretlint-config
Description: A shareable secretlint configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.2.2

# Secretlint Config

My personal shareable secretlint configuration.

## Install

```bash
pnpm add -D secretlint @ggascoigne/secretlint-config
```

## Usage

**`.secretlintrc.js`**

```js
module.exports = {
  ...require('@ggascoigne/secretlint-config'),
};
```

## Add an NPM Script

Running this command:

```bash
npm set-script lint:secrets "npx secretlint **/*"
```

Will create:

**`package.json`**

```json
"scripts": {
  "lint:secrets": "npx secretlint **/*"
},
```

## Add a Pre-commit Hook

**`lint-staged.config.js`**

```js
module.exports = {
  '*': ['secretlint'],
};
```

## Under The Hood

### `index.json`

- `@secretlint/secretlint-rule-preset-recommend`

## License

MIT
npm package: @ggascoigne/stylelint-config
Description: A shareable stylelint configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.5.4

# Stylelint Config

My personal shareable stylelint configuration.

## Install

```bash
pnpm add -D stylelint @ggascoigne/stylelint-config
```

## Usage

**`.stylelintrc.js`**

### CSS

```js
module.exports = {
  extends: '@ggascoigne/stylelint-config',
};
```

### SCSS

```js
module.exports = {
  extends: '@ggascoigne/stylelint-config/scss',
};
```

## Extending

An example configuring a mixed CSS/SCSS configuration.

**`.stylelintrc.js`**

```js
module.exports = {
  ignoreFiles: ['dist/**'],
  extends: '@ggascoigne/stylelint-config/scss',
  overrides: [
    {
      files: ['**/*.css'],
      extends: '@ggascoigne/stylelint-config',
    },
  ],
};
```

## Add an NPM Script

Running this command:

```bash
npm set-script lint:css "stylelint --fix **/*.{css,scss}"
```

Will create:

**`package.json`**

```json
"scripts": {
  "lint:css": "stylelint --fix **/*.{css,scss}"
},
```

## Add a Pre-commit Hook

**`lint-staged.config.js`**

```js
module.exports = {
  '*.{css,scss}': ['prettier --cache --write', 'stylelint --cache --fix'],
};
```

## Under The Hood

### `index.js`

- Plugins
  - `stylelint-order`
  - `stylelint-no-unsupported-browser-features`
  - `stylelint-high-performance-animation`
- Extends
  - `stylelint-config-standard`
  - `stylelint-a11y`
  - `stylelint-prettier`

### `scss.js`

- Plugins
  - `stylelint-order`
  - `stylelint-no-unsupported-browser-features`
  - `stylelint-high-performance-animation`
- Extends
  - `stylelint-config-standard-scss`
  - `stylelint-config-sass-guidelines`
  - `stylelint-a11y`
  - `stylelint-prettier`

## License

MIT
npm package: @ggascoigne/tsconfig-config
Description: A shareable tsconfig configuration for projects.
Author: Guy Gascoigne-Piggford
Latest version: 1.4.0

# Tsconfig Config

My personal shareable tsconfig configuration.

## Install

```bash
pnpm add -D @ggascoigne/tsconfig-config
```

## Usage

**`tsconfig.json`**

```json
{
  "extends": "@ggascoigne/tsconfig-config"
}
```

## Extending

A basic configuration for projects:

**`tsconfig.json`**

```json
{
  "extends": "@ggascoigne/tsconfig-config",
  "compilerOptions": {
    "outDir": "dist"
  },
  "include": ["src/**/*", "__tests__/**/*"],
  "exclude": ["node_modules", "dist"]
}
```

## License

MIT