UNPKG

@iobroker/create-adapter

Version:

Command line utility to create customized ioBroker adapters

85 lines 2.62 kB
"use strict"; const templateFunction = answers => { // This version is intended for use in TS projects if (answers.language !== "TypeScript") return; const useESLint = answers.tools && answers.tools.indexOf("ESLint") > -1; if (!useESLint) return; const usePrettier = answers.tools && answers.tools.indexOf("Prettier") > -1; const template = ` module.exports = { parser: "@typescript-eslint/parser", // Specifies the ESLint parser parserOptions: { ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features sourceType: "module", // Allows for the use of imports project: "./tsconfig.json", }, extends: [ "plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin ${usePrettier ? (` "prettier/@typescript-eslint", // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier "plugin:prettier/recommended", // Enables eslint-plugin-prettier and displays prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. `) : ""} ], plugins: [], rules: { ${usePrettier ? "" : (` "indent": "off", "@typescript-eslint/indent": [ "error", ${answers.indentation === "Tab" ? `"tab"` : "4"}, { "SwitchCase": 1 } ], "quotes": [ "error", "${typeof answers.quotes === "string" ? answers.quotes : "double"}", { "avoidEscape": true, "allowTemplateLiterals": true } ], `)} "@typescript-eslint/no-parameter-properties": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-use-before-define": [ "error", { functions: false, typedefs: false, classes: false, }, ], "@typescript-eslint/no-unused-vars": [ "error", { ignoreRestSiblings: true, argsIgnorePattern: "^_", }, ], "@typescript-eslint/explicit-function-return-type": [ "warn", { allowExpressions: true, allowTypedFunctionExpressions: true, }, ], "@typescript-eslint/no-object-literal-type-assertion": "off", "@typescript-eslint/interface-name-prefix": "off", "@typescript-eslint/no-non-null-assertion": "off", // This is necessary for Map.has()/get()! "no-var": "error", "prefer-const": "error", }, overrides: [ { files: ["*.test.ts"], rules: { "@typescript-eslint/explicit-function-return-type": "off", }, }, ], }; `; return template.trim(); }; templateFunction.customPath = ".eslintrc.js"; module.exports = templateFunction; //# sourceMappingURL=_eslintrc_typescript.js.js.map