Skip to content

Commit

Permalink
build: migrate to create-typescript-app@1 (#88)
Browse files Browse the repository at this point in the history
<!--
👋 Hi, thanks for sending a PR to eslint-plugin-expect-type! 💖
Please fill out all fields below to ensure your PR is reviewed quickly.
-->

## PR Checklist

- [x] Addresses an existing issue: fixes #70
- [x] That issue was marked as [`status: accepting
prs`](https://github.com/JoshuaKGoldberg/eslint-plugin-expect-type/labels/status%3A%20accepting%20prs)

## Overview

~Note to self: I might apply just the Prettier changes to `main` in a
separate PR first, just to reduce diff count here... and then I can add
a `.git-blame-ignore-revs` file
(https://github.blog/changelog/2022-03-24-ignore-commits-in-the-blame-view-beta)
to ignore them.~ There's still a big diff even with them ignored. 😞
  • Loading branch information
JoshuaKGoldberg authored Nov 13, 2023
1 parent 23bd5c0 commit bf98512
Show file tree
Hide file tree
Showing 93 changed files with 10,177 additions and 12,587 deletions.
72 changes: 72 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"badgeTemplate": "<img alt=\"All Contributors: <%= contributors.length %> 👪\" src=\"https://img.shields.io/badge/all_contributors-<%= contributors.length %>_👪-21bb42.svg\" />",
"commit": false,
"commitConvention": "angular",
"contributors": [
{
"login": "BatuhanW",
"name": "Batuhan Wilhelm",
"avatar_url": "https://avatars.githubusercontent.com/u/16444991?v=4",
"profile": "https://github.com/BatuhanW",
"contributions": ["bug", "code"]
},
{
"login": "colinking",
"name": "Colin",
"avatar_url": "https://avatars.githubusercontent.com/u/2907397?v=4",
"profile": "https://colinking.co/",
"contributions": ["bug"]
},
{
"login": "danvk",
"name": "Dan Vanderkam",
"avatar_url": "https://avatars.githubusercontent.com/u/98301?v=4",
"profile": "https://effectivetypescript.com/",
"contributions": ["code", "maintenance"]
},
{
"login": "ibezkrovnyi",
"name": "Igor Bezkrovnyi",
"avatar_url": "https://avatars.githubusercontent.com/u/1188919?v=4",
"profile": "https://github.com/ibezkrovnyi",
"contributions": ["bug", "code", "doc", "maintenance"]
},
{
"login": "JoshuaKGoldberg",
"name": "Josh Goldberg ✨",
"avatar_url": "https://avatars.githubusercontent.com/u/3335181?v=4",
"profile": "http://www.joshuakgoldberg.com/",
"contributions": ["bug", "code", "doc", "maintenance"]
},
{
"login": "nirtamir2",
"name": "nirtamir2",
"avatar_url": "https://avatars.githubusercontent.com/u/16452789?v=4",
"profile": "https://nirtamir.com/",
"contributions": ["doc"]
},
{
"login": "russelldavis",
"name": "Russell Davis",
"avatar_url": "https://avatars.githubusercontent.com/u/551404?v=4",
"profile": "https://twitter.com/_RussellDavis",
"contributions": ["code"]
},
{
"login": "TkDodo",
"name": "Dominik Dorfmeister",
"avatar_url": "https://avatars.githubusercontent.com/u/1021430?v=4",
"profile": "https://github.com/TkDodo",
"contributions": ["doc"]
}
],
"contributorsPerLine": 7,
"contributorsSortAlphabetically": true,
"files": ["README.md"],
"imageSize": 100,
"projectName": "eslint-plugin-expect-type",
"projectOwner": "JoshuaKGoldberg",
"repoHost": "https://github.com",
"repoType": "github"
}

6 changes: 4 additions & 2 deletions .eslint-doc-generatorrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/** @type {import('eslint-doc-generator').GenerateOptions} */
module.exports = {
ruleDocTitleFormat: 'prefix-name',
const config = {
ruleDocTitleFormat: "prefix-name",
};

module.exports = config;
5 changes: 4 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
!.*
coverage
dist
lib
node_modules
pnpm-lock.yaml
167 changes: 167 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
/** @type {import("@types/eslint").Linter.Config} */
module.exports = {
env: {
es2022: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:eslint-comments/recommended",
"plugin:n/recommended",
"plugin:perfectionist/recommended-natural",
"plugin:regexp/recommended",
"plugin:vitest/recommended",
],
overrides: [
{
extends: ["plugin:markdown/recommended"],
files: ["**/*.md"],
processor: "markdown/markdown",
},
{
extends: [
"plugin:jsdoc/recommended-typescript-error",
"plugin:@typescript-eslint/strict",
"plugin:@typescript-eslint/stylistic",
"plugin:eslint-plugin/recommended",
],
files: ["**/*.ts"],
parser: "@typescript-eslint/parser",
rules: {
// These off-by-default rules work well for this repo and we like them on.
"jsdoc/informative-docs": "error",
"logical-assignment-operators": [
"error",
"always",
{ enforceForIfStatements: true },
],
"operator-assignment": "error",

// These on-by-default rules don't work well for this repo and we like them off.
"jsdoc/require-jsdoc": "off",
"jsdoc/require-param": "off",
"jsdoc/require-property": "off",
"jsdoc/require-returns": "off",
},
},
{
files: "**/*.md/*.ts",
rules: {
// Ignore unused variables in docs, as we intentionally use them sometimes
"@typescript-eslint/no-unused-vars": "off",

"n/no-missing-import": [
"error",
{ allowModules: ["eslint-plugin-expect-type"] },
],
},
},
{
excludedFiles: ["**/*.md/*.ts"],
extends: [
"plugin:@typescript-eslint/strict-type-checked",
"plugin:@typescript-eslint/stylistic-type-checked",
],
files: ["**/*.ts"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.eslint.json",
},
rules: {
// These rules should be configured for this repo and we like them on.
"@typescript-eslint/no-unnecessary-condition": [
"error",
{
allowConstantLoopConditions: true,
},
],
// These off-by-default rules work well for this repo and we like them on.
"deprecation/deprecation": "error",
},
},
{
excludedFiles: ["package.json"],
extends: ["plugin:jsonc/recommended-with-json"],
files: ["*.json", "*.jsonc"],
parser: "jsonc-eslint-parser",
rules: {
"jsonc/sort-keys": "error",
},
},
{
files: ["**/*.jsonc", "**/tsconfig.json"],
rules: {
"jsonc/no-comments": "off",
},
},
{
files: "**/*.test.ts",
rules: {
// These on-by-default rules aren't useful in test files.
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-call": "off",
},
},
{
extends: ["plugin:yml/standard", "plugin:yml/prettier"],
files: ["**/*.{yml,yaml}"],
parser: "yaml-eslint-parser",
rules: {
"yml/file-extension": ["error", { extension: "yml" }],
"yml/sort-keys": [
"error",
{
order: { type: "asc" },
pathPattern: "^.*$",
},
],
"yml/sort-sequence-values": [
"error",
{
order: { type: "asc" },
pathPattern: "^.*$",
},
],
},
},
],
parser: "@typescript-eslint/parser",
plugins: [
"@typescript-eslint",
"deprecation",
"jsdoc",
"no-only-tests",
"perfectionist",
"regexp",
"vitest",
],
reportUnusedDisableDirectives: true,
root: true,
rules: {
// These off/less-strict-by-default rules work well for this repo and we like them on.
"@typescript-eslint/no-unused-vars": ["error", { caughtErrors: "all" }],
"no-only-tests/no-only-tests": "error",

// These on-by-default rules don't work well for this repo and we like them off.
"no-case-declarations": "off",
"no-constant-condition": "off",
"no-inner-declarations": "off",
"no-mixed-spaces-and-tabs": "off",

// Stylistic concerns that don't interfere with Prettier
"@typescript-eslint/padding-line-between-statements": [
"error",
{ blankLine: "always", next: "*", prev: "block-like" },
],
"no-useless-rename": "error",
"object-shorthand": "error",
"perfectionist/sort-objects": [
"error",
{
order: "asc",
"partition-by-comment": true,
type: "natural",
},
],
},
};
25 changes: 0 additions & 25 deletions .eslintrc.json

This file was deleted.

Loading

0 comments on commit bf98512

Please sign in to comment.