NPM configuration for base typescript projects
Includes:
- Prettier
- Eslint
- Typescript
And configuration for saneish defaults, which can be extended
Most of these are the raw defaults/recommended settings from typescript, eslint and prettier.
export class FooBar {
get foo(): number {
return 1;
}
async bar(): Promise<string> {
return 'bar';
}
/**
* @param foo foo to bar
*/
fooBar(foo = 'foo'): string {
return `${foo}bar`;
}
}
- Install
eslint
using the extensions menu - Add the following to your settings.json
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": ["javascript"],
IntelliJ has ESLint support by default,
- Open the settings in Languages & Frameworks > JavaScript > Code Quality Tools > ESLint
- Check Automatic ESLint Configuration
- Install LINZ Style
npm install @linzjs/style
- Applying eslint config There are two ways to apply the config
Either create the base configuration files
# If on windows run `node ./node_modules/@linzjs/style/build/src/install.js`
# - tsconfig.json
# - .eslintrc.cjs
# - .prettierrc.cjs
npx linz-style-install
Or extend your existing eslintrc.js
config
Example extending the .eslintrc.js
file in your project
module.exports = {
extends: ["./node_modules/@linzjs/style/.eslintrc.cjs"],
overrides: [
{
/** Overrides for typescript */
files: ["**/*.ts", "**/*.tsx"],
rules: {
"@typescript-eslint/super-crazy-hook-rule": "error",
},
},
]
}
- Apply the formatting/linting to all source code
npx eslint .
See Migration Docs