feat: initial dev-configs monorepo
Shared configs for TypeScript projects: ESLint, Prettier, TypeScript, Vite, Jest, Playwright, Knip. Published as @vigdorov/* npm packages to Gitea registry. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
23
packages/jest/package.json
Normal file
23
packages/jest/package.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "@vigdorov/jest-config",
|
||||
"version": "1.0.0",
|
||||
"description": "Shared Jest configuration",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"files": ["dist"],
|
||||
"scripts": {
|
||||
"build": "tsc"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"jest": ">=29.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@swc/jest": "^0.2.38"
|
||||
},
|
||||
"devDependencies": {
|
||||
"jest": "^29.7.0",
|
||||
"@types/jest": "^29.5.14",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
28
packages/jest/src/index.ts
Normal file
28
packages/jest/src/index.ts
Normal file
@ -0,0 +1,28 @@
|
||||
export interface JestConfigOptions {
|
||||
environment?: 'node' | 'jsdom';
|
||||
aliases?: Record<string, string>;
|
||||
}
|
||||
|
||||
function resolveAliases(aliases: Record<string, string>): Record<string, string> {
|
||||
return Object.fromEntries(
|
||||
Object.entries(aliases).map(([key, aliasPath]) => [`^${key}(.*)$`, `<rootDir>/${aliasPath}$1`]),
|
||||
);
|
||||
}
|
||||
|
||||
export function jestConfig(options: JestConfigOptions = {}) {
|
||||
const {environment = 'node', aliases} = options;
|
||||
|
||||
return {
|
||||
testEnvironment: environment === 'jsdom' ? 'jsdom' : 'node',
|
||||
clearMocks: true,
|
||||
collectCoverage: true,
|
||||
coverageReporters: ['html', 'text', 'text-summary', 'lcov'],
|
||||
coverageDirectory: 'coverage',
|
||||
testMatch: ['**/__tests__/**/*.(j|t)s?(x)', '**/?(*.)+(spec|test).(j|t)s?(x)'],
|
||||
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
||||
transform: {
|
||||
'^.+\\.(t|j)sx?$': '@swc/jest',
|
||||
},
|
||||
...(aliases ? {moduleNameMapper: resolveAliases(aliases)} : {}),
|
||||
};
|
||||
}
|
||||
8
packages/jest/tsconfig.json
Normal file
8
packages/jest/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "dist",
|
||||
"rootDir": "src"
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
||||
Reference in New Issue
Block a user