1.0.29 • Published 2 years ago

@personal-project/core v1.0.29

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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