@teambit/validator 0.0.141 → 0.0.144

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.
@@ -17,9 +17,10 @@ export declare class ValidateCmd implements Command {
17
17
  group: string;
18
18
  options: CommandOptions;
19
19
  constructor(validator: ValidatorMain, workspace: Workspace, logger: Logger);
20
- report([pattern]: [string], { all, continueOnError }: {
20
+ report([pattern]: [string], { all, continueOnError, skipTasks }: {
21
21
  all: boolean;
22
22
  continueOnError: boolean;
23
+ skipTasks?: string;
23
24
  }): Promise<{
24
25
  code: number;
25
26
  data: string;
@@ -29,6 +29,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
29
29
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
30
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
31
31
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
32
+ const VALID_TASKS = ['check-types', 'lint', 'test'];
32
33
  class ValidateCmd {
33
34
  constructor(validator, workspace, logger) {
34
35
  this.validator = validator;
@@ -45,11 +46,12 @@ by default validates only new and modified components. use --all to validate all
45
46
  }]);
46
47
  _defineProperty(this, "alias", '');
47
48
  _defineProperty(this, "group", 'testing');
48
- _defineProperty(this, "options", [['a', 'all', 'validate all components, not only modified and new'], ['c', 'continue-on-error', 'run all validation checks even when errors are found']]);
49
+ _defineProperty(this, "options", [['a', 'all', 'validate all components, not only modified and new'], ['c', 'continue-on-error', 'run all validation checks even when errors are found'], ['', 'skip-tasks <string>', 'skip the given tasks. for multiple tasks, separate by a comma and wrap with quotes. available tasks: "check-types", "lint", "test"']]);
49
50
  }
50
51
  async report([pattern], {
51
52
  all = false,
52
- continueOnError = false
53
+ continueOnError = false,
54
+ skipTasks
53
55
  }) {
54
56
  if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
55
57
  this.logger.console(_chalk().default.bold('\nšŸ” Running validation checks...\n'));
@@ -63,7 +65,12 @@ by default validates only new and modified components. use --all to validate all
63
65
  };
64
66
  }
65
67
  this.logger.console(`Validating ${components.length} component(s)\n`);
66
- const result = await this.validator.validate(components, continueOnError);
68
+ const skipTasksParsed = skipTasks ? skipTasks.split(',').map(t => t.trim()).filter(Boolean) : [];
69
+ const invalidTasks = skipTasksParsed.filter(t => !VALID_TASKS.includes(t));
70
+ if (invalidTasks.length > 0) {
71
+ throw new Error(`unknown skip-tasks: ${invalidTasks.join(', ')}. available tasks: ${VALID_TASKS.join(', ')}`);
72
+ }
73
+ const result = await this.validator.validate(components, continueOnError, skipTasksParsed);
67
74
  const totalTime = ((Date.now() - startTime) / 1000).toFixed(2);
68
75
  if (result.code !== 0) {
69
76
  this.logger.console(_chalk().default.red(`\nāœ— Validation failed\n`));
@@ -72,6 +79,13 @@ by default validates only new and modified components. use --all to validate all
72
79
  data: `Validation failed after ${totalTime} seconds`
73
80
  };
74
81
  }
82
+ if (result.skippedAll) {
83
+ this.logger.console(_chalk().default.yellow(`\n⚠ All validation tasks were skipped\n`));
84
+ return {
85
+ code: 0,
86
+ data: 'All validation tasks were skipped'
87
+ };
88
+ }
75
89
  this.logger.console(_chalk().default.green(`\nāœ“ All validation checks passed in ${totalTime} seconds\n`));
