1.0.29 • Published 2 years ago
@personal-project/core v1.0.29
Installation package init project
- Install dev dependencies for TypeScript
yarn add -D @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint ts-node typescript
- Install dev dependencies for test with jest
yarn add -D @types/jest @types/supertest jest supertest ts-jest
- Create file in root
.gitignore
node_modules
build
coverage
- Create file in root
.npmignore
( init package )
node_modules
coverage
- Create eslint file
.eslintrc.js
// eslint-disable-next-line no-undef
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
ignorePatterns: ['dist/*', 'build/*'],
overrides: [
{
files: ['*.ts'], // Your TypeScript files extension
parserOptions: {
project: ['./tsconfig.json'] // Specify it only for TypeScript files
}
}
],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended'
],
rules: {
'no-console': 2,
'@typescript-eslint/no-inferrable-types': [0, 'ignore-params'],
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'variable',
format: ['camelCase', 'UPPER_CASE']
},
{
selector: ['function', 'classMethod'],
format: ['camelCase']
},
{
selector: 'typeLike',
format: ['PascalCase']
},
{
selector: 'interface',
format: ['PascalCase'],
custom: {
regex: 'I[A-Za-z]',
match: true
}
},
{
selector: 'variable',
types: ['boolean'],
format: ['PascalCase'],
prefix: ['is', 'should', 'has', 'can', 'did', 'will']
},
{
selector: 'parameter',
format: ['camelCase'],
leadingUnderscore: 'allow'
}
]
}
};
- Create eslint file
tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": ["dom", "es6", "es2017", "esnext.asynciterable"],
"outDir": "./build",
"declaration": true,
"moduleResolution": "node",
"removeComments": true,
"noImplicitAny": false,
"strictNullChecks": true,
"strictFunctionTypes": true,
"noImplicitThis": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"resolveJsonModule": true
},
"exclude": ["node_modules"],
"include": ["./src/**/*.tsx", "./src/**/*.ts", "./src/**/*.d.ts"]
}
- Create eslint file
jest.config.ts
import type { Config } from '@jest/types';
// Sync object
const config: Config.InitialOptions = {
verbose: true,
testEnvironment: 'node',
moduleFileExtensions: ['ts', 'tsx', 'js'],
transform: {
'^.+\\.(ts|tsx)$': 'ts-jest'
},
globals: {
'ts-jest': {
tsconfig: 'tsconfig.json'
}
},
testMatch: ['**/*.test.(ts|js)']
};
export default config;
- Add command for test
package.json
"scripts": {
"test": "jest --coverage --detectOpenHandles --forceExit",
"lint": "eslint . --ext .ts"
...
},
1.0.29
2 years ago
1.0.26
2 years ago
1.0.25
2 years ago
1.0.28
2 years ago
1.0.27
2 years ago
1.0.19
2 years ago
1.0.18
2 years ago
1.0.17
2 years ago
1.0.16
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.6
2 years ago
1.0.22
2 years ago
1.0.11
2 years ago
1.0.21
2 years ago
1.0.10
2 years ago
1.0.20
2 years ago
1.0.15
2 years ago
1.0.14
2 years ago
1.0.24
2 years ago
1.0.13
2 years ago
1.0.23
2 years ago
1.0.12
2 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.2
3 years ago