Skip to content

Commit 0835db8

Browse files
committed
@W-17229137@ Added getEngineVersion method to Engine contract
1 parent f8f4f3b commit 0835db8

File tree

22 files changed

+193
-80
lines changed

22 files changed

+193
-80
lines changed

package-lock.json

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

packages/T-E-M-P-L-A-T-E/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@salesforce/t-e-m-p-l-a-t-e",
33
"description": "T-E-M-P-L-A-T-E",
4-
"version": "0.14.0",
4+
"version": "0.15.0-SNAPSHOT",
55
"author": "The Salesforce Code Analyzer Team",
66
"license": "BSD-3-Clause",
77
"homepage": "https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/overview",
@@ -14,7 +14,7 @@
1414
"types": "dist/index.d.ts",
1515
"dependencies": {
1616
"@types/node": "^20.0.0",
17-
"@salesforce/code-analyzer-engine-api": "0.14.0"
17+
"@salesforce/code-analyzer-engine-api": "0.15.0-SNAPSHOT"
1818
},
1919
"devDependencies": {
2020
"@eslint/js": "^8.57.0",

packages/code-analyzer-engine-api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@salesforce/code-analyzer-engine-api",
33
"description": "Engine API Package for the Salesforce Code Analyzer",
4-
"version": "0.14.0",
4+
"version": "0.15.0-SNAPSHOT",
55
"author": "The Salesforce Code Analyzer Team",
66
"license": "BSD-3-Clause",
77
"homepage": "https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/overview",

packages/code-analyzer-engine-api/src/engines.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ export abstract class Engine {
2929

3030
abstract runRules(ruleNames: string[], runOptions: RunOptions): Promise<EngineRunResults>
3131

32+
abstract getEngineVersion(): Promise<string>;
33+
3234
public onEvent<T extends Event>(eventType: T["type"], callback: (event: T) => void): void {
3335
this.eventEmitter.on(eventType, callback);
3436
}

packages/code-analyzer-engine-api/test/api-v1.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ class DummyEngineV1 extends Engine {
110110
return "dummy"
111111
}
112112

113+
public getEngineVersion(): Promise<string> {
114+
return Promise.resolve('0.0.1');
115+
}
116+
113117
async runRules(_ruleNames: string[], _runOptions: RunOptions): Promise<EngineRunResults> {
114118
this.emitRunRulesProgressEvent(5.0);
115119
this.emitLogEvent(LogLevel.Fine, "runRules called");
Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,77 @@
11
{
22
"name": "@salesforce/code-analyzer-eslint-engine",
33
"description": "Plugin package that adds 'eslint' as an engine into Salesforce Code Analyzer",
4-
"version": "0.14.0",
4+
"version": "0.15.0-SNAPSHOT",
55
"author": "The Salesforce Code Analyzer Team",
66
"license": "BSD-3-Clause",
77
"homepage": "https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/overview",
88
"repository": {
9-
"type": "git",
10-
"url": "git+https://github.com/forcedotcom/code-analyzer-core.git",
11-
"directory": "packages/code-analyzer-eslint-engine"
9+
"type": "git",
10+
"url": "git+https://github.com/forcedotcom/code-analyzer-core.git",
11+
"directory": "packages/code-analyzer-eslint-engine"
1212
},
1313
"main": "dist/index.js",
1414
"types": "dist/index.d.ts",
1515
"dependencies": {
16-
"@types/node": "^20.0.0",
17-
"@salesforce/code-analyzer-engine-api": "0.14.0",
18-
"eslint": "^8.57.0",
19-
"@eslint/js": "^8.57.0",
20-
"@types/eslint": "^8.56.10",
21-
"@lwc/eslint-plugin-lwc": "^1.8.0",
22-
"@babel/core": "^7.24.7",
23-
"@babel/eslint-parser": "^7.24.7",
24-
"@salesforce/eslint-config-lwc": "^3.5.3",
25-
"@salesforce/eslint-plugin-lightning": "^1.0.0",
26-
"eslint-plugin-import": "^2.29.1",
27-
"eslint-plugin-jest": "^28.6.0",
28-
"@typescript-eslint/parser": "^7.13.1",
29-
"@typescript-eslint/eslint-plugin": "^7.13.1"
16+
"@babel/core": "^7.24.7",
17+
"@babel/eslint-parser": "^7.24.7",
18+
"@eslint/js": "^8.57.0",
19+
"@lwc/eslint-plugin-lwc": "^1.8.0",
20+
"@salesforce/code-analyzer-engine-api": "0.15.0-SNAPSHOT",
21+
"@salesforce/eslint-config-lwc": "^3.5.3",
22+
"@salesforce/eslint-plugin-lightning": "^1.0.0",
23+
"@types/eslint": "^8.56.10",
24+
"@types/node": "^20.0.0",
25+
"@typescript-eslint/eslint-plugin": "^7.13.1",
26+
"@typescript-eslint/parser": "^7.13.1",
27+
"eslint": "^8.57.0",
28+
"eslint-plugin-import": "^2.29.1",
29+
"eslint-plugin-jest": "^28.6.0"
3030
},
3131
"devDependencies": {
32-
"@types/jest": "^29.0.0",
33-
"jest": "^29.0.0",
34-
"cross-env": "^7.0.3",
35-
"rimraf": "*",
36-
"ts-jest": "^29.0.0",
37-
"typescript": "^5.4.5",
38-
"typescript-eslint": "^7.8.0",
39-
"unzipper": "^0.10.9",
40-
"@types/unzipper": "^0.10.9"
32+
"@types/jest": "^29.0.0",
33+
"@types/unzipper": "^0.10.9",
34+
"cross-env": "^7.0.3",
35+
"jest": "^29.0.0",
36+
"rimraf": "*",
37+
"ts-jest": "^29.0.0",
38+
"typescript": "^5.4.5",
39+
"typescript-eslint": "^7.8.0",
40+
"unzipper": "^0.10.9"
4141
},
4242
"engines": {
43-
"node": ">=20.0.0"
43+
"node": ">=20.0.0"
4444
},
4545
"files": [
46-
"dist",
47-
"LICENSE",
48-
"package.json",
49-
"worker-scripts"
46+
"dist",
47+
"LICENSE",
48+
"package.json",
49+
"worker-scripts"
5050
],
5151
"scripts": {
52-
"build": "tsc --build tsconfig.build.json --verbose",
53-
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage",
54-
"lint": "eslint src/**/*.ts",
55-
"package": "npm pack",
56-
"all": "npm run build && npm run test && npm run lint && npm run package",
57-
"clean": "tsc --build tsconfig.build.json --clean",
58-
"postclean": "rimraf dist && rimraf coverage && rimraf ./*.tgz && rimraf vulnerabilities",
59-
"scrub": "npm run clean && rimraf node_modules",
60-
"showcoverage": "open ./coverage/lcov-report/index.html"
52+
"build": "tsc --build tsconfig.build.json --verbose",
53+
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage",
54+
"lint": "eslint src/**/*.ts",
55+
"package": "npm pack",
56+
"all": "npm run build && npm run test && npm run lint && npm run package",
57+
"clean": "tsc --build tsconfig.build.json --clean",
58+
"postclean": "rimraf dist && rimraf coverage && rimraf ./*.tgz && rimraf vulnerabilities",
59+
"scrub": "npm run clean && rimraf node_modules",
60+
"showcoverage": "open ./coverage/lcov-report/index.html"
6161
},
6262
"jest": {
63-
"preset": "ts-jest",
64-
"testEnvironment": "node",
65-
"testMatch": [
66-
"**/*.test.ts"
67-
],
68-
"testPathIgnorePatterns": [
69-
"/node_modules/",
70-
"/dist/"
71-
],
72-
"collectCoverageFrom": [
73-
"src/**/*.ts",
74-
"!src/index.ts"
75-
]
63+
"preset": "ts-jest",
64+
"testEnvironment": "node",
65+
"testMatch": [
66+
"**/*.test.ts"
67+
],
68+
"testPathIgnorePatterns": [
69+
"/node_modules/",
70+
"/dist/"
71+
],
72+
"collectCoverageFrom": [
73+
"src/**/*.ts",
74+
"!src/index.ts"
75+
]
7676
}
77-
}
77+
}

packages/code-analyzer-eslint-engine/src/engine.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import * as fs from 'node:fs/promises';
2+
import path from 'node:path';
13
import {
24
DescribeOptions,
35
Engine,
@@ -30,6 +32,12 @@ export class ESLintEngine extends Engine {
3032
return ESLintEngine.NAME;
3133
}
3234

35+
public async getEngineVersion(): Promise<string> {
36+
const pathToPackageJson: string = path.join(__dirname, '..', 'package.json');
37+
const packageJson: {version: string} = JSON.parse(await fs.readFile(pathToPackageJson, 'utf-8'));
38+
return packageJson.version;
39+
}
40+
3341
async describeRules(describeOptions: DescribeOptions): Promise<RuleDescription[]> {
3442
this.emitDescribeRulesProgressEvent(0);
3543

packages/code-analyzer-eslint-engine/test/engine.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,15 @@ describe('Typical tests for the runRules method of ESLintEngine', () => {
544544
});
545545
});
546546

547+
describe('Tests for the getEngineVersion method of ESLint Engine', () => {
548+
it('getEngineVersion() outputs something resembling a Semantic Version', async () => {
549+
const engine: ESLintEngine = new ESLintEngine(DEFAULT_CONFIG);
550+
const version: string = await engine.getEngineVersion();
551+
552+
expect(version).toMatch(/\d+\.\d+\.\d+.*/);
553+
});
554+
});
555+
547556
describe('Tests for emitting events', () => {
548557
let engine: ESLintEngine;
549558
let logEvents: LogEvent[];

packages/code-analyzer-flowtest-engine/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@salesforce/code-analyzer-flowtest-engine",
33
"description": "Plugin package that adds 'flowtest' as an engine into Salesforce Code Analyzer",
4-
"version": "0.14.1",
4+
"version": "0.15.0-SNAPSHOT",
55
"author": "The Salesforce Code Analyzer Team",
66
"license": "BSD-3-Clause",
77
"homepage": "https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/overview",
@@ -13,7 +13,7 @@
1313
"main": "dist/index.js",
1414
"types": "dist/index.d.ts",
1515
"dependencies": {
16-
"@salesforce/code-analyzer-engine-api": "0.14.0",
16+
"@salesforce/code-analyzer-engine-api": "0.15.0-SNAPSHOT",
1717
"@types/node": "^20.0.0",
1818
"@types/semver": "^7.5.8",
1919
"@types/tmp": "^0.2.6",

packages/code-analyzer-flowtest-engine/src/engine.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import path from 'node:path';
2+
import * as fs from 'node:fs/promises';
13
import {
24
CodeLocation,
35
DescribeOptions,
@@ -39,6 +41,12 @@ export class FlowTestEngine extends Engine {
3941
return FlowTestEngine.NAME;
4042
}
4143

44+
public async getEngineVersion(): Promise<string> {
45+
const pathToPackageJson: string = path.join(__dirname, '..', 'package.json');
46+
const packageJson: {version: string} = JSON.parse(await fs.readFile(pathToPackageJson, 'utf-8'));
47+
return packageJson.version;
48+
}
49+
4250
public async describeRules(describeOptions: DescribeOptions): Promise<RuleDescription[]> {
4351
this.emitDescribeRulesProgressEvent(0);
4452
if (describeOptions.workspace) {

0 commit comments

Comments
 (0)