Skip to content

Commit fc0c429

Browse files
NEW: @W-19204059@: Convert our CLI Plugin to ESM (#1912)
1 parent b538ebb commit fc0c429

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+330
-290
lines changed

bin/dev.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
#!/usr/bin/env node_modules/.bin/ts-node
2-
// eslint-disable-next-line node/shebang, unicorn/prefer-top-level-await
3-
(async () => {
4-
const oclif = await import('@oclif/core')
5-
await oclif.execute({development: true, dir: __dirname})
6-
})()
1+
#!/usr/bin/env -S node --loader ts-node/esm --disable-warning=ExperimentalWarning
2+
3+
import { execute } from '@oclif/core';
4+
5+
await execute({ development: true, dir: import.meta.url });

bin/run.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#!/usr/bin/env node
22

3-
// eslint-disable-next-line unicorn/prefer-top-level-await
4-
(async () => {
5-
const oclif = await import('@oclif/core')
6-
await oclif.execute({dir: __dirname})
7-
})()
3+
import {execute} from '@oclif/core'
4+
5+
await execute({dir: import.meta.url})

package-lock.json

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"version": "5.5.0",
55
"author": "Salesforce Code Analyzer Team",
66
"bugs": "https://github.com/forcedotcom/code-analyzer/issues",
7+
"type": "module",
78
"dependencies": {
89
"@oclif/core": "3.27.0",
910
"@salesforce/code-analyzer-core": "0.38.1",

src/commands/code-analyzer/config.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import {Flags, SfCommand} from '@salesforce/sf-plugins-core';
2-
import {ConfigAction, ConfigDependencies, ConfigInput} from '../../lib/actions/ConfigAction';
3-
import {ConfigFileWriter} from '../../lib/writers/ConfigWriter';
4-
import {ConfigStyledYamlViewer} from '../../lib/viewers/ConfigViewer';
5-
import {ConfigActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer';
6-
import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory';
7-
import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory';
8-
import {BundleName, getMessage, getMessages} from '../../lib/messages';
9-
import {LogEventDisplayer} from '../../lib/listeners/LogEventListener';
10-
import {RuleSelectionProgressSpinner} from '../../lib/listeners/ProgressEventListener';
11-
import {Displayable, UxDisplay} from '../../lib/Display';
2+
import {ConfigAction, ConfigDependencies, ConfigInput} from '../../lib/actions/ConfigAction.js';
3+
import {ConfigFileWriter} from '../../lib/writers/ConfigWriter.js';
4+
import {ConfigStyledYamlViewer} from '../../lib/viewers/ConfigViewer.js';
5+
import {ConfigActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer.js';
6+
import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory.js';
7+
import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory.js';
8+
import {BundleName, getMessage, getMessages} from '../../lib/messages.js';
9+
import {LogEventDisplayer} from '../../lib/listeners/LogEventListener.js';
10+
import {RuleSelectionProgressSpinner} from '../../lib/listeners/ProgressEventListener.js';
11+
import {Displayable, UxDisplay} from '../../lib/Display.js';
1212

1313
export default class ConfigCommand extends SfCommand<void> implements Displayable {
1414
// We don't need the `--json` output for this command.

src/commands/code-analyzer/rules.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import {Flags, SfCommand} from '@salesforce/sf-plugins-core';
2-
import {View} from '../../Constants';
3-
import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory';
4-
import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory';
5-
import {RuleDetailDisplayer, RulesNoOpDisplayer, RuleTableDisplayer} from '../../lib/viewers/RuleViewer';
6-
import {RulesActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer';
7-
import {RulesAction, RulesDependencies, RulesInput} from '../../lib/actions/RulesAction';
8-
import {BundleName, getMessage, getMessages} from '../../lib/messages';
9-
import {Displayable, UxDisplay} from '../../lib/Display';
10-
import {LogEventDisplayer} from '../../lib/listeners/LogEventListener';
11-
import {RuleSelectionProgressSpinner} from '../../lib/listeners/ProgressEventListener';
12-
import {CompositeRulesWriter} from '../../lib/writers/RulesWriter';
13-
import { SfCliTelemetryEmitter } from '../../lib/Telemetry';
2+
import {View} from '../../Constants.js';
3+
import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory.js';
4+
import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory.js';
5+
import {RuleDetailDisplayer, RulesNoOpDisplayer, RuleTableDisplayer} from '../../lib/viewers/RuleViewer.js';
6+
import {RulesActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer.js';
7+
import {RulesAction, RulesDependencies, RulesInput} from '../../lib/actions/RulesAction.js';
8+
import {BundleName, getMessage, getMessages} from '../../lib/messages.js';
9+
import {Displayable, UxDisplay} from '../../lib/Display.js';
10+
import {LogEventDisplayer} from '../../lib/listeners/LogEventListener.js';
11+
import {RuleSelectionProgressSpinner} from '../../lib/listeners/ProgressEventListener.js';
12+
import {CompositeRulesWriter} from '../../lib/writers/RulesWriter.js';
13+
import {SfCliTelemetryEmitter} from '../../lib/Telemetry.js';
1414

1515
export default class RulesCommand extends SfCommand<void> implements Displayable {
1616
// We don't need the `--json` output for this command.

src/commands/code-analyzer/run.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import {Flags, SfCommand} from '@salesforce/sf-plugins-core';
22
import {SeverityLevel} from '@salesforce/code-analyzer-core';
3-
import {RunAction, RunDependencies, RunInput} from '../../lib/actions/RunAction';
4-
import {View} from '../../Constants';
5-
import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory';
6-
import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory';
7-
import {CompositeResultsWriter} from '../../lib/writers/ResultsWriter';
8-
import {ResultsDetailDisplayer, ResultsNoOpDisplayer, ResultsTableDisplayer, ResultsViewer} from '../../lib/viewers/ResultsViewer';
9-
import {RunActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer';
10-
import {BundleName, getMessage, getMessages} from '../../lib/messages';
11-
import {LogEventDisplayer} from '../../lib/listeners/LogEventListener';
12-
import {EngineRunProgressSpinner, RuleSelectionProgressSpinner} from '../../lib/listeners/ProgressEventListener';
13-
import {Displayable, UxDisplay} from '../../lib/Display';
14-
import {SfCliTelemetryEmitter} from "../../lib/Telemetry";
3+
import {RunAction, RunDependencies, RunInput} from '../../lib/actions/RunAction.js';
4+
import {View} from '../../Constants.js';
5+
import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory.js';
6+
import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory.js';
7+
import {CompositeResultsWriter} from '../../lib/writers/ResultsWriter.js';
8+
import {ResultsDetailDisplayer, ResultsNoOpDisplayer, ResultsTableDisplayer, ResultsViewer} from '../../lib/viewers/ResultsViewer.js';
9+
import {RunActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer.js';
10+
import {BundleName, getMessage, getMessages} from '../../lib/messages.js';
11+
import {LogEventDisplayer} from '../../lib/listeners/LogEventListener.js';
12+
import {EngineRunProgressSpinner, RuleSelectionProgressSpinner} from '../../lib/listeners/ProgressEventListener.js';
13+
import {Displayable, UxDisplay} from '../../lib/Display.js';
14+
import {SfCliTelemetryEmitter} from '../../lib/Telemetry.js';
1515

1616
export default class RunCommand extends SfCommand<void> implements Displayable {
1717
// We don't need the `--json` output for this command.

src/lib/Telemetry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {TelemetryData} from '@salesforce/code-analyzer-core';
2-
import {Lifecycle} from "@salesforce/core";
2+
import {Lifecycle} from '@salesforce/core';
33

44
export interface TelemetryEmitter {
55
emitTelemetry(source: string, eventName: string, data: TelemetryData): void;

src/lib/actions/ConfigAction.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import {CodeAnalyzerConfig, CodeAnalyzer} from "@salesforce/code-analyzer-core";
2-
import {CodeAnalyzerConfigFactory} from '../factories/CodeAnalyzerConfigFactory';
3-
import {EnginePluginsFactory} from '../factories/EnginePluginsFactory';
4-
import {ConfigWriter} from '../writers/ConfigWriter';
5-
import {LogFileWriter} from '../writers/LogWriter';
6-
import {ConfigViewer} from '../viewers/ConfigViewer';
7-
import {createWorkspace} from '../utils/WorkspaceUtil';
8-
import {LogEventListener, LogEventLogger} from '../listeners/LogEventListener';
9-
import {ProgressEventListener} from '../listeners/ProgressEventListener';
10-
import {ConfigActionSummaryViewer} from '../viewers/ActionSummaryViewer';
11-
import {AnnotatedConfigModel, ConfigModel} from '../models/ConfigModel';
12-
import {EnginePlugin} from "@salesforce/code-analyzer-engine-api";
1+
import {CodeAnalyzerConfig, CodeAnalyzer} from '@salesforce/code-analyzer-core';
2+
import {EnginePlugin} from '@salesforce/code-analyzer-engine-api';
3+
import {CodeAnalyzerConfigFactory} from '../factories/CodeAnalyzerConfigFactory.js';
4+
import {EnginePluginsFactory} from '../factories/EnginePluginsFactory.js';
5+
import {ConfigWriter} from '../writers/ConfigWriter.js';
6+
import {LogFileWriter} from '../writers/LogWriter.js';
7+
import {ConfigViewer} from '../viewers/ConfigViewer.js';
8+
import {createWorkspace} from '../utils/WorkspaceUtil.js';
9+
import {LogEventListener, LogEventLogger} from '../listeners/LogEventListener.js';
10+
import {ProgressEventListener} from '../listeners/ProgressEventListener.js';
11+
import {ConfigActionSummaryViewer} from '../viewers/ActionSummaryViewer.js';
12+
import {AnnotatedConfigModel, ConfigModel} from '../models/ConfigModel.js';
1313

1414
export type ConfigDependencies = {
1515
configFactory: CodeAnalyzerConfigFactory;

src/lib/actions/RulesAction.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import { CodeAnalyzer, CodeAnalyzerConfig, Rule, RuleSelection } from '@salesforce/code-analyzer-core';
2-
import { CodeAnalyzerConfigFactory } from '../factories/CodeAnalyzerConfigFactory';
3-
import { EnginePluginsFactory } from '../factories/EnginePluginsFactory';
4-
import { LogEventListener, LogEventLogger } from '../listeners/LogEventListener';
5-
import { ProgressEventListener } from '../listeners/ProgressEventListener';
6-
import { createWorkspace } from '../utils/WorkspaceUtil';
7-
import { RulesActionSummaryViewer } from '../viewers/ActionSummaryViewer';
8-
import { RuleViewer } from '../viewers/RuleViewer';
9-
import { LogFileWriter } from '../writers/LogWriter';
10-
import { RulesWriter } from '../writers/RulesWriter';
11-
import { TelemetryEmitter } from '../Telemetry';
12-
import { TelemetryEventListener } from '../listeners/TelemetryEventListener';
13-
import * as Constants from '../../Constants';
1+
import {CodeAnalyzer, CodeAnalyzerConfig, Rule, RuleSelection} from '@salesforce/code-analyzer-core';
2+
import {CodeAnalyzerConfigFactory} from '../factories/CodeAnalyzerConfigFactory.js';
3+
import {EnginePluginsFactory} from '../factories/EnginePluginsFactory.js';
4+
import {LogEventListener, LogEventLogger} from '../listeners/LogEventListener.js';
5+
import {ProgressEventListener} from '../listeners/ProgressEventListener.js';
6+
import {createWorkspace} from '../utils/WorkspaceUtil.js';
7+
import {RulesActionSummaryViewer} from '../viewers/ActionSummaryViewer.js';
8+
import {RuleViewer} from '../viewers/RuleViewer.js';
9+
import {LogFileWriter} from '../writers/LogWriter.js';
10+
import {RulesWriter} from '../writers/RulesWriter.js';
11+
import {TelemetryEmitter} from '../Telemetry.js';
12+
import {TelemetryEventListener} from '../listeners/TelemetryEventListener.js';
13+
import * as Constants from '../../Constants.js';
1414

1515
export type RulesDependencies = {
1616
configFactory: CodeAnalyzerConfigFactory;

0 commit comments

Comments
 (0)