@teambit/eslint 0.0.1021 → 0.0.1023

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,11 +1,13 @@
1
1
  import { ExecutionContext } from '@teambit/envs';
2
2
  import type { ConfigWriterEntry, EnvMapValue, WrittenConfigFile, ExtendingConfigFile, ConfigFile } from '@teambit/workspace-config-files';
3
+ import { Logger } from '@teambit/logger';
3
4
  import { LinterMain } from '@teambit/linter';
4
5
  export declare class EslintConfigWriter implements ConfigWriterEntry {
5
6
  private linter;
7
+ private logger;
6
8
  name: string;
7
9
  cliName: string;
8
- constructor(linter: LinterMain);
10
+ constructor(linter: LinterMain, logger: Logger);
9
11
  patterns: string[];
10
12
  calcConfigFiles(executionContext: ExecutionContext): ConfigFile[] | undefined;
11
13
  postProcessConfigFiles(writtenConfigFiles: WrittenConfigFile[], executionContext: ExecutionContext, envMapValue: EnvMapValue): Promise<void>;
@@ -43,8 +43,9 @@ function _lodash() {
43
43
  }
44
44
  const BIT_GENERATED_ESLINT_CONFIG_COMMENT = '// bit-generated-eslint-config';
45
45
  class EslintConfigWriter {
46
- constructor(linter) {
46
+ constructor(linter, logger) {
47
47
  this.linter = linter;
48
+ this.logger = logger;
48
49
  (0, _defineProperty2().default)(this, "name", 'EslintConfigWriter');
49
50
  (0, _defineProperty2().default)(this, "cliName", 'eslint');
50
51
  (0, _defineProperty2().default)(this, "patterns", ['**/.eslintrc.json']);
@@ -79,6 +80,11 @@ class EslintConfigWriter {
79
80
  const tsConfigFile = writtenConfigFiles.find(file => file.name.includes('tsconfig.bit.eslint'));
80
81
  if (!tsConfigFile) return Promise.resolve();
81
82
  const tsConfigPath = tsConfigFile.filePath;
83
+ const exists = await _fsExtra().default.pathExists(tsConfigPath);
84
+ if (!exists) {
85
+ this.logger.warn(`EslintConfigWriter, tsconfig file ${tsConfigPath} was not found for post process. if it is part of --dry-run, it is ok.`);
86
+ return Promise.resolve();
87
+ }
82
88
  const tsConfig = await _fsExtra().default.readJson(tsConfigPath);
83
89
  const compDirs = envMapValue.paths;
84
90
  const newTsConfig = (0, _typescript().expandIncludeExclude)(tsConfigPath, tsConfig, compDirs);
@@ -1 +1 @@
1
- {"version":3,"names":["BIT_GENERATED_ESLINT_CONFIG_COMMENT","EslintConfigWriter","constructor","linter","calcConfigFiles","executionContext","getLinter","undefined","id","toLowerCase","includes","config","generateIdeConfig","eslintConfig","eslintConfigFile","content","JSON","stringify","name","tsconfig","tsConfigContent","tsConfigHash","sha1","tsConfigName","tsConfigFile","hash","set","postProcessConfigFiles","writtenConfigFiles","envMapValue","find","file","Promise","resolve","tsConfigPath","filePath","tsConfig","fs","readJson","compDirs","paths","newTsConfig","expandIncludeExclude","outputJSONSync","spaces","generateExtendingFile","extends","extendingTarget","isBitGenerated","readFileSync","toString"],"sources":["eslint-config-writer.ts"],"sourcesContent":["import { sha1 } from '@teambit/legacy/dist/utils';\nimport fs from 'fs-extra';\nimport { ExecutionContext } from '@teambit/envs';\nimport type { ConfigWriterEntry, EnvMapValue, WrittenConfigFile, ExtendingConfigFile, ConfigFile } from '@teambit/workspace-config-files';\nimport { expandIncludeExclude } from '@teambit/typescript';\nimport { set } from 'lodash';\nimport { LinterMain } from '@teambit/linter';\nimport { EslintLinterInterface } from './eslint-linter-interface';\n\nconst BIT_GENERATED_ESLINT_CONFIG_COMMENT = '// bit-generated-eslint-config';\n\nexport class EslintConfigWriter implements ConfigWriterEntry {\n name = 'EslintConfigWriter';\n cliName = 'eslint';\n\n constructor(private linter: LinterMain) {}\n patterns: string[] = ['**/.eslintrc.json'];\n\n calcConfigFiles(executionContext: ExecutionContext): ConfigFile[] | undefined {\n const linter = this.linter.getLinter(executionContext, {}) as EslintLinterInterface;\n if (!linter) return undefined;\n if (!linter.id.toLowerCase().includes('eslint')) return undefined;\n const config = linter.generateIdeConfig?.();\n if (!config || !config.eslintConfig) return undefined;\n const eslintConfigFile = {\n content: JSON.stringify(config.eslintConfig, null, 2),\n name: '.eslintrc.bit.{hash}.json',\n };\n if (!config.tsconfig) {\n return [eslintConfigFile];\n }\n const tsConfigContent = JSON.stringify(config.tsconfig, null, 2);\n const tsConfigHash = sha1(tsConfigContent);\n const tsConfigName = `tsconfig.bit.eslint.${tsConfigHash}.json`;\n const tsConfigFile = {\n content: tsConfigContent,\n hash: tsConfigHash,\n name: tsConfigName,\n };\n set(config.eslintConfig, 'parserOptions.project', tsConfigName);\n eslintConfigFile.content = JSON.stringify(config.eslintConfig, null, 2);\n return [eslintConfigFile, tsConfigFile];\n }\n\n async postProcessConfigFiles(\n writtenConfigFiles: WrittenConfigFile[],\n executionContext: ExecutionContext,\n envMapValue: EnvMapValue\n ): Promise<void> {\n const tsConfigFile = writtenConfigFiles.find((file) => file.name.includes('tsconfig.bit.eslint'));\n if (!tsConfigFile) return Promise.resolve();\n const tsConfigPath = tsConfigFile.filePath;\n const tsConfig = await fs.readJson(tsConfigPath);\n const compDirs: string[] = envMapValue.paths;\n const newTsConfig = expandIncludeExclude(tsConfigPath, tsConfig, compDirs);\n\n fs.outputJSONSync(tsConfigPath, newTsConfig, { spaces: 2 });\n return Promise.resolve();\n }\n\n generateExtendingFile(writtenConfigFiles: WrittenConfigFile[]): ExtendingConfigFile | undefined {\n const eslintConfigFile = writtenConfigFiles.find((file) => file.name.includes('.eslintrc.bit'));\n if (!eslintConfigFile) return undefined;\n const config = {\n extends: [eslintConfigFile.filePath],\n };\n const content = `${BIT_GENERATED_ESLINT_CONFIG_COMMENT}\\n${JSON.stringify(config, null, 2)}`;\n return { content, name: '.eslintrc.json', extendingTarget: eslintConfigFile.filePath};\n }\n\n isBitGenerated(filePath: string): boolean {\n const content = fs.readFileSync(filePath).toString();\n return content.includes(BIT_GENERATED_ESLINT_CONFIG_COMMENT);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BIT_GENERATED_ESLINT_CONFIG_COMMENT","EslintConfigWriter","constructor","linter","logger","calcConfigFiles","executionContext","getLinter","undefined","id","toLowerCase","includes","config","generateIdeConfig","eslintConfig","eslintConfigFile","content","JSON","stringify","name","tsconfig","tsConfigContent","tsConfigHash","sha1","tsConfigName","tsConfigFile","hash","set","postProcessConfigFiles","writtenConfigFiles","envMapValue","find","file","Promise","resolve","tsConfigPath","filePath","exists","fs","pathExists","warn","tsConfig","readJson","compDirs","paths","newTsConfig","expandIncludeExclude","outputJSONSync","spaces","generateExtendingFile","extends","extendingTarget","isBitGenerated","readFileSync","toString"],"sources":["eslint-config-writer.ts"],"sourcesContent":["import { sha1 } from '@teambit/legacy/dist/utils';\nimport fs from 'fs-extra';\nimport { ExecutionContext } from '@teambit/envs';\nimport type { ConfigWriterEntry, EnvMapValue, WrittenConfigFile, ExtendingConfigFile, ConfigFile } from '@teambit/workspace-config-files';\nimport { expandIncludeExclude } from '@teambit/typescript';\nimport { set } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { LinterMain } from '@teambit/linter';\nimport { EslintLinterInterface } from './eslint-linter-interface';\n\nconst BIT_GENERATED_ESLINT_CONFIG_COMMENT = '// bit-generated-eslint-config';\n\nexport class EslintConfigWriter implements ConfigWriterEntry {\n name = 'EslintConfigWriter';\n cliName = 'eslint';\n\n constructor(private linter: LinterMain, private logger: Logger) {}\n patterns: string[] = ['**/.eslintrc.json'];\n\n calcConfigFiles(executionContext: ExecutionContext): ConfigFile[] | undefined {\n const linter = this.linter.getLinter(executionContext, {}) as EslintLinterInterface;\n if (!linter) return undefined;\n if (!linter.id.toLowerCase().includes('eslint')) return undefined;\n const config = linter.generateIdeConfig?.();\n if (!config || !config.eslintConfig) return undefined;\n const eslintConfigFile = {\n content: JSON.stringify(config.eslintConfig, null, 2),\n name: '.eslintrc.bit.{hash}.json',\n };\n if (!config.tsconfig) {\n return [eslintConfigFile];\n }\n const tsConfigContent = JSON.stringify(config.tsconfig, null, 2);\n const tsConfigHash = sha1(tsConfigContent);\n const tsConfigName = `tsconfig.bit.eslint.${tsConfigHash}.json`;\n const tsConfigFile = {\n content: tsConfigContent,\n hash: tsConfigHash,\n name: tsConfigName,\n };\n set(config.eslintConfig, 'parserOptions.project', tsConfigName);\n eslintConfigFile.content = JSON.stringify(config.eslintConfig, null, 2);\n return [eslintConfigFile, tsConfigFile];\n }\n\n async postProcessConfigFiles(\n writtenConfigFiles: WrittenConfigFile[],\n executionContext: ExecutionContext,\n envMapValue: EnvMapValue\n ): Promise<void> {\n const tsConfigFile = writtenConfigFiles.find((file) => file.name.includes('tsconfig.bit.eslint'));\n if (!tsConfigFile) return Promise.resolve();\n const tsConfigPath = tsConfigFile.filePath;\n const exists = await fs.pathExists(tsConfigPath);\n if (!exists) {\n this.logger.warn(`EslintConfigWriter, tsconfig file ${tsConfigPath} was not found for post process. if it is part of --dry-run, it is ok.`);\n return Promise.resolve();\n }\n const tsConfig = await fs.readJson(tsConfigPath);\n const compDirs: string[] = envMapValue.paths;\n const newTsConfig = expandIncludeExclude(tsConfigPath, tsConfig, compDirs);\n\n fs.outputJSONSync(tsConfigPath, newTsConfig, { spaces: 2 });\n return Promise.resolve();\n }\n\n generateExtendingFile(writtenConfigFiles: WrittenConfigFile[]): ExtendingConfigFile | undefined {\n const eslintConfigFile = writtenConfigFiles.find((file) => file.name.includes('.eslintrc.bit'));\n if (!eslintConfigFile) return undefined;\n const config = {\n extends: [eslintConfigFile.filePath],\n };\n const content = `${BIT_GENERATED_ESLINT_CONFIG_COMMENT}\\n${JSON.stringify(config, null, 2)}`;\n return { content, name: '.eslintrc.json', extendingTarget: eslintConfigFile.filePath};\n }\n\n isBitGenerated(filePath: string): boolean {\n const content = fs.readFileSync(filePath).toString();\n return content.includes(BIT_GENERATED_ESLINT_CONFIG_COMMENT);\n }\n}\n"],"mappings":"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"}
@@ -92,7 +92,7 @@ class ESLintMain {
92
92
  }
93
93
  static async provider([loggerExt, workspaceConfigFiles, linter]) {
94
94
  const logger = loggerExt.createLogger(_eslint().ESLintAspect.id);
95
- workspaceConfigFiles.registerConfigWriter(new (_eslintConfigWriter().EslintConfigWriter)(linter));
95
+ workspaceConfigFiles.registerConfigWriter(new (_eslintConfigWriter().EslintConfigWriter)(linter, logger));
96
96
  return new ESLintMain(logger);
97
97
  }
98
98
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ESLintMain","constructor","logger","createLinter","context","options","transformers","ESLintModule","mergedOptions","getOptions","configMutator","EslintConfigMutator","transformerContext","fix","afterMutation","runTransformersWithContext","clone","ESLintLinter","raw","provider","loggerExt","workspaceConfigFiles","linter","createLogger","ESLintAspect","id","registerConfigWriter","EslintConfigWriter","MainRuntime","LoggerAspect","WorkspaceConfigFilesAspect","LinterAspect","addRuntime","mergedConfig","overrideConfig","config","extensions","extensionFormats","useEslintrc","cwd","pluginPath","fixTypes","Object","assign","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["eslint.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\n// import { Linter as ESLinter, ESLint as ESLintLib } from 'eslint';\nimport { ESLint as ESLintLib } from 'eslint';\nimport LinterAspect, { Linter, LinterContext, LinterMain } from '@teambit/linter';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { EslintConfigMutator } from '@teambit/defender.eslint.config-mutator';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport { ESLintAspect } from './eslint.aspect';\nimport { ESLintLinter } from './eslint.linter';\nimport { EslintConfigWriter } from './eslint-config-writer';\n\nexport type ESLintOptions = {\n /**\n * linter config for eslint.\n */\n // config: ESLinter.Config;\n config: ESLintLib.Options;\n\n /**\n * specify to path to resolve eslint plugins from.\n */\n pluginPath?: string;\n\n /**\n * decide the formatter for the CLI output.\n */\n formatter?: string;\n\n /**\n * file types to lint.\n */\n extensions?: string[];\n\n // TODO: improve type\n /**\n * typescript config for eslint.\n * If you pass this, bit will auto generate a temp config file in `node_modules/.cache` and pass it to eslint.\n * In case you have include/exclude props in the tsconfig, they will be changed to handle the fact that they are inside the node_modules/.cache folder.\n * a `../../` will be added to the beginning of the path.\n */\n tsConfig?: Record<string, any>;\n};\n\nexport type EslintConfigTransformContext = {\n fix: boolean;\n};\n\nexport type EslintConfigTransformer = (\n config: EslintConfigMutator,\n context: EslintConfigTransformContext\n) => EslintConfigMutator;\n\nexport class ESLintMain {\n constructor(private logger: Logger) {}\n\n /**\n * create a eslint linter instance.\n * @param options eslint options.\n * @param ESLintModule reference to an `eslint` module.\n */\n createLinter(\n context: LinterContext,\n options: ESLintOptions,\n transformers: EslintConfigTransformer[] = [],\n ESLintModule?: any\n ): Linter {\n const mergedOptions = getOptions(options, context);\n const configMutator = new EslintConfigMutator(mergedOptions);\n const transformerContext: EslintConfigTransformContext = { fix: !!context.fix };\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n\n return new ESLintLinter(this.logger, afterMutation.raw, ESLintModule);\n }\n\n static runtime = MainRuntime;\n\n static dependencies = [LoggerAspect, WorkspaceConfigFilesAspect, LinterAspect];\n\n static async provider([loggerExt, workspaceConfigFiles, linter]: [\n LoggerMain,\n WorkspaceConfigFilesMain,\n LinterMain\n ]): Promise<ESLintMain> {\n const logger = loggerExt.createLogger(ESLintAspect.id);\n workspaceConfigFiles.registerConfigWriter(new EslintConfigWriter(linter));\n return new ESLintMain(logger);\n }\n}\n\nESLintAspect.addRuntime(ESLintMain);\n\n/**\n * get options for eslint.\n */\nfunction getOptions(options: ESLintOptions, context: LinterContext): ESLintOptions {\n const mergedConfig: ESLintLib.Options = {\n // @ts-ignore - this is a bug in the @types/eslint types\n overrideConfig: options.config,\n extensions: context.extensionFormats,\n useEslintrc: false,\n cwd: options.pluginPath,\n fix: !!context.fix,\n fixTypes: context.fixTypes,\n };\n return Object.assign({}, options, { config: mergedConfig, extensions: context.extensionFormats });\n}\n\nexport function runTransformersWithContext(\n config: EslintConfigMutator,\n transformers: EslintConfigTransformer[] = [],\n context: EslintConfigTransformContext\n): EslintConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AA2CO,MAAMA,UAAU,CAAC;EACtBC,WAAW,CAASC,MAAc,EAAE;IAAA,KAAhBA,MAAc,GAAdA,MAAc;EAAG;;EAErC;AACF;AACA;AACA;AACA;EACEC,YAAY,CACVC,OAAsB,EACtBC,OAAsB,EACtBC,YAAuC,GAAG,EAAE,EAC5CC,YAAkB,EACV;IACR,MAAMC,aAAa,GAAGC,UAAU,CAACJ,OAAO,EAAED,OAAO,CAAC;IAClD,MAAMM,aAAa,GAAG,KAAIC,qCAAmB,EAACH,aAAa,CAAC;IAC5D,MAAMI,kBAAgD,GAAG;MAAEC,GAAG,EAAE,CAAC,CAACT,OAAO,CAACS;IAAI,CAAC;IAC/E,MAAMC,aAAa,GAAGC,0BAA0B,CAACL,aAAa,CAACM,KAAK,EAAE,EAAEV,YAAY,EAAEM,kBAAkB,CAAC;IAEzG,OAAO,KAAIK,uBAAY,EAAC,IAAI,CAACf,MAAM,EAAEY,aAAa,CAACI,GAAG,EAAEX,YAAY,CAAC;EACvE;EAMA,aAAaY,QAAQ,CAAC,CAACC,SAAS,EAAEC,oBAAoB,EAAEC,MAAM,CAI7D,EAAuB;IACtB,MAAMpB,MAAM,GAAGkB,SAAS,CAACG,YAAY,CAACC,sBAAY,CAACC,EAAE,CAAC;IACtDJ,oBAAoB,CAACK,oBAAoB,CAAC,KAAIC,wCAAkB,EAACL,MAAM,CAAC,CAAC;IACzE,OAAO,IAAItB,UAAU,CAACE,MAAM,CAAC;EAC/B;AACF;AAAC;AAAA,gCAnCYF,UAAU,aAsBJ4B,kBAAW;AAAA,gCAtBjB5B,UAAU,kBAwBC,CAAC6B,sBAAY,EAAEC,+BAA0B,EAAEC,iBAAY,CAAC;AAahFP,sBAAY,CAACQ,UAAU,CAAChC,UAAU,CAAC;;AAEnC;AACA;AACA;AACA,SAASS,UAAU,CAACJ,OAAsB,EAAED,OAAsB,EAAiB;EACjF,MAAM6B,YAA+B,GAAG;IACtC;IACAC,cAAc,EAAE7B,OAAO,CAAC8B,MAAM;IAC9BC,UAAU,EAAEhC,OAAO,CAACiC,gBAAgB;IACpCC,WAAW,EAAE,KAAK;IAClBC,GAAG,EAAElC,OAAO,CAACmC,UAAU;IACvB3B,GAAG,EAAE,CAAC,CAACT,OAAO,CAACS,GAAG;IAClB4B,QAAQ,EAAErC,OAAO,CAACqC;EACpB,CAAC;EACD,OAAOC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEtC,OAAO,EAAE;IAAE8B,MAAM,EAAEF,YAAY;IAAEG,UAAU,EAAEhC,OAAO,CAACiC;EAAiB,CAAC,CAAC;AACnG;AAEO,SAAStB,0BAA0B,CACxCoB,MAA2B,EAC3B7B,YAAuC,GAAG,EAAE,EAC5CF,OAAqC,EAChB;EACrB,IAAI,CAACwC,KAAK,CAACC,OAAO,CAACvC,YAAY,CAAC,EAAE,OAAO6B,MAAM;EAC/C,MAAMW,SAAS,GAAGxC,YAAY,CAACyC,MAAM,CAAC,CAACC,GAAG,EAAEC,WAAW,KAAK;IAC1D,OAAOA,WAAW,CAACD,GAAG,EAAE5C,OAAO,CAAC;EAClC,CAAC,EAAE+B,MAAM,CAAC;EACV,OAAOW,SAAS;AAClB"}
1
+ {"version":3,"names":["ESLintMain","constructor","logger","createLinter","context","options","transformers","ESLintModule","mergedOptions","getOptions","configMutator","EslintConfigMutator","transformerContext","fix","afterMutation","runTransformersWithContext","clone","ESLintLinter","raw","provider","loggerExt","workspaceConfigFiles","linter","createLogger","ESLintAspect","id","registerConfigWriter","EslintConfigWriter","MainRuntime","LoggerAspect","WorkspaceConfigFilesAspect","LinterAspect","addRuntime","mergedConfig","overrideConfig","config","extensions","extensionFormats","useEslintrc","cwd","pluginPath","fixTypes","Object","assign","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["eslint.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\n// import { Linter as ESLinter, ESLint as ESLintLib } from 'eslint';\nimport { ESLint as ESLintLib } from 'eslint';\nimport LinterAspect, { Linter, LinterContext, LinterMain } from '@teambit/linter';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { EslintConfigMutator } from '@teambit/defender.eslint.config-mutator';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport { ESLintAspect } from './eslint.aspect';\nimport { ESLintLinter } from './eslint.linter';\nimport { EslintConfigWriter } from './eslint-config-writer';\n\nexport type ESLintOptions = {\n /**\n * linter config for eslint.\n */\n // config: ESLinter.Config;\n config: ESLintLib.Options;\n\n /**\n * specify to path to resolve eslint plugins from.\n */\n pluginPath?: string;\n\n /**\n * decide the formatter for the CLI output.\n */\n formatter?: string;\n\n /**\n * file types to lint.\n */\n extensions?: string[];\n\n // TODO: improve type\n /**\n * typescript config for eslint.\n * If you pass this, bit will auto generate a temp config file in `node_modules/.cache` and pass it to eslint.\n * In case you have include/exclude props in the tsconfig, they will be changed to handle the fact that they are inside the node_modules/.cache folder.\n * a `../../` will be added to the beginning of the path.\n */\n tsConfig?: Record<string, any>;\n};\n\nexport type EslintConfigTransformContext = {\n fix: boolean;\n};\n\nexport type EslintConfigTransformer = (\n config: EslintConfigMutator,\n context: EslintConfigTransformContext\n) => EslintConfigMutator;\n\nexport class ESLintMain {\n constructor(private logger: Logger) {}\n\n /**\n * create a eslint linter instance.\n * @param options eslint options.\n * @param ESLintModule reference to an `eslint` module.\n */\n createLinter(\n context: LinterContext,\n options: ESLintOptions,\n transformers: EslintConfigTransformer[] = [],\n ESLintModule?: any\n ): Linter {\n const mergedOptions = getOptions(options, context);\n const configMutator = new EslintConfigMutator(mergedOptions);\n const transformerContext: EslintConfigTransformContext = { fix: !!context.fix };\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n\n return new ESLintLinter(this.logger, afterMutation.raw, ESLintModule);\n }\n\n static runtime = MainRuntime;\n\n static dependencies = [LoggerAspect, WorkspaceConfigFilesAspect, LinterAspect];\n\n static async provider([loggerExt, workspaceConfigFiles, linter]: [\n LoggerMain,\n WorkspaceConfigFilesMain,\n LinterMain\n ]): Promise<ESLintMain> {\n const logger = loggerExt.createLogger(ESLintAspect.id);\n workspaceConfigFiles.registerConfigWriter(new EslintConfigWriter(linter, logger));\n return new ESLintMain(logger);\n }\n}\n\nESLintAspect.addRuntime(ESLintMain);\n\n/**\n * get options for eslint.\n */\nfunction getOptions(options: ESLintOptions, context: LinterContext): ESLintOptions {\n const mergedConfig: ESLintLib.Options = {\n // @ts-ignore - this is a bug in the @types/eslint types\n overrideConfig: options.config,\n extensions: context.extensionFormats,\n useEslintrc: false,\n cwd: options.pluginPath,\n fix: !!context.fix,\n fixTypes: context.fixTypes,\n };\n return Object.assign({}, options, { config: mergedConfig, extensions: context.extensionFormats });\n}\n\nexport function runTransformersWithContext(\n config: EslintConfigMutator,\n transformers: EslintConfigTransformer[] = [],\n context: EslintConfigTransformContext\n): EslintConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_eslint@0.0.1021/dist/eslint.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_eslint@0.0.1021/dist/eslint.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_eslint@0.0.1023/dist/eslint.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_eslint@0.0.1023/dist/eslint.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/eslint",
3
- "version": "0.0.1021",
3
+ "version": "0.0.1023",
4
4
  "homepage": "https://bit.dev/teambit/defender/eslint",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.defender",
8
8
  "name": "eslint",
9
- "version": "0.0.1021"
9
+ "version": "0.0.1023"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -17,13 +17,13 @@
17
17
  "core-js": "^3.0.0",
18
18
  "@babel/runtime": "7.20.0",
19
19
  "@teambit/harmony": "0.4.6",
20
- "@teambit/envs": "0.0.1021",
21
- "@teambit/linter": "0.0.1021",
22
- "@teambit/typescript": "0.0.1021",
23
- "@teambit/workspace-config-files": "0.0.1",
24
- "@teambit/component": "0.0.1021",
25
- "@teambit/logger": "0.0.777",
26
- "@teambit/cli": "0.0.684",
20
+ "@teambit/envs": "0.0.1023",
21
+ "@teambit/linter": "0.0.1023",
22
+ "@teambit/logger": "0.0.779",
23
+ "@teambit/typescript": "0.0.1023",
24
+ "@teambit/workspace-config-files": "0.0.3",
25
+ "@teambit/component": "0.0.1023",
26
+ "@teambit/cli": "0.0.686",
27
27
  "@teambit/defender.eslint.config-mutator": "0.0.92"
28
28
  },
29
29
  "devDependencies": {
@@ -38,7 +38,7 @@
38
38
  "@types/testing-library__jest-dom": "5.9.5"
39
39
  },
40
40
  "peerDependencies": {
41
- "@teambit/legacy": "1.0.464",
41
+ "@teambit/legacy": "1.0.466",
42
42
  "react": "^16.8.0 || ^17.0.0",
43
43
  "react-dom": "^16.8.0 || ^17.0.0"
44
44
  },