Configure ESLint and update configuration for Prettier (#949)
* Update ESLint and Prettier configurations * Rebuild action * Update package.json
This commit is contained in:
parent
3d90444e57
commit
47a58a6ddf
|
@ -1,3 +1,6 @@
|
||||||
dist/
|
# Ignore list
|
||||||
lib/
|
/*
|
||||||
node_modules/
|
|
||||||
|
# Do not ignore these folders:
|
||||||
|
!__tests__/
|
||||||
|
!src/
|
|
@ -0,0 +1,49 @@
|
||||||
|
module.exports = {
|
||||||
|
extends: [
|
||||||
|
'eslint:recommended',
|
||||||
|
'plugin:@typescript-eslint/recommended',
|
||||||
|
'plugin:eslint-plugin-jest/recommended',
|
||||||
|
'eslint-config-prettier'
|
||||||
|
],
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
plugins: ['@typescript-eslint', 'eslint-plugin-jest'],
|
||||||
|
rules: {
|
||||||
|
'@typescript-eslint/no-require-imports': 'error',
|
||||||
|
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||||
|
'@typescript-eslint/no-explicit-any': 'off',
|
||||||
|
'@typescript-eslint/no-empty-function': 'off',
|
||||||
|
'@typescript-eslint/ban-ts-comment': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
'ts-ignore': 'allow-with-description'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'no-console': 'error',
|
||||||
|
'yoda': 'error',
|
||||||
|
'prefer-const': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
destructuring: 'all'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'no-control-regex': 'off',
|
||||||
|
'no-constant-condition': ['error', {checkLoops: false}]
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['**/*{test,spec}.ts'],
|
||||||
|
rules: {
|
||||||
|
'@typescript-eslint/no-unused-vars': 'off',
|
||||||
|
'jest/no-standalone-expect': 'off',
|
||||||
|
'jest/no-conditional-expect': 'off',
|
||||||
|
'no-console': 'off',
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
env: {
|
||||||
|
node: true,
|
||||||
|
es6: true,
|
||||||
|
'jest/globals': true
|
||||||
|
}
|
||||||
|
};
|
|
@ -1,65 +0,0 @@
|
||||||
{
|
|
||||||
"plugins": ["jest", "@typescript-eslint"],
|
|
||||||
"extends": ["plugin:github/recommended"],
|
|
||||||
"parser": "@typescript-eslint/parser",
|
|
||||||
"parserOptions": {
|
|
||||||
"ecmaVersion": 9,
|
|
||||||
"sourceType": "module",
|
|
||||||
"project": "./tsconfig.json"
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"eslint-comments/no-use": "off",
|
|
||||||
"import/no-namespace": "off",
|
|
||||||
"no-unused-vars": "off",
|
|
||||||
"@typescript-eslint/no-unused-vars": "error",
|
|
||||||
"@typescript-eslint/explicit-member-accessibility": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"accessibility": "no-public"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@typescript-eslint/no-require-imports": "error",
|
|
||||||
"@typescript-eslint/array-type": "error",
|
|
||||||
"@typescript-eslint/await-thenable": "error",
|
|
||||||
"@typescript-eslint/ban-ts-comment": "error",
|
|
||||||
"camelcase": "off",
|
|
||||||
"@typescript-eslint/consistent-type-assertions": "error",
|
|
||||||
"@typescript-eslint/func-call-spacing": ["error", "never"],
|
|
||||||
"@typescript-eslint/no-array-constructor": "error",
|
|
||||||
"@typescript-eslint/no-empty-interface": "error",
|
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
|
||||||
"@typescript-eslint/no-extraneous-class": "off",
|
|
||||||
"@typescript-eslint/no-for-in-array": "error",
|
|
||||||
"@typescript-eslint/no-inferrable-types": "error",
|
|
||||||
"@typescript-eslint/no-misused-new": "error",
|
|
||||||
"@typescript-eslint/no-namespace": "error",
|
|
||||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
|
||||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
|
||||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
|
||||||
"@typescript-eslint/no-useless-constructor": "error",
|
|
||||||
"@typescript-eslint/no-var-requires": "error",
|
|
||||||
"@typescript-eslint/prefer-for-of": "warn",
|
|
||||||
"@typescript-eslint/prefer-function-type": "warn",
|
|
||||||
"@typescript-eslint/prefer-includes": "error",
|
|
||||||
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
|
||||||
"@typescript-eslint/promise-function-async": "error",
|
|
||||||
"@typescript-eslint/require-array-sort-compare": "error",
|
|
||||||
"@typescript-eslint/restrict-plus-operands": "error",
|
|
||||||
"semi": "off",
|
|
||||||
"@typescript-eslint/type-annotation-spacing": "error",
|
|
||||||
"@typescript-eslint/unbound-method": "off",
|
|
||||||
"no-shadow": "off",
|
|
||||||
"@typescript-eslint/no-shadow": "error",
|
|
||||||
"prettier/prettier": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"endOfLine": "auto"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"env": {
|
|
||||||
"node": true,
|
|
||||||
"es6": true,
|
|
||||||
"jest/globals": true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +1,2 @@
|
||||||
|
* text=auto eol=lf
|
||||||
.licenses/** -diff linguist-generated=true
|
.licenses/** -diff linguist-generated=true
|
|
@ -1,7 +1,7 @@
|
||||||
.idea
|
# Ignore list
|
||||||
.licenses
|
/*
|
||||||
.vscode
|
|
||||||
dist
|
# Do not ignore these folders:
|
||||||
lib
|
!__tests__/
|
||||||
node_modules
|
!.github/
|
||||||
package-lock.json
|
!src/
|
|
@ -0,0 +1,10 @@
|
||||||
|
module.exports = {
|
||||||
|
printWidth: 80,
|
||||||
|
tabWidth: 2,
|
||||||
|
useTabs: false,
|
||||||
|
semi: true,
|
||||||
|
singleQuote: true,
|
||||||
|
trailingComma: 'none',
|
||||||
|
bracketSpacing: false,
|
||||||
|
arrowParens: 'avoid'
|
||||||
|
};
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"printWidth": 80,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"useTabs": false,
|
|
||||||
"semi": true,
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "none",
|
|
||||||
"bracketSpacing": false,
|
|
||||||
"arrowParens": "avoid",
|
|
||||||
"endOfLine": "auto"
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
|
@ -6,10 +6,10 @@
|
||||||
"main": "lib/main.js",
|
"main": "lib/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc --project tsconfig.app.json && ncc build",
|
"build": "tsc --project tsconfig.app.json && ncc build",
|
||||||
"format": "prettier --write --ignore-unknown **/*.{json,yml,ts}",
|
"format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write **/*.{ts,yml,yaml}",
|
||||||
"format-check": "prettier --check --ignore-unknown **/*.{json,yml,ts}",
|
"format-check": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --check **/*.{ts,yml,yaml}",
|
||||||
"lint": "eslint src/**/*.ts",
|
"lint": "eslint --config ./.eslintrc.js **/*.ts",
|
||||||
"lint:fix": "eslint src/**/*.ts --fix",
|
"lint:fix": "eslint --config ./.eslintrc.js **/*.ts --fix",
|
||||||
"lint:all": "npm run format-check && npm run lint",
|
"lint:all": "npm run format-check && npm run lint",
|
||||||
"lint:all:fix": "npm run format && npm run lint:fix",
|
"lint:all:fix": "npm run format && npm run lint:fix",
|
||||||
"test": "jest --config ./jest.config.js",
|
"test": "jest --config ./jest.config.js",
|
||||||
|
@ -31,8 +31,8 @@
|
||||||
"stale"
|
"stale"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "12",
|
"node": "16",
|
||||||
"npm": "6"
|
"npm": "8"
|
||||||
},
|
},
|
||||||
"author": "GitHub",
|
"author": "GitHub",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@ -47,12 +47,12 @@
|
||||||
"@types/lodash.deburr": "^4.1.6",
|
"@types/lodash.deburr": "^4.1.6",
|
||||||
"@types/node": "^18.11.18",
|
"@types/node": "^18.11.18",
|
||||||
"@types/semver": "^7.3.5",
|
"@types/semver": "^7.3.5",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.53.0",
|
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
||||||
"@typescript-eslint/parser": "^5.52.0",
|
"@typescript-eslint/parser": "^5.54.0",
|
||||||
"@vercel/ncc": "^0.28.6",
|
"@vercel/ncc": "^0.28.6",
|
||||||
"ansi-styles": "5.2.0",
|
"ansi-styles": "5.2.0",
|
||||||
"eslint": "^7.28.0",
|
"eslint": "^8.35.0",
|
||||||
"eslint-plugin-github": "^4.1.2",
|
"eslint-config-prettier": "^8.6.0",
|
||||||
"eslint-plugin-jest": "^27.2.1",
|
"eslint-plugin-jest": "^27.2.1",
|
||||||
"jest": "^29.4.1",
|
"jest": "^29.4.1",
|
||||||
"jest-circus": "^29.3.1",
|
"jest-circus": "^29.3.1",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,4 @@
|
||||||
|
/* eslint jest/no-identical-title: "off" */
|
||||||
import {DefaultProcessorOptions} from '../../__tests__/constants/default-processor-options';
|
import {DefaultProcessorOptions} from '../../__tests__/constants/default-processor-options';
|
||||||
import {generateIIssue} from '../../__tests__/functions/generate-iissue';
|
import {generateIIssue} from '../../__tests__/functions/generate-iissue';
|
||||||
import {IIssue} from '../interfaces/issue';
|
import {IIssue} from '../interfaces/issue';
|
||||||
|
|
|
@ -14,7 +14,7 @@ export class Issue implements IIssue {
|
||||||
created_at: IsoDateString;
|
created_at: IsoDateString;
|
||||||
updated_at: IsoDateString;
|
updated_at: IsoDateString;
|
||||||
readonly labels: ILabel[];
|
readonly labels: ILabel[];
|
||||||
readonly pull_request: Object | null | undefined;
|
readonly pull_request: object | null | undefined;
|
||||||
readonly state: string | 'closed' | 'open';
|
readonly state: string | 'closed' | 'open';
|
||||||
readonly locked: boolean;
|
readonly locked: boolean;
|
||||||
readonly milestone?: IMilestone | null;
|
readonly milestone?: IMilestone | null;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// @todo improve to include the notion of team?
|
// @todo improve to include the notion of team?
|
||||||
interface IAssignee {
|
interface IAssignee {
|
||||||
type: string;
|
type: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IUserAssignee extends IAssignee {
|
export interface IUserAssignee extends IAssignee {
|
||||||
login: string;
|
login: string;
|
||||||
type: 'User' | string;
|
type: 'User' | string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Assignee = IUserAssignee;
|
export type Assignee = IUserAssignee;
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
import {IsoDateString} from '../types/iso-date-string';
|
import {IsoDateString} from '../types/iso-date-string';
|
||||||
import {Assignee} from './assignee';
|
import {Assignee} from './assignee';
|
||||||
import {ILabel} from './label';
|
import {ILabel} from './label';
|
||||||
import {IMilestone} from './milestone';
|
import {IMilestone} from './milestone';
|
||||||
import {components} from '@octokit/openapi-types';
|
import {components} from '@octokit/openapi-types';
|
||||||
export interface IIssue {
|
export interface IIssue {
|
||||||
title: string;
|
title: string;
|
||||||
number: number;
|
number: number;
|
||||||
created_at: IsoDateString;
|
created_at: IsoDateString;
|
||||||
updated_at: IsoDateString;
|
updated_at: IsoDateString;
|
||||||
labels: ILabel[];
|
labels: ILabel[];
|
||||||
pull_request?: Object | null;
|
pull_request?: object | null;
|
||||||
state: string;
|
state: string;
|
||||||
locked: boolean;
|
locked: boolean;
|
||||||
milestone?: IMilestone | null;
|
milestone?: IMilestone | null;
|
||||||
assignees?: Assignee[] | null;
|
assignees?: Assignee[] | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type OctokitIssue = components['schemas']['issue'];
|
export type OctokitIssue = components['schemas']['issue'];
|
||||||
|
|
Loading…
Reference in New Issue