@vitus-labs/tools-lint 0.46.0 → 1.0.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-tools-lint.js","sources":["../src/eslint/helpers.ts","../src/eslint/index.ts","../src/styles.ts"],"sourcesContent":["import type { Options } from './types'\n\nconst loadTsProjects = (projects) =>\n projects.map((item) => `${item}/**/*/tsconfig.json`)\n\nconst loadPlugins = (options: Options) => {\n const RESULT = ['@typescript-eslint']\n\n if (options.import) RESULT.push('import')\n if (options.react) RESULT.push('react')\n if (options.a11y) RESULT.push('jsx-a11y')\n if (options.graphql) RESULT.push('graphql')\n if (options.markdown) RESULT.push('markdown')\n if (options.jest) RESULT.push('jest')\n if (options.prettier) RESULT.push('prettier')\n\n return RESULT\n}\n\nconst loadExtendsConfigs = (options: Options) => {\n const RESULT: string[] = ['eslint:recommended']\n\n if (options.import)\n RESULT.push('plugin:import/recommended', 'plugin:import/typescript')\n\n RESULT.push(\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n 'airbnb'\n )\n\n if (options.react)\n RESULT.push('plugin:react/recommended', 'plugin:react-hooks/recommended')\n\n if (options.a11y) RESULT.push('plugin:jsx-a11y/recommended')\n\n if (options.prettier) RESULT.push('plugin:prettier/recommended', 'prettier')\n\n if (options.jest) RESULT.push('plugin:jest/all')\n\n return RESULT\n}\n\nconst extendObject = (\n condition: boolean | null | undefined,\n object: Record<string, any> = {}\n): Record<string, any> => (condition ? object : {})\n\nexport { loadTsProjects, loadPlugins, loadExtendsConfigs, extendObject }\n","import { filter, merge, omit, isEmpty } from 'lodash'\nimport {\n loadTsProjects,\n loadPlugins,\n loadExtendsConfigs,\n extendObject,\n} from './helpers'\nimport type { Options } from './types'\n\ntype Config = Partial<{\n rootPath: string\n projects: string[]\n extensions: string[]\n graphqlClient: 'apollo' | 'relay' | 'lokka' | 'fraql' | 'literal'\n scope: string\n config: Record<string, any>\n}>\n\nconst createEslint =\n (options?: Options) =>\n ({\n rootPath = './',\n projects = ['packages', 'apps', 'tools', 'features'],\n extensions = [],\n graphqlClient = undefined,\n scope,\n config,\n }: Config = {}) => {\n const defaultOptions: Options = {\n react: true,\n typescript: true,\n import: true,\n a11y: true,\n prettier: true,\n markdown: true,\n graphql: false,\n jest: false,\n }\n const finalOptions = merge(defaultOptions, options)\n const optionsConfig = omit(finalOptions, 'jest')\n\n const extensionsConfig = [\n '.js',\n '.jsx',\n '.ts',\n '.tsx',\n '.d.ts',\n ...extensions,\n ]\n const tsProjects = loadTsProjects(projects)\n\n const pluginsConfig = loadPlugins(optionsConfig)\n const extendsConfig = loadExtendsConfigs(optionsConfig)\n\n const OVERRIDES = [\n // --------------------------------------------------\n // SCRIPTS\n // --------------------------------------------------\n {\n files: ['**/bin/*.js'],\n rules: {\n '@typescript-eslint/no-var-requires': 'off',\n 'no-console': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n peerDependencies: true,\n },\n ],\n }),\n },\n },\n\n // --------------------------------------------------\n // STORIES of STORYBOOK\n // --------------------------------------------------\n {\n files: [\n '**/__stories__/**',\n '*.stories.*',\n '*stories.*',\n '*.storyOf.*',\n ],\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n 'no-console': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n devDependencies: true,\n optionalDependencies: true,\n peerDependencies: true,\n },\n ],\n }),\n },\n },\n\n // --------------------------------------------------\n // MARKDOWN\n // --------------------------------------------------\n extendObject(finalOptions.markdown, {\n files: ['**/*.md', '**/*.mdx'],\n processor: 'markdown/markdown',\n }),\n\n // --------------------------------------------------\n // CONFIGURATION FILES\n // --------------------------------------------------\n {\n files: [\n '.eslintrc.js',\n '*.eslintrc.js',\n '*.eslintrc.*.js',\n '*.config.js',\n '.babelrc.js',\n ],\n rules: {\n '@typescript-eslint/no-var-requires': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n devDependencies: true,\n optionalDependencies: true,\n peerDependencies: true,\n },\n ],\n }),\n },\n },\n\n // --------------------------------------------------\n // TESTS\n // --------------------------------------------------\n extendObject(finalOptions.jest, {\n files: ['**/__tests__/**', '**/__specs__/**', '*.spec.*', '*.test.*'],\n plugins: loadPlugins(optionsConfig),\n env: {\n 'jest/globals': true,\n },\n extends: loadExtendsConfigs(optionsConfig),\n settings: {\n jest: {\n version: 27,\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n 'no-console': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n devDependencies: true,\n optionalDependencies: true,\n peerDependencies: true,\n },\n ],\n }),\n },\n }),\n ]\n\n const CONFIG = {\n root: true,\n env: {\n browser: true,\n node: true,\n es2022: true,\n },\n globals: {\n __NODE__: true,\n __WEB__: true,\n __BROWSER__: true,\n __NATIVE__: true,\n __CLIENT__: true,\n },\n parser: '@typescript-eslint/parser',\n plugins: pluginsConfig,\n parserOptions: {\n tsconfigRootDir: rootPath,\n project: ['tsconfig.json', ...tsProjects],\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 'latest',\n sourceType: 'module',\n },\n extends: extendsConfig,\n settings: {\n ...extendObject(finalOptions.import, {\n 'import/extensions': extensionsConfig,\n 'import/parsers': {\n '@typescript-eslint/parser': ['.ts', '.tsx'],\n },\n 'import/resolver': {\n node: {\n extensions: extensionsConfig,\n },\n ...extendObject(finalOptions.typescript, {\n typescript: {\n alwaysTryTypes: true,\n project: [...tsProjects, 'tsconfig.json'],\n },\n }),\n },\n ...extendObject(!!scope, { 'import/internal-regex': scope }),\n }),\n },\n rules: {\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n 'no-shadow': 'off',\n 'no-use-before-define': 'off', // is being used @typescript-eslint/no-use-before-define\n 'no-param-reassign': [\n 'error',\n { props: true, ignorePropertyModificationsFor: ['self'] },\n ],\n ...extendObject(finalOptions.typescript, {\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-useless-constructor': 'error',\n '@typescript-eslint/explicit-function-return-type': 'off',\n '@typescript-eslint/no-unused-vars': 'error',\n '@typescript-eslint/member-delimiter-style': [\n 2,\n {\n multiline: {\n delimiter: 'none',\n requireLast: false,\n },\n singleline: {\n delimiter: 'semi',\n requireLast: false,\n },\n },\n ],\n }),\n // --------------------------------------------------\n // IMPORT rules\n // --------------------------------------------------\n ...extendObject(finalOptions.import, {\n 'import/extensions': [\n 'error',\n 'ignorePackages',\n {\n js: 'never',\n jsx: 'never',\n ts: 'never',\n tsx: 'never',\n },\n ],\n }),\n // --------------------------------------------------\n // REACT rules\n // --------------------------------------------------\n ...extendObject(finalOptions.react, {\n 'react/require-default-props': 'off',\n 'react/prop-types': 'off',\n 'react/jsx-props-no-spreading': 'off',\n 'react/function-component-definition': 'off',\n 'react/jsx-filename-extension': [1, { extensions: extensionsConfig }],\n }),\n // --------------------------------------------------\n // GRAPHQL rules\n // --------------------------------------------------\n ...extendObject(finalOptions.graphql, {\n 'graphql/template-strings': [\n 'error',\n {\n // Import default settings for your GraphQL client. Supported values:\n // 'apollo', 'relay', 'lokka', 'fraql', 'literal'\n env: graphqlClient || 'literal',\n // no need to specify schema here, it will be automatically determined using .graphqlconfig\n },\n ],\n }),\n // --------------------------------------------------\n // PRETTIER rules\n // --------------------------------------------------\n ...extendObject(finalOptions.prettier, {\n 'prettier/prettier': 'error',\n }),\n },\n overrides: filter(OVERRIDES, (item) => !isEmpty(item)),\n }\n\n return merge(CONFIG, config)\n }\n\nexport { createEslint }\nexport default createEslint()()\n","export default {\n processors: ['stylelint-processor-styled-components'],\n extends: [\n 'stylelint-config-recommended',\n 'stylelint-config-styled-components',\n 'stylelint-config-prettier',\n ],\n}\n"],"names":["merge","omit","filter","isEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"vitus-tools-lint.js","sources":["../src/eslint/helpers.ts","../src/eslint/index.ts","../src/styles.ts"],"sourcesContent":["import type { Options } from './types'\n\nconst loadTsProjects = (projects) =>\n projects.map((item) => `${item}/**/*/tsconfig.json`)\n\nconst loadPlugins = (options: Options) => {\n const RESULT = ['@typescript-eslint']\n\n if (options.import) RESULT.push('import')\n if (options.react) RESULT.push('react')\n if (options.a11y) RESULT.push('jsx-a11y')\n if (options.graphql) RESULT.push('graphql')\n if (options.markdown) RESULT.push('markdown')\n if (options.jest) RESULT.push('jest')\n if (options.prettier) RESULT.push('prettier')\n\n return RESULT\n}\n\nconst loadExtendsConfigs = (options: Options) => {\n const RESULT: string[] = ['eslint:recommended']\n\n if (options.import)\n RESULT.push('plugin:import/recommended', 'plugin:import/typescript')\n\n RESULT.push(\n 'plugin:@typescript-eslint/recommended-type-checked',\n 'plugin:@typescript-eslint/stylistic-type-checked',\n 'airbnb'\n )\n\n if (options.react)\n RESULT.push('plugin:react/recommended', 'plugin:react-hooks/recommended')\n\n if (options.a11y) RESULT.push('plugin:jsx-a11y/recommended')\n\n if (options.prettier) RESULT.push('plugin:prettier/recommended', 'prettier')\n\n if (options.jest) RESULT.push('plugin:jest/all')\n\n return RESULT\n}\n\nconst extendObject = (\n condition: boolean | null | undefined,\n object: Record<string, any> = {}\n): Record<string, any> => (condition ? object : {})\n\nexport { loadTsProjects, loadPlugins, loadExtendsConfigs, extendObject }\n","import { filter, merge, omit, isEmpty } from 'lodash-es'\nimport {\n loadTsProjects,\n loadPlugins,\n loadExtendsConfigs,\n extendObject,\n} from './helpers'\nimport type { Options } from './types'\n\ntype Config = Partial<{\n rootPath: string\n projects: string[]\n extensions: string[]\n graphqlClient: 'apollo' | 'relay' | 'lokka' | 'fraql' | 'literal'\n scope: string\n config: Record<string, any>\n}>\n\nconst createEslint =\n (options?: Options) =>\n ({\n rootPath = './',\n projects = ['packages', 'apps', 'tools', 'features'],\n extensions = [],\n graphqlClient = undefined,\n scope,\n config,\n }: Config = {}) => {\n const defaultOptions: Options = {\n react: true,\n typescript: true,\n import: true,\n a11y: true,\n prettier: true,\n markdown: true,\n graphql: false,\n jest: false,\n }\n const finalOptions = merge(defaultOptions, options)\n const optionsConfig = omit(finalOptions, 'jest')\n\n const extensionsConfig = [\n '.js',\n '.jsx',\n '.ts',\n '.tsx',\n '.d.ts',\n ...extensions,\n ]\n const tsProjects = loadTsProjects(projects)\n\n const pluginsConfig = loadPlugins(optionsConfig)\n const extendsConfig = loadExtendsConfigs(optionsConfig)\n\n const OVERRIDES = [\n // --------------------------------------------------\n // SCRIPTS\n // --------------------------------------------------\n {\n files: ['**/bin/*.js'],\n rules: {\n '@typescript-eslint/no-var-requires': 'off',\n 'no-console': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n peerDependencies: true,\n },\n ],\n }),\n },\n },\n\n // --------------------------------------------------\n // STORIES of STORYBOOK\n // --------------------------------------------------\n {\n files: [\n '**/__stories__/**',\n '*.stories.*',\n '*stories.*',\n '*.storyOf.*',\n ],\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n 'no-console': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n devDependencies: true,\n optionalDependencies: true,\n peerDependencies: true,\n },\n ],\n }),\n },\n },\n\n // --------------------------------------------------\n // MARKDOWN\n // --------------------------------------------------\n extendObject(finalOptions.markdown, {\n files: ['**/*.md', '**/*.mdx'],\n processor: 'markdown/markdown',\n }),\n\n // --------------------------------------------------\n // CONFIGURATION FILES\n // --------------------------------------------------\n {\n files: [\n '.eslintrc.js',\n '*.eslintrc.js',\n '*.eslintrc.*.js',\n '*.config.js',\n '.babelrc.js',\n ],\n rules: {\n '@typescript-eslint/no-var-requires': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n devDependencies: true,\n optionalDependencies: true,\n peerDependencies: true,\n },\n ],\n }),\n },\n },\n\n // --------------------------------------------------\n // TESTS\n // --------------------------------------------------\n extendObject(finalOptions.jest, {\n files: ['**/__tests__/**', '**/__specs__/**', '*.spec.*', '*.test.*'],\n plugins: loadPlugins(optionsConfig),\n env: {\n 'jest/globals': true,\n },\n extends: loadExtendsConfigs(optionsConfig),\n settings: {\n jest: {\n version: 27,\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n 'no-console': 'off',\n ...extendObject(finalOptions.import, {\n 'import/no-extraneous-dependencies': [\n 'error',\n {\n devDependencies: true,\n optionalDependencies: true,\n peerDependencies: true,\n },\n ],\n }),\n },\n }),\n ]\n\n const CONFIG = {\n root: true,\n env: {\n browser: true,\n node: true,\n es2022: true,\n },\n globals: {\n __NODE__: true,\n __WEB__: true,\n __BROWSER__: true,\n __NATIVE__: true,\n __CLIENT__: true,\n },\n parser: '@typescript-eslint/parser',\n plugins: pluginsConfig,\n parserOptions: {\n tsconfigRootDir: rootPath,\n project: true,\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 'latest',\n sourceType: 'module',\n },\n extends: extendsConfig,\n settings: {\n ...extendObject(finalOptions.import, {\n 'import/extensions': extensionsConfig,\n 'import/parsers': {\n '@typescript-eslint/parser': ['.ts', '.tsx'],\n },\n 'import/resolver': {\n node: {\n extensions: extensionsConfig,\n },\n ...extendObject(finalOptions.typescript, {\n typescript: {\n alwaysTryTypes: true,\n project: [...tsProjects, 'tsconfig.json'],\n },\n }),\n },\n ...extendObject(!!scope, { 'import/internal-regex': scope }),\n }),\n },\n rules: {\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n 'no-shadow': 'off',\n 'no-use-before-define': 'off', // is being used @typescript-eslint/no-use-before-define\n 'no-param-reassign': [\n 'error',\n { props: true, ignorePropertyModificationsFor: ['self'] },\n ],\n ...extendObject(finalOptions.typescript, {\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-useless-constructor': 'error',\n '@typescript-eslint/explicit-function-return-type': 'off',\n '@typescript-eslint/no-unused-vars': 'error',\n '@typescript-eslint/member-delimiter-style': [\n 2,\n {\n multiline: {\n delimiter: 'none',\n requireLast: false,\n },\n singleline: {\n delimiter: 'semi',\n requireLast: false,\n },\n },\n ],\n }),\n // --------------------------------------------------\n // IMPORT rules\n // --------------------------------------------------\n ...extendObject(finalOptions.import, {\n 'import/prefer-default-export': 'off',\n 'import/extensions': [\n 'error',\n 'ignorePackages',\n {\n js: 'never',\n jsx: 'never',\n ts: 'never',\n tsx: 'never',\n },\n ],\n }),\n // --------------------------------------------------\n // REACT rules\n // --------------------------------------------------\n ...extendObject(finalOptions.react, {\n 'react/require-default-props': 'off',\n 'react/prop-types': 'off',\n 'react/jsx-props-no-spreading': 'off',\n 'react/function-component-definition': 'off',\n 'react/jsx-filename-extension': [1, { extensions: extensionsConfig }],\n }),\n // --------------------------------------------------\n // GRAPHQL rules\n // --------------------------------------------------\n ...extendObject(finalOptions.graphql, {\n 'graphql/template-strings': [\n 'error',\n {\n // Import default settings for your GraphQL client. Supported values:\n // 'apollo', 'relay', 'lokka', 'fraql', 'literal'\n env: graphqlClient || 'literal',\n // no need to specify schema here, it will be automatically determined using .graphqlconfig\n },\n ],\n }),\n // --------------------------------------------------\n // PRETTIER rules\n // --------------------------------------------------\n ...extendObject(finalOptions.prettier, {\n 'prettier/prettier': 'error',\n }),\n },\n overrides: filter(OVERRIDES, (item) => !isEmpty(item)),\n }\n\n return merge(CONFIG, config)\n }\n\nexport { createEslint }\nexport default createEslint()()\n","export default {\n processors: ['stylelint-processor-styled-components'],\n extends: [\n 'stylelint-config-recommended',\n 'stylelint-config-styled-components',\n 'stylelint-config-prettier',\n ],\n}\n"],"names":["merge","omit","filter","isEmpty"],"mappings":"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"}