Skip to content

Commit

Permalink
fix(schematics): esintFix task to run on NPM correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
kpanot committed Apr 16, 2024
1 parent e030189 commit c45c35b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
12 changes: 9 additions & 3 deletions packages/@o3r/schematics/src/rule-factories/eslint-fix/index.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
import { DirEntry, noop, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
import { DirEntry, noop, Rule, SchematicContext, type TaskId, Tree } from '@angular-devkit/schematics';
import { dirname, join } from 'node:path';
import { EslintFixTask, LinterOptions } from '../../tasks/index';

interface ApplyEslintFixOption extends LinterOptions {
/** List of task to wait to run the linter */
dependencyTaskIds?: TaskId[];
}

/**
* Apply EsLint fix
* @param prootPath Root path
* @param _prootPath
* @param extension List of file extensions to lint
* @param options Linter options
*/
export function applyEsLintFix(_prootPath = '/', extension: string[] = ['ts'], options?: LinterOptions): Rule {
export function applyEsLintFix(_prootPath = '/', extension: string[] = ['ts'], options?: ApplyEslintFixOption): Rule {
try {
require.resolve('eslint/package.json');
} catch {
Expand Down Expand Up @@ -71,7 +76,8 @@ You can consider to run later the following command to add otter linter rules: n
undefined,
eslintFile,
linterOptions
)
),
options?.dependencyTaskIds
);
}

Expand Down
15 changes: 14 additions & 1 deletion packages/@o3r/schematics/src/tasks/eslint/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { TaskConfiguration, TaskConfigurationGenerator } from '@angular-devkit/schematics';
import { NodePackageName, NodePackageTaskOptions } from '@angular-devkit/schematics/tasks/package-manager/options';
import { getPackageManager } from '../../utility/package-manager-runner';
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
import { getWorkspaceConfig } from '../../utility';
import type { WorkspaceSchema } from '../../interfaces';

/**
* Linter options
Expand All @@ -16,19 +19,29 @@ export interface LinterOptions {
* @default true
*/
hideWarnings?: boolean;

/** Workspace configuration file */
workspaceConfig?: WorkspaceSchema;

/** Enforced NPM Package */
enforcedNpmManager?: string;
}

export class EslintFixTask implements TaskConfigurationGenerator<NodePackageTaskOptions> {
export class EslintFixTask extends NodePackageInstallTask implements TaskConfigurationGenerator<NodePackageTaskOptions> {
public linterOptions: LinterOptions;

constructor(public files: string[], public workingDirectory?: string, public configFile?: string, options?: LinterOptions) {
super({
packageManager: getPackageManager(options)
});
this.linterOptions = {
continueOnError: true,
hideWarnings: true,
...options
};
}

/** @inheritdoc */
public toConfiguration(): TaskConfiguration<NodePackageTaskOptions> {
return {
name: NodePackageName,
Expand Down

0 comments on commit c45c35b

Please sign in to comment.