Skip to content

Commit 2a02fd3

Browse files
Fix formatting and lint errors
1 parent 9fa989d commit 2a02fd3

File tree

13 files changed

+82
-44
lines changed

13 files changed

+82
-44
lines changed

dist/index.js

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32726,7 +32726,7 @@ var external_path_ = __nccwpck_require__(6928);
3272632726

3272732727

3272832728
const execAsync = (0,external_util_.promisify)(external_child_process_.exec);
32729-
class MacOSInstaller extends CliInstaller {
32729+
class MacOsInstaller extends CliInstaller {
3273032730
version;
3273132731
constructor(version) {
3273232732
super();
@@ -32781,6 +32781,7 @@ class WindowsInstaller extends CliInstaller {
3278132781

3278232782

3278332783

32784+
/* eslint-disable @typescript-eslint/naming-convention */
3278432785
// Defines the architecture of the runner executing the job.
3278532786
// Look `RUNNER_ARCH` for possible values (https://docs.github.com/en/actions/reference/variables-reference).
3278632787
var RunnerArch;
@@ -32798,16 +32799,19 @@ var RunnerOS;
3279832799
RunnerOS["MacOS"] = "macOS";
3279932800
RunnerOS["Windows"] = "Windows";
3280032801
})(RunnerOS || (RunnerOS = {}));
32802+
/* eslint-enable @typescript-eslint/naming-convention */
3280132803

3280232804
// EXTERNAL MODULE: ./node_modules/semver/index.js
3280332805
var semver = __nccwpck_require__(2088);
3280432806
var semver_default = /*#__PURE__*/__nccwpck_require__.n(semver);
3280532807
;// CONCATENATED MODULE: ./src/version/constants.ts
32808+
/* eslint-disable @typescript-eslint/naming-convention */
3280632809
var ReleaseChannel;
3280732810
(function (ReleaseChannel) {
3280832811
ReleaseChannel["Stable"] = "latest";
3280932812
ReleaseChannel["Beta"] = "latest-beta";
3281032813
})(ReleaseChannel || (ReleaseChannel = {}));
32814+
/* eslint-enable @typescript-eslint/naming-convention */
3281132815

3281232816
;// CONCATENATED MODULE: ./src/version/validate.ts
3281332817

@@ -32837,7 +32841,7 @@ const validateVersion = (input) => {
3283732841
const getLatestVersion = async (channel) => {
3283832842
core.info(`Getting ${channel} version number`);
3283932843
const res = await fetch("https://app-updates.agilebits.com/latest");
32840-
const json = await res.json();
32844+
const json = (await res.json());
3284132845
const latestStable = json?.CLI2?.release?.version;
3284232846
const latestBeta = json?.CLI2?.beta?.version;
3284332847
const version = channel === ReleaseChannel.Beta ? latestBeta : latestStable;
@@ -32868,8 +32872,7 @@ class VersionResolver {
3286832872
core.error("Version is not provided");
3286932873
throw new Error("Version is not provided");
3287032874
}
32871-
if (this.version === ReleaseChannel.Stable ||
32872-
this.version === ReleaseChannel.Beta) {
32875+
if (this.isReleaseChannel(this.version)) {
3287332876
this.version = await getLatestVersion(this.version);
3287432877
}
3287532878
// add `v` prefix if not already present
@@ -32882,6 +32885,9 @@ class VersionResolver {
3288232885
validateVersion(version);
3288332886
core.info(`Version number '${version}' is valid`);
3288432887
}
32888+
isReleaseChannel(value) {
32889+
return Object.values(ReleaseChannel).includes(value);
32890+
}
3288532891
}
3288632892

3288732893
;// CONCATENATED MODULE: ./src/version/index.ts
@@ -32891,7 +32897,10 @@ class VersionResolver {
3289132897

3289232898

3289332899

32894-
async function run() {
32900+
/**
32901+
* Entry point for the GitHub Action.
32902+
*/
32903+
const run = async () => {
3289532904
try {
3289632905
const versionResolver = new VersionResolver(core.getInput("version"));
3289732906
await versionResolver.resolve();
@@ -32901,7 +32910,7 @@ async function run() {
3290132910
installer = new LinuxInstaller(versionResolver.get());
3290232911
break;
3290332912
case RunnerOS.MacOS:
32904-
installer = new MacOSInstaller(versionResolver.get());
32913+
installer = new MacOsInstaller(versionResolver.get());
3290532914
break;
3290632915
case RunnerOS.Windows:
3290732916
installer = new WindowsInstaller(versionResolver.get());
@@ -32913,9 +32922,16 @@ async function run() {
3291332922
await installer.installCli();
3291432923
}
3291532924
catch (error) {
32916-
console.error("error:", error);
32917-
core.setFailed(error.message);
32925+
if (error instanceof Error) {
32926+
console.error("error:", error);
32927+
core.setFailed(error.message);
32928+
}
32929+
else {
32930+
console.error("Unknown error:", error);
32931+
core.setFailed("Unknown error occurred");
32932+
}
3291832933
}
32919-
}
32934+
};
32935+
// eslint-disable-next-line
3292032936
run();
3292132937

src/cli-installer/cli-installer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as core from "@actions/core";
22
import * as tc from "@actions/tool-cache";
33

44
export class CliInstaller {
5-
async install(downloadUrl: string): Promise<void> {
5+
public async install(downloadUrl: string): Promise<void> {
66
console.info(`Downloading 1Password CLI from: ${downloadUrl}`);
77
const downloadPath = await tc.downloadTool(downloadUrl);
88
console.info("Installing 1Password CLI");

src/cli-installer/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
export { LinuxInstaller } from "./linux";
2-
export { MacOSInstaller } from "./macos";
2+
export { MacOsInstaller } from "./macos";
33
export { WindowsInstaller } from "./windows";
44

55
export interface Installer {
66
installCli(): Promise<void>;
77
}
88

9+
/* eslint-disable @typescript-eslint/naming-convention */
910
// Defines the architecture of the runner executing the job.
1011
// Look `RUNNER_ARCH` for possible values (https://docs.github.com/en/actions/reference/variables-reference).
1112
export enum RunnerArch {
@@ -22,3 +23,4 @@ export enum RunnerOS {
2223
MacOS = "macOS",
2324
Windows = "Windows",
2425
}
26+
/* eslint-enable @typescript-eslint/naming-convention */

src/cli-installer/linux.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { type Installer, RunnerArch } from "./index";
21
import { CliInstaller } from "./cli-installer";
2+
import { type Installer, RunnerArch } from "./index";
33

44
export class LinuxInstaller extends CliInstaller implements Installer {
55
private readonly arch: string;
66
private readonly version: string;
77

8-
constructor(version: string) {
8+
public constructor(version: string) {
99
super();
1010
this.version = version;
1111
this.arch = this.getArch();
1212
}
1313

14-
async installCli(): Promise<void> {
14+
public async installCli(): Promise<void> {
1515
const downloadUrl = this.downloadUrl();
1616
await super.install(downloadUrl);
1717
}

src/cli-installer/macos.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import { type Installer } from "./index";
99

1010
const execAsync = promisify(exec);
1111

12-
export class MacOSInstaller extends CliInstaller implements Installer {
12+
export class MacOsInstaller extends CliInstaller implements Installer {
1313
private readonly version: string;
1414

15-
constructor(version: string) {
15+
public constructor(version: string) {
1616
super();
1717
this.version = version;
1818
}
1919

20-
async installCli(): Promise<void> {
20+
public async installCli(): Promise<void> {
2121
const downloadUrl = this.downloadUrl();
2222
core.info(`Downloading 1Password CLI ${this.version} from ${downloadUrl}`);
2323
await this.install(downloadUrl);
@@ -28,7 +28,7 @@ export class MacOSInstaller extends CliInstaller implements Installer {
2828
}
2929

3030
// @actions/tool-cache package does not support .pkg files, so we need to handle the installation manually
31-
override async install(downloadUrl: string): Promise<void> {
31+
public override async install(downloadUrl: string): Promise<void> {
3232
console.info(`Downloading 1Password CLI from: ${downloadUrl}`);
3333
const pkgPath = await tc.downloadTool(downloadUrl);
3434
const pkgWithExtension = `${pkgPath}.pkg`;

src/cli-installer/windows.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import type { Installer } from "./index";
21
import { CliInstaller } from "./cli-installer";
2+
import type { Installer } from "./index";
33

44
export class WindowsInstaller extends CliInstaller implements Installer {
55
private readonly arch: string;
66
private readonly version: string;
77

8-
constructor(version: string) {
8+
public constructor(version: string) {
99
super();
1010
this.version = version;
1111
this.arch = "amd64"; // GitHub-hosted Windows runners (like windows-latest, windows-2022, windows-2019) are all 64-bit Windows Server VMs.
1212
}
1313

14-
async installCli(): Promise<void> {
14+
public async installCli(): Promise<void> {
1515
const downloadUrl = this.downloadUrl();
1616
await super.install(downloadUrl);
1717
}

src/index.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ import {
33
type Installer,
44
RunnerOS,
55
LinuxInstaller,
6-
MacOSInstaller,
6+
MacOsInstaller,
77
WindowsInstaller,
88
} from "./cli-installer";
99
import { VersionResolver } from "./version";
1010

11-
async function run(): Promise<void> {
11+
/**
12+
* Entry point for the GitHub Action.
13+
*/
14+
const run = async (): Promise<void> => {
1215
try {
1316
const versionResolver = new VersionResolver(core.getInput("version"));
1417
await versionResolver.resolve();
@@ -19,7 +22,7 @@ async function run(): Promise<void> {
1922
installer = new LinuxInstaller(versionResolver.get());
2023
break;
2124
case RunnerOS.MacOS:
22-
installer = new MacOSInstaller(versionResolver.get());
25+
installer = new MacOsInstaller(versionResolver.get());
2326
break;
2427
case RunnerOS.Windows:
2528
installer = new WindowsInstaller(versionResolver.get());
@@ -30,10 +33,15 @@ async function run(): Promise<void> {
3033
}
3134

3235
await installer.installCli();
33-
} catch (error: any) {
34-
console.error("error:", error);
35-
core.setFailed(error.message);
36+
} catch (error: unknown) {
37+
if (error instanceof Error) {
38+
console.error("error:", error);
39+
core.setFailed(error.message);
40+
} else {
41+
console.error("Unknown error:", error);
42+
core.setFailed("Unknown error occurred");
43+
}
3644
}
37-
}
38-
45+
};
46+
// eslint-disable-next-line
3947
run();

src/version/constants.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
/* eslint-disable @typescript-eslint/naming-convention */
12
export enum ReleaseChannel {
23
Stable = "latest",
34
Beta = "latest-beta",
45
}
56

6-
export type VersionResponse = {
7+
export interface VersionResponse {
78
CLI2: {
89
release: { version: string };
910
beta: { version: string };
1011
};
11-
};
12+
}
13+
/* eslint-enable @typescript-eslint/naming-convention */

src/version/helper.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ describe("getLatestVersion", () => {
88

99
it("should return latest stable version", async () => {
1010
const mockResponse = {
11+
// eslint-disable-next-line @typescript-eslint/naming-convention
1112
CLI2: {
1213
release: { version: "2.31.0" },
1314
beta: { version: "2.32.0-beta.01" },
1415
},
1516
};
1617

1718
jest.spyOn(global, "fetch").mockResolvedValueOnce({
19+
// eslint-disable-next-line @typescript-eslint/require-await
1820
json: async () => mockResponse,
1921
} as Response);
2022

@@ -24,13 +26,15 @@ describe("getLatestVersion", () => {
2426

2527
it("should return latest beta version", async () => {
2628
const mockResponse = {
29+
// eslint-disable-next-line @typescript-eslint/naming-convention
2730
CLI2: {
2831
release: { version: "2.31.0" },
2932
beta: { version: "2.32.0-beta.01" },
3033
},
3134
};
3235

3336
jest.spyOn(global, "fetch").mockResolvedValueOnce({
37+
// eslint-disable-next-line @typescript-eslint/require-await
3438
json: async () => mockResponse,
3539
} as Response);
3640

@@ -40,6 +44,7 @@ describe("getLatestVersion", () => {
4044

4145
it("should throw if no CLI2 field", async () => {
4246
jest.spyOn(global, "fetch").mockResolvedValueOnce({
47+
// eslint-disable-next-line @typescript-eslint/require-await
4348
json: async () => ({}),
4449
} as Response);
4550

@@ -50,12 +55,14 @@ describe("getLatestVersion", () => {
5055

5156
it("should throw if no stable version found", async () => {
5257
const mockResponse = {
58+
// eslint-disable-next-line @typescript-eslint/naming-convention
5359
CLI2: {
5460
beta: { version: "2.32.0-beta.01" },
5561
},
5662
};
5763

5864
jest.spyOn(global, "fetch").mockResolvedValueOnce({
65+
// eslint-disable-next-line @typescript-eslint/require-await
5966
json: async () => mockResponse,
6067
} as Response);
6168

@@ -66,12 +73,14 @@ describe("getLatestVersion", () => {
6673

6774
it("should throw if no beta version found", async () => {
6875
const mockResponse = {
76+
// eslint-disable-next-line @typescript-eslint/naming-convention
6977
CLI2: {
7078
release: { version: "2.32.0" },
7179
},
7280
};
7381

7482
jest.spyOn(global, "fetch").mockResolvedValueOnce({
83+
// eslint-disable-next-line @typescript-eslint/require-await
7584
json: async () => mockResponse,
7685
} as Response);
7786

src/version/helper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const getLatestVersion = async (
77
): Promise<string> => {
88
core.info(`Getting ${channel} version number`);
99
const res = await fetch("https://app-updates.agilebits.com/latest");
10-
const json: VersionResponse = await res.json();
10+
const json = (await res.json()) as VersionResponse;
1111
const latestStable = json?.CLI2?.release?.version;
1212
const latestBeta = json?.CLI2?.beta?.version;
1313
const version = channel === ReleaseChannel.Beta ? latestBeta : latestStable;

0 commit comments

Comments
 (0)