Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .actrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
--secret-file .env.secrets
--platform=ubuntu-20.04=ghcr.io/catthehacker/ubuntu:act-20.04
--platform=ubuntu-22.04=ghcr.io/catthehacker/ubuntu:act-22.04
--platform=ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-22.04
106 changes: 106 additions & 0 deletions .cspell.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
{
"version": "0.1",
"language": "en",
"ignorePaths": [
"**/coverage/**",
"**/node_modules/**",
"**/dist/**",
"**/fixtures/**",
"**/**/CHANGELOG.md",
"**/**/CONTRIBUTORS.md",
"**/**/ROADMAP.md",
"**/*.{json,snap}",
".cspell.json",
"yarn.lock",
".github/workflows/**",
".vscode/*.json"
],
"dictionaries": ["typescript", "softwareTerms", "node", "en_US", "npm", "misc", "filetypes"],
"ignoreRegExpList": [
"/```[\\w\\W]*?```/",
"/~~~[\\w\\W]*?~~~/",
"/``[\\w\\W]*?``/",
"/`[^`]*`/",
"/\\.\\/docs\\/rules\\/[^.]*.md/",
"/@typescript-eslint\\/[a-z-]+/",
"/\\.all-contributorsrc/",
"/TS[^\\s]+/",
"\\(#.+?\\)"
],
"words": [
"Airbnb",
"Airbnb's",
"ambiently",
"ASTs",
"autofix",
"autofixers",
"autofixes",
"backticks",
"bigint",
"bivariant",
"blockless",
"btob",
"codebases",
"Codecov",
"contravariant",
"Crockford",
"declarators",
"destructure",
"destructured",
"elif",
"errored",
"erroring",
"ESLint",
"ESLint's",
"espree",
"esrecurse",
"estree",
"exnext",
"IDE's",
"IIFE",
"IIFEs",
"linebreaks",
"necroing",
"nocheck",
"nullish",
"OOM",
"OOMs",
"parameterised",
"performant",
"pluggable",
"postprocess",
"postprocessor",
"preact",
"Premade",
"prettier's",
"recurse",
"redeclaration",
"redeclarations",
"redeclared",
"reimplement",
"resync",
"ROADMAP",
"ruleset",
"rulesets",
"serializers",
"superset",
"thenables",
"transpiled",
"transpiles",
"transpiling",
"tsconfigs",
"tsutils",
"typedef",
"typedefs",
"unfixable",
"unprefixed",
"Zacher"
],
"overrides": [
{
"filename": "**/*.{ts,js}",
"ignoreRegExpList": ["/@[a-z]+/", "/#(end)?region/"],
"includeRegExpList": ["/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*$/", "/(\\/\\/[^\\n\\r]*[\\n\\r]+)/"]
}
]
}
61 changes: 61 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
root=true

[*]
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8

[{**/dist/**,**/build/**,**/node_modules/**,**/vendor/**,**/target/**}]
indent_style = ignore
indent_size = ignore
insert_final_newline = ignore
trim_trailing_whitespace = ignore

# Makefiles always use tabs for indentation
[**/Makefile*]
indent_style = tab
indent_size = 8

# Minified JavaScript files shouldn't be changed
[**.min.js]
indent_style = ignore
insert_final_newline = ignore

# Batch files use tabs for indentation
[*.bat]
indent_style = tab

[docs/**.txt]
max_line_length = 79

# Docstrings and comments use max_line_length = 79
[*.py]
max_line_length = 88

# Use 2 spaces for the HTML files
[*.html]
indent_size = 2

# The JSON files contain newlines inconsistently
[*.json]
indent_size = 2
insert_final_newline = ignore

# The indent size used in the `package.json` file cannot be changed
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
[{*.yml,*.yaml,package.json}]
indent_style = space
indent_size = 2

[*.{groovy,java,kt,xml,gradle,scala,groovy.kts,kts}]
indent_style = space
indent_size = 4
continuation_indent_size = 8

[*.gradle]
indent_style = tab
indent_size = 4
continuation_indent_size = 8
3 changes: 2 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
dist/
lib/
node_modules/
**/node_modules/**
**/.yarn/**
jest.config.ts
104 changes: 104 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
module.exports = {
root: true,
env: {
node: true,
jest: true,
es2022: true,
'jest/globals': true
},
plugins: [
'@typescript-eslint',
'simple-import-sort',
'jest',
'security',
'optimize-regex'
],
extends: [
'airbnb-base',
'eslint:recommended',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:import/errors',
'plugin:import/warnings',
'plugin:import/typescript',
'plugin:sonarjs/recommended',
'plugin:unicorn/recommended',
'plugin:optimize-regex/recommended',
'plugin:prettier/recommended'
],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 2021,
sourceType: 'module',
project: ['./tsconfig.eslint.json', './__tests__/tsconfig.json'],
tsconfigRootDir: __dirname
},
rules: {
'@typescript-eslint/array-type': 'error',
'@typescript-eslint/await-thenable': 'error',
'@typescript-eslint/ban-ts-comment': 'error',
'@typescript-eslint/consistent-type-assertions': 'error',
'@typescript-eslint/explicit-function-return-type': [
'error',
{allowExpressions: true}
],
'@typescript-eslint/explicit-member-accessibility': [
'error',
{accessibility: 'no-public'}
],
'@typescript-eslint/func-call-spacing': ['error', 'never'],
'@typescript-eslint/lines-between-class-members': ['error'],
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/no-unnecessary-qualifier': 'error',
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@typescript-eslint/no-unused-vars': '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',
'@typescript-eslint/restrict-template-expressions': 'off',
'@typescript-eslint/semi': 'error',
'@typescript-eslint/strict-boolean-expressions': 'off',
'@typescript-eslint/type-annotation-spacing': 'error',
'@typescript-eslint/unbound-method': 'error',
camelcase: 'off',
'consistent-return': 'off',
'eslint-comments/no-use': 'off',
'github/no-then': 'off',
'import/extensions': 'off',
'import/first': 'error',
'import/newline-after-import': 'error',
'import/no-duplicates': 'error',
'import/no-namespace': 'off',
'import/prefer-default-export': 'off',
'import/prefer-default-import': 'off',
'lines-between-class-members': 'off',
'no-console': 'off',
'no-plusplus': 'off',
'no-shadow': 'off',
'no-unused-vars': 'off',
'no-restricted-syntax': 'off',
'one-var': 'off',
'security/detect-non-literal-fs-filename': 'off',
'security/detect-object-injection': 'off',
semi: 'off',
'simple-import-sort/exports': 'error',
'simple-import-sort/imports': 'error',
'sort-imports': 'off',
'sonarjs/cognitive-complexity': 'off',
'space-before-function-paren': 'off',
'unicorn/filename-case': 'off',
'unicorn/import': 'off',
'unicorn/import-style': 'off',
'unicorn/no-null': 'off',
'unicorn/prefer-module': 'off',
'unicorn/prefer-top-level-await': 'off',
'unicorn/prevent-abbreviations': 'off'
}
};
80 changes: 0 additions & 80 deletions .eslintrc.json

This file was deleted.

Loading