Skip to content

Commit de88b07

Browse files
author
Predrag Stojadinovic
committed
chore: cleanup
1 parent e16dec1 commit de88b07

File tree

11 files changed

+5313
-2708
lines changed

11 files changed

+5313
-2708
lines changed

.skeletest.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"srcFolderName": "src",
3+
"filesExtensions": [
4+
"ts"
5+
],
6+
"testFolderName": "test",
7+
"testFileExtensionPrefix": "spec",
8+
"testExtension": "ts",
9+
"ignoreSrcFiles": [],
10+
"ignoreTestFiles": [
11+
"test/_setup/"
12+
]
13+
}

eslint.config.cjs

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
const js = require('@eslint/js');
2+
const tseslint = require('@typescript-eslint/eslint-plugin');
3+
const tsparser = require('@typescript-eslint/parser');
4+
const prettier = require('eslint-plugin-prettier');
5+
const prettierConfig = require('eslint-config-prettier');
6+
7+
module.exports = [
8+
js.configs.recommended,
9+
{
10+
files: ['src/**/*.ts'],
11+
languageOptions: {
12+
parser: tsparser,
13+
parserOptions: {
14+
ecmaVersion: 2020,
15+
sourceType: 'module',
16+
project: './tsconfig.eslint.json',
17+
},
18+
},
19+
plugins: {
20+
'@typescript-eslint': tseslint,
21+
prettier: prettier,
22+
},
23+
rules: {
24+
// TypeScript ESLint recommended rules
25+
...tseslint.configs.recommended.rules,
26+
27+
// Prettier integration
28+
'prettier/prettier': 'error',
29+
30+
// Converted from TSLint rules
31+
'curly': ['error', 'multi-line', 'consistent'],
32+
'max-classes-per-file': ['error', 5],
33+
'@typescript-eslint/naming-convention': [
34+
'error',
35+
{
36+
selector: 'variable',
37+
format: ['camelCase', 'PascalCase'],
38+
leadingUnderscore: 'allow',
39+
},
40+
],
41+
'sort-imports': 'off', // equivalent to ordered-imports: false
42+
'sort-keys': 'off', // equivalent to object-literal-sort-keys: false
43+
44+
// Additional TypeScript-specific rules
45+
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
46+
'@typescript-eslint/explicit-function-return-type': 'off',
47+
'@typescript-eslint/explicit-module-boundary-types': 'off',
48+
'@typescript-eslint/no-explicit-any': 'warn',
49+
50+
// Allow multiple variable declarations per statement (from TSLint config)
51+
'one-var': 'off',
52+
53+
// Disable some rules that might be too strict for this project
54+
'@typescript-eslint/no-inferrable-types': 'off',
55+
},
56+
},
57+
// Configuration for test files
58+
{
59+
files: ['test/**/*.ts'],
60+
languageOptions: {
61+
parser: tsparser,
62+
parserOptions: {
63+
ecmaVersion: 2020,
64+
sourceType: 'module',
65+
project: './tsconfig.eslint.json',
66+
},
67+
globals: {
68+
describe: 'readonly',
69+
it: 'readonly',
70+
test: 'readonly',
71+
expect: 'readonly',
72+
beforeAll: 'readonly',
73+
afterAll: 'readonly',
74+
beforeEach: 'readonly',
75+
afterEach: 'readonly',
76+
// Mocha/Chai globals
77+
before: 'readonly',
78+
after: 'readonly',
79+
chai: 'readonly',
80+
},
81+
},
82+
plugins: {
83+
'@typescript-eslint': tseslint,
84+
prettier: prettier,
85+
},
86+
rules: {
87+
// TypeScript ESLint recommended rules
88+
...tseslint.configs.recommended.rules,
89+
90+
// Prettier integration
91+
'prettier/prettier': 'error',
92+
93+
// Test-specific rule overrides
94+
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
95+
'@typescript-eslint/explicit-function-return-type': 'off',
96+
'@typescript-eslint/explicit-module-boundary-types': 'off',
97+
'@typescript-eslint/no-explicit-any': 'warn',
98+
'@typescript-eslint/no-unused-expressions': 'off', // Allow for Chai expressions
99+
100+
// Allow multiple variable declarations per statement
101+
'one-var': 'off',
102+
103+
// Disable some rules that might be too strict for test files
104+
'@typescript-eslint/no-inferrable-types': 'off',
105+
},
106+
},
107+
prettierConfig, // This should be last to override other formatting rules
108+
];