76
90
  return {
77
91
  code: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_chalk","_interopRequireDefault","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ValidateCmd","constructor","validator","workspace","logger","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","continueOnError","OutsideWorkspaceError","console","chalk","bold","startTime","Date","now","components","getComponentsByUserInput","length","yellow","code","result","validate","totalTime","toFixed","red","green","exports"],"sources":["validate.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { OutsideWorkspaceError } from '@teambit/workspace';\nimport chalk from 'chalk';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { ValidatorMain } from './validator.main.runtime';\n\nexport class ValidateCmd implements Command {\n name = 'validate [component-pattern]';\n description = 'run type-checking, linting, and testing in sequence';\n extendedDescription = `validates components by running check-types, lint, and test commands in sequence.\nstops at the first failure and returns a non-zero exit code.\nby default validates only new and modified components. use --all to validate all components.`;\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n alias = '';\n group = 'testing';\n options = [\n ['a', 'all', 'validate all components, not only modified and new'],\n ['c', 'continue-on-error', 'run all validation checks even when errors are found'],\n ] as CommandOptions;\n\n constructor(\n private validator: ValidatorMain,\n private workspace: Workspace,\n private logger: Logger\n ) {}\n\n async report(\n [pattern]: [string],\n { all = false, continueOnError = false }: { all: boolean; continueOnError: boolean }\n ) {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n this.logger.console(chalk.bold('\\nšŸ” Running validation checks...\\n'));\n\n const startTime = Date.now();\n const components = await this.workspace.getComponentsByUserInput(pattern ? false : all, pattern, true);\n\n if (components.length === 0) {\n this.logger.console(chalk.yellow('No components found to validate'));\n return { code: 0, data: 'No components found to validate' };\n }\n\n this.logger.console(`Validating ${components.length} component(s)\\n`);\n\n const result = await this.validator.validate(components, continueOnError);\n const totalTime = ((Date.now() - startTime) / 1000).toFixed(2);\n\n if (result.code !== 0) {\n this.logger.console(chalk.red(`\\nāœ— Validation failed\\n`));\n return { code: result.code, data: `Validation failed after ${totalTime} seconds` };\n }\n\n this.logger.console(chalk.green(`\\nāœ“ All validation checks passed in ${totalTime} seconds\\n`));\n return { code: 0, data: `Validation completed successfully in ${totalTime} seconds` };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_workspace","data","require","_chalk","_interopRequireDefault","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VALID_TASKS","ValidateCmd","constructor","validator","workspace","logger","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","continueOnError","skipTasks","OutsideWorkspaceError","console","chalk","bold","startTime","Date","now","components","getComponentsByUserInput","length","yellow","code","skipTasksParsed","split","map","trim","filter","Boolean","invalidTasks","includes","Error","join","result","validate","totalTime","toFixed","red","skippedAll","green","exports"],"sources":["validate.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { OutsideWorkspaceError } from '@teambit/workspace';\nimport chalk from 'chalk';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { ValidatorMain } from './validator.main.runtime';\n\nconst VALID_TASKS = ['check-types', 'lint', 'test'] as const;\n\nexport class ValidateCmd implements Command {\n name = 'validate [component-pattern]';\n description = 'run type-checking, linting, and testing in sequence';\n extendedDescription = `validates components by running check-types, lint, and test commands in sequence.\nstops at the first failure and returns a non-zero exit code.\nby default validates only new and modified components. use --all to validate all components.`;\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n alias = '';\n group = 'testing';\n options = [\n ['a', 'all', 'validate all components, not only modified and new'],\n ['c', 'continue-on-error', 'run all validation checks even when errors are found'],\n [\n '',\n 'skip-tasks <string>',\n 'skip the given tasks. for multiple tasks, separate by a comma and wrap with quotes. available tasks: \"check-types\", \"lint\", \"test\"',\n ],\n ] as CommandOptions;\n\n constructor(\n private validator: ValidatorMain,\n private workspace: Workspace,\n private logger: Logger\n ) {}\n\n async report(\n [pattern]: [string],\n { all = false, continueOnError = false, skipTasks }: { all: boolean; continueOnError: boolean; skipTasks?: string }\n ) {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n this.logger.console(chalk.bold('\\nšŸ” Running validation checks...\\n'));\n\n const startTime = Date.now();\n const components = await this.workspace.getComponentsByUserInput(pattern ? false : all, pattern, true);\n\n if (components.length === 0) {\n this.logger.console(chalk.yellow('No components found to validate'));\n return { code: 0, data: 'No components found to validate' };\n }\n\n this.logger.console(`Validating ${components.length} component(s)\\n`);\n\n const skipTasksParsed = skipTasks\n ? skipTasks\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n : [];\n const invalidTasks = skipTasksParsed.filter((t) => !VALID_TASKS.includes(t as any));\n if (invalidTasks.length > 0) {\n throw new Error(`unknown skip-tasks: ${invalidTasks.join(', ')}. available tasks: ${VALID_TASKS.join(', ')}`);\n }\n const result = await this.validator.validate(components, continueOnError, skipTasksParsed);\n const totalTime = ((Date.now() - startTime) / 1000).toFixed(2);\n\n if (result.code !== 0) {\n this.logger.console(chalk.red(`\\nāœ— Validation failed\\n`));\n return { code: result.code, data: `Validation failed after ${totalTime} seconds` };\n }\n\n if (result.skippedAll) {\n this.logger.console(chalk.yellow(`\\n⚠ All validation tasks were skipped\\n`));\n return { code: 0, data: 'All validation tasks were skipped' };\n }\n\n this.logger.console(chalk.green(`\\nāœ“ All validation checks passed in ${totalTime} seconds\\n`));\n return { code: 0, data: `Validation completed successfully in ${totalTime} seconds` };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ import type { Component } from '@teambit/component';
8
8
  export type ValidationResult = {
9
9
  code: number;
10
10
  message: string;
11
+ skippedAll?: boolean;
11
12
  };
12
13
  export declare class ValidatorMain {
13
14
  private workspace;
@@ -18,7 +19,7 @@ export declare class ValidatorMain {
18
19
  static runtime: import("@teambit/harmony").RuntimeDefinition;
19
20
  static dependencies: import("@teambit/harmony").Aspect[];
20
21
  constructor(workspace: Workspace, typescript: TypescriptMain, linter: LinterMain, tester: TesterMain, logger: Logger);
21
- validate(components: Component[], continueOnError?: boolean): Promise<ValidationResult>;
22
+ validate(components: Component[], continueOnError?: boolean, skipTasks?: string[]): Promise<ValidationResult>;
22
23
  private checkTypes;
23
24
  private lint;
24
25
  private test;
@@ -79,30 +79,47 @@ class ValidatorMain {
79
79
  this.tester = tester;
80
80
  this.logger = logger;
81
81
  }
82
- async validate(components, continueOnError = false) {
83
- // Step 1: Check types
84
- this.logger.console(_chalk().default.cyan('1/3 Type Checking...'));
85
- const checkTypesResult = await this.checkTypes(components);
86
- this.logger.console(checkTypesResult.message);
87
- if (checkTypesResult.code !== 0 && !continueOnError) return checkTypesResult;
88
-
89
- // Step 2: Lint
90
- this.logger.console(_chalk().default.cyan('\n2/3 Linting...'));
91
- const lintResult = await this.lint(components);
92
- this.logger.console(lintResult.message);
93
- if (lintResult.code !== 0 && !continueOnError) return lintResult;
94
-
95
- // Step 3: Test
96
- this.logger.console(_chalk().default.cyan('\n3/3 Testing...'));
97
- const testResult = await this.test(components);
98
- this.logger.console(testResult.message);
82
+ async validate(components, continueOnError = false, skipTasks = []) {
83
+ const steps = [];
84
+ if (!skipTasks.includes('check-types')) {
85
+ steps.push({
86
+ label: 'Type Checking',
87
+ run: () => this.checkTypes(components)
88
+ });
89
+ }
90
+ if (!skipTasks.includes('lint')) {
91
+ steps.push({
92
+ label: 'Linting',
93
+ run: () => this.lint(components)
94
+ });
95
+ }
96
+ if (!skipTasks.includes('test')) {
97
+ steps.push({
98
+ label: 'Testing',
99
+ run: () => this.test(components)
100
+ });
101
+ }
102
+ if (steps.length === 0) {
103
+ return {
104
+ code: 0,
105
+ message: 'all tasks were skipped',
106
+ skippedAll: true
107
+ };
108
+ }
109
+ const total = steps.length;
110
+ const results = [];
111
+ for (let i = 0; i < steps.length; i++) {
112
+ const step = steps[i];
113
+ this.logger.console(_chalk().default.cyan(`${i > 0 ? '\n' : ''}${i + 1}/${total} ${step.label}...`));
114
+ const result = await step.run();
115
+ this.logger.console(result.message);
116
+ results.push(result);
117
+ if (result.code !== 0 && !continueOnError) return result;
118
+ }
99
119
 
100
120
  // When continueOnError is true, return the first error found, or success if all passed
101
- if (continueOnError) {
102
- if (checkTypesResult.code !== 0) return checkTypesResult;
103
- if (lintResult.code !== 0) return lintResult;
104
- }
105
- return testResult;
121
+ const firstError = results.find(r => r.code !== 0);
122
+ return firstError || results[results.length - 1];
106
123
  }
107
124
  async checkTypes(components) {
108
125
  const files = this.typescript.getSupportedFilesForTsserver(components);
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_logger","_workspace","_typescript","_linter","_tester","_chalk","_interopRequireDefault","_validator","_validate","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ValidatorMain","constructor","workspace","typescript","linter","tester","logger","validate","components","continueOnError","console","chalk","cyan","checkTypesResult","checkTypes","message","code","lintResult","lint","testResult","test","files","getSupportedFilesForTsserver","initTsserverClientFromWorkspace","aggregateDiagnosticData","printTypeErrors","tsserver","getTsserverClient","Error","getDiagnostic","errorCount","lastDiagnostics","length","killTsServer","linterResults","totalErrors","totalWarnings","dirtyComponents","results","forEach","res","componentErrors","totalErrorCount","totalFatalErrorCount","totalWarningCount","compResult","hasErrors","output","compTitle","bold","component","id","toString","ignoreVersion","push","join","tests","watch","debug","provider","cli","loggerAspect","createLogger","ValidatorAspect","validator","register","ValidateCmd","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","TypescriptAspect","LinterAspect","TesterAspect","addRuntime"],"sources":["validator.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { TypescriptMain } from '@teambit/typescript';\nimport { TypescriptAspect } from '@teambit/typescript';\nimport type { LinterMain } from '@teambit/linter';\nimport { LinterAspect } from '@teambit/linter';\nimport type { TesterMain } from '@teambit/tester';\nimport { TesterAspect } from '@teambit/tester';\nimport type { Component } from '@teambit/component';\nimport chalk from 'chalk';\nimport { ValidatorAspect } from './validator.aspect';\nimport { ValidateCmd } from './validate.cmd';\n\nexport type ValidationResult = {\n code: number;\n message: string;\n};\n\nexport class ValidatorMain {\n static runtime = MainRuntime;\n static dependencies = [CLIAspect, WorkspaceAspect, LoggerAspect, TypescriptAspect, LinterAspect, TesterAspect];\n\n constructor(\n private workspace: Workspace,\n private typescript: TypescriptMain,\n private linter: LinterMain,\n private tester: TesterMain,\n private logger: Logger\n ) {}\n\n async validate(components: Component[], continueOnError = false): Promise<ValidationResult> {\n // Step 1: Check types\n this.logger.console(chalk.cyan('1/3 Type Checking...'));\n const checkTypesResult = await this.checkTypes(components);\n this.logger.console(checkTypesResult.message);\n if (checkTypesResult.code !== 0 && !continueOnError) return checkTypesResult;\n\n // Step 2: Lint\n this.logger.console(chalk.cyan('\\n2/3 Linting...'));\n const lintResult = await this.lint(components);\n this.logger.console(lintResult.message);\n if (lintResult.code !== 0 && !continueOnError) return lintResult;\n\n // Step 3: Test\n this.logger.console(chalk.cyan('\\n3/3 Testing...'));\n const testResult = await this.test(components);\n this.logger.console(testResult.message);\n\n // When continueOnError is true, return the first error found, or success if all passed\n if (continueOnError) {\n if (checkTypesResult.code !== 0) return checkTypesResult;\n if (lintResult.code !== 0) return lintResult;\n }\n return testResult;\n }\n\n private async checkTypes(components: Component[]): Promise<ValidationResult> {\n const files = this.typescript.getSupportedFilesForTsserver(components);\n\n await this.typescript.initTsserverClientFromWorkspace(\n { aggregateDiagnosticData: false, printTypeErrors: true },\n files\n );\n\n const tsserver = this.typescript.getTsserverClient();\n if (!tsserver) throw new Error('unable to start tsserver');\n\n await tsserver.getDiagnostic(files);\n const errorCount = tsserver.lastDiagnostics.length;\n tsserver.killTsServer();\n\n return {\n code: errorCount > 0 ? 1 : 0,\n message: errorCount > 0 ? `found errors in ${errorCount} files` : 'no type errors found',\n };\n }\n\n private async lint(components: Component[]): Promise<ValidationResult> {\n const linterResults = await this.linter.lint(components, {});\n\n let totalErrors = 0;\n let totalWarnings = 0;\n const dirtyComponents: string[] = [];\n\n linterResults.results.forEach((res) => {\n if (res.data) {\n const componentErrors = (res.data.totalErrorCount || 0) + (res.data.totalFatalErrorCount || 0);\n totalErrors += componentErrors;\n totalWarnings += res.data.totalWarningCount || 0;\n\n // Show detailed output for components with errors\n res.data.results.forEach((compResult) => {\n const hasErrors = compResult.totalErrorCount > 0 || (compResult.totalFatalErrorCount || 0) > 0;\n if (hasErrors && compResult.output) {\n const compTitle = chalk.bold.cyan(compResult.component.id.toString({ ignoreVersion: true }));\n dirtyComponents.push(`${compTitle}\\n${compResult.output}`);\n }\n });\n }\n });\n\n let message = '';\n if (dirtyComponents.length > 0) {\n message = dirtyComponents.join('\\n\\n') + '\\n\\n';\n }\n message +=\n totalErrors > 0\n ? `found ${totalErrors} error(s) and ${totalWarnings} warning(s)`\n : totalWarnings > 0\n ? `found ${totalWarnings} warning(s), no errors`\n : 'no linting issues found';\n\n return {\n code: totalErrors > 0 ? 1 : 0,\n message,\n };\n }\n\n private async test(components: Component[]): Promise<ValidationResult> {\n if (components.length === 0) {\n return { code: 0, message: 'no components found to test' };\n }\n\n const tests = await this.tester.test(components, { watch: false, debug: false });\n const hasErrors = tests.hasErrors();\n\n return {\n code: hasErrors ? 1 : 0,\n message: hasErrors ? 'tests failed' : `all tests passed for ${components.length} component(s)`,\n };\n }\n\n static async provider([cli, workspace, loggerAspect, typescript, linter, tester]: [\n CLIMain,\n Workspace,\n LoggerMain,\n TypescriptMain,\n LinterMain,\n TesterMain,\n ]) {\n const logger = loggerAspect.createLogger(ValidatorAspect.id);\n const validator = new ValidatorMain(workspace, typescript, linter, tester, logger);\n cli.register(new ValidateCmd(validator, workspace, logger));\n return validator;\n }\n}\n\nValidatorAspect.addRuntime(ValidatorMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_logger","_workspace","_typescript","_linter","_tester","_chalk","_interopRequireDefault","_validator","_validate","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ValidatorMain","constructor","workspace","typescript","linter","tester","logger","validate","components","continueOnError","skipTasks","steps","includes","push","label","run","checkTypes","lint","test","length","code","message","skippedAll","total","results","step","console","chalk","cyan","result","firstError","find","files","getSupportedFilesForTsserver","initTsserverClientFromWorkspace","aggregateDiagnosticData","printTypeErrors","tsserver","getTsserverClient","Error","getDiagnostic","errorCount","lastDiagnostics","killTsServer","linterResults","totalErrors","totalWarnings","dirtyComponents","forEach","res","componentErrors","totalErrorCount","totalFatalErrorCount","totalWarningCount","compResult","hasErrors","output","compTitle","bold","component","id","toString","ignoreVersion","join","tests","watch","debug","provider","cli","loggerAspect","createLogger","ValidatorAspect","validator","register","ValidateCmd","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","TypescriptAspect","LinterAspect","TesterAspect","addRuntime"],"sources":["validator.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { TypescriptMain } from '@teambit/typescript';\nimport { TypescriptAspect } from '@teambit/typescript';\nimport type { LinterMain } from '@teambit/linter';\nimport { LinterAspect } from '@teambit/linter';\nimport type { TesterMain } from '@teambit/tester';\nimport { TesterAspect } from '@teambit/tester';\nimport type { Component } from '@teambit/component';\nimport chalk from 'chalk';\nimport { ValidatorAspect } from './validator.aspect';\nimport { ValidateCmd } from './validate.cmd';\n\nexport type ValidationResult = {\n code: number;\n message: string;\n skippedAll?: boolean;\n};\n\nexport class ValidatorMain {\n static runtime = MainRuntime;\n static dependencies = [CLIAspect, WorkspaceAspect, LoggerAspect, TypescriptAspect, LinterAspect, TesterAspect];\n\n constructor(\n private workspace: Workspace,\n private typescript: TypescriptMain,\n private linter: LinterMain,\n private tester: TesterMain,\n private logger: Logger\n ) {}\n\n async validate(\n components: Component[],\n continueOnError = false,\n skipTasks: string[] = []\n ): Promise<ValidationResult> {\n const steps: { label: string; run: () => Promise<ValidationResult> }[] = [];\n\n if (!skipTasks.includes('check-types')) {\n steps.push({ label: 'Type Checking', run: () => this.checkTypes(components) });\n }\n if (!skipTasks.includes('lint')) {\n steps.push({ label: 'Linting', run: () => this.lint(components) });\n }\n if (!skipTasks.includes('test')) {\n steps.push({ label: 'Testing', run: () => this.test(components) });\n }\n\n if (steps.length === 0) {\n return { code: 0, message: 'all tasks were skipped', skippedAll: true };\n }\n\n const total = steps.length;\n const results: ValidationResult[] = [];\n\n for (let i = 0; i < steps.length; i++) {\n const step = steps[i];\n this.logger.console(chalk.cyan(`${i > 0 ? '\\n' : ''}${i + 1}/${total} ${step.label}...`));\n const result = await step.run();\n this.logger.console(result.message);\n results.push(result);\n if (result.code !== 0 && !continueOnError) return result;\n }\n\n // When continueOnError is true, return the first error found, or success if all passed\n const firstError = results.find((r) => r.code !== 0);\n return firstError || results[results.length - 1];\n }\n\n private async checkTypes(components: Component[]): Promise<ValidationResult> {\n const files = this.typescript.getSupportedFilesForTsserver(components);\n\n await this.typescript.initTsserverClientFromWorkspace(\n { aggregateDiagnosticData: false, printTypeErrors: true },\n files\n );\n\n const tsserver = this.typescript.getTsserverClient();\n if (!tsserver) throw new Error('unable to start tsserver');\n\n await tsserver.getDiagnostic(files);\n const errorCount = tsserver.lastDiagnostics.length;\n tsserver.killTsServer();\n\n return {\n code: errorCount > 0 ? 1 : 0,\n message: errorCount > 0 ? `found errors in ${errorCount} files` : 'no type errors found',\n };\n }\n\n private async lint(components: Component[]): Promise<ValidationResult> {\n const linterResults = await this.linter.lint(components, {});\n\n let totalErrors = 0;\n let totalWarnings = 0;\n const dirtyComponents: string[] = [];\n\n linterResults.results.forEach((res) => {\n if (res.data) {\n const componentErrors = (res.data.totalErrorCount || 0) + (res.data.totalFatalErrorCount || 0);\n totalErrors += componentErrors;\n totalWarnings += res.data.totalWarningCount || 0;\n\n // Show detailed output for components with errors\n res.data.results.forEach((compResult) => {\n const hasErrors = compResult.totalErrorCount > 0 || (compResult.totalFatalErrorCount || 0) > 0;\n if (hasErrors && compResult.output) {\n const compTitle = chalk.bold.cyan(compResult.component.id.toString({ ignoreVersion: true }));\n dirtyComponents.push(`${compTitle}\\n${compResult.output}`);\n }\n });\n }\n });\n\n let message = '';\n if (dirtyComponents.length > 0) {\n message = dirtyComponents.join('\\n\\n') + '\\n\\n';\n }\n message +=\n totalErrors > 0\n ? `found ${totalErrors} error(s) and ${totalWarnings} warning(s)`\n : totalWarnings > 0\n ? `found ${totalWarnings} warning(s), no errors`\n : 'no linting issues found';\n\n return {\n code: totalErrors > 0 ? 1 : 0,\n message,\n };\n }\n\n private async test(components: Component[]): Promise<ValidationResult> {\n if (components.length === 0) {\n return { code: 0, message: 'no components found to test' };\n }\n\n const tests = await this.tester.test(components, { watch: false, debug: false });\n const hasErrors = tests.hasErrors();\n\n return {\n code: hasErrors ? 1 : 0,\n message: hasErrors ? 'tests failed' : `all tests passed for ${components.length} component(s)`,\n };\n }\n\n static async provider([cli, workspace, loggerAspect, typescript, linter, tester]: [\n CLIMain,\n Workspace,\n LoggerMain,\n TypescriptMain,\n LinterMain,\n TesterMain,\n ]) {\n const logger = loggerAspect.createLogger(ValidatorAspect.id);\n const validator = new ValidatorMain(workspace, typescript, linter, tester, logger);\n cli.register(new ValidateCmd(validator, workspace, logger));\n return validator;\n }\n}\n\nValidatorAspect.addRuntime(ValidatorMain);\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/validator",
3
- "version": "0.0.141",
3
+ "version": "0.0.144",
4
4
  "homepage": "https://bit.cloud/teambit/defender/validator",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.defender",
8
8
  "name": "validator",
9
- "version": "0.0.141"
9
+ "version": "0.0.144"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -14,11 +14,11 @@
14
14
  "@teambit/legacy.constants": "0.0.24",
15
15
  "@teambit/logger": "0.0.1396",
16
16
  "@teambit/harmony": "0.4.7",
17
- "@teambit/workspace": "1.0.907",
18
- "@teambit/component": "1.0.907",
19
- "@teambit/linter": "1.0.907",
20
- "@teambit/tester": "1.0.907",
21
- "@teambit/typescript": "1.0.907"
17
+ "@teambit/workspace": "1.0.909",
18
+ "@teambit/component": "1.0.909",
19
+ "@teambit/linter": "1.0.909",
20
+ "@teambit/tester": "1.0.909",
21
+ "@teambit/typescript": "1.0.909"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@teambit/harmony.envs.core-aspect-env": "0.1.4"