package.json

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,35 @@
88
"main": "./lib/prefScore.js",
99
"types": "./lib/prefScore.d.ts",
1010
"scripts": {
11-
"all": "yarn & tsc & yarn clean & yarn format & yarn build & yarn test & yarn docs",
11+
"all": "pnpm install & tsc & pnpm lint:fix & pnpm build & pnpm test & pnpm docs",
1212
"build": "del /S /Q lib\\* && tsc",
1313
"build:watch": "tsc --watch",
14-
"lint": "tslint -p tsconfig.json",
15-
"clean": "tslint --config tslint-imports.json --fix --project .",
16-
"format": "prettier --write \"src/**/*.ts\"",
14+
"lint": "eslint src/**/*.ts test/**/*.ts",
15+
"lint:fix": "eslint src/**/*.ts test/**/*.ts --fix",
16+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
1717
"docs": "typedoc --readme none --out docs src",
18-
"test": "nyc mocha -r ts-node/register/transpile-only test/**/*.spec.ts",
18+
"test": "jest",
19+
"test:watch": "jest --watch",
20+
"test:coverage": "jest --coverage",
1921
"coveralls": "cat ./coverage/lcov.info | node node_modules/.bin/coveralls",
2022
"sonar": "sonarjs -e .sonarlint/**,node_modules/**,coverage/**,.nyc_output/**",
21-
"up": "yarn upgrade-interactive",
22-
"latest": "yarn upgrade-interactive --latest"
23+
"up": "pnpm up -i",
24+
"latest": "pnpm up -i -L"
2325
},
2426
"files": [
2527
"lib/**/*"
2628
],
27-
"nyc": {
28-
"include": [
29-
"src/**/*.ts"
29+
"jest": {
30+
"preset": "ts-jest",
31+
"testEnvironment": "node",
32+
"roots": ["<rootDir>/src", "<rootDir>/test"],
33+
"testMatch": ["**/*.spec.ts", "**/*.test.ts"],
34+
"collectCoverageFrom": [
35+
"src/**/*.ts",
36+
"!src/**/*.d.ts"
3037
],
31-
"exclude": [
32-
"test/**/*.ts"
33-
],
34-
"extension": [
35-
".ts"
36-
],
37-
"require": [
38-
"ts-node/register/transpile-only"
39-
],
40-
"reporter": [
41-
"text-summary",
42-
"html"
43-
],
44-
"sourceMap": true,
45-
"instrument": true
38+
"coverageDirectory": "coverage",
39+
"coverageReporters": ["text-summary", "html", "lcov"]
4640
},
4741
"repository": {
4842
"type": "git",
@@ -65,21 +59,22 @@
6559
"preferans-paper-js": "3.1.3"
6660
},
6761
"devDependencies": {
68-
"@types/chai": "^4.3.0",
69-
"@types/mocha": "^9.1.0",
70-
"chai": "^4.3.6",
62+
"@eslint/js": "^9.32.0",
63+
"@types/jest": "^30.0.0",
64+
"@typescript-eslint/eslint-plugin": "^8.38.0",
65+
"@typescript-eslint/parser": "^8.38.0",
7166
"coveralls": "^3.1.1",
72-
"mocha": "^9.2.2",
73-
"nyc": "^15.0.0",
74-
"prettier": "^2.6.2",
67+
"eslint": "^9.32.0",
68+
"eslint-config-prettier": "^10.1.8",
69+
"eslint-plugin-prettier": "^5.5.3",
70+
"jest": "^30.0.5",
71+
"prettier": "^3.6.2",
7572
"sonarjs": "^1.0.0",
7673
"source-map-support": "^0.5.21",
74+
"ts-jest": "^29.4.0",
7775
"ts-node": "^10.7.0",
78-
"tslint": "^6.1.3",
79-
"tslint-config-prettier": "^1.18.0",
80-
"tslint-etc": "^1.13.10",
81-
"tslint-no-unused-expression-chai": "^0.1.4",
82-
"typedoc": "^0.22.14",
83-
"typescript": "^4.6.3"
84-
}
76+
"typedoc": "^0.28.9",
77+
"typescript": "^5.9.2"
78+
},
79+
"packageManager": "pnpm@10.14.0"
8580
}

0 commit comments

Comments
 (0)