From cca8b40ef29be1d6e3fdbb729a8dc6cd474774d4 Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Tue, 21 May 2019 17:08:25 -0400 Subject: [PATCH] Add lots of linting --- __tests__/lib.test.ts | 11 +++++++---- src/command.ts | 28 ++++++++++++++-------------- src/core.ts | 14 +++++++------- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/__tests__/lib.test.ts b/__tests__/lib.test.ts index a21b51e..b1f638c 100644 --- a/__tests__/lib.test.ts +++ b/__tests__/lib.test.ts @@ -1,6 +1,9 @@ +import {ExitCode} from '@actions/exit' import * as os from 'os' import * as core from '../src/core' +/* eslint-disable @typescript-eslint/unbound-method */ + const testEnvVars = { 'my var': '', 'special char var \r\n];': '', @@ -103,18 +106,18 @@ describe('@actions/core', () => { it('setNeutral sets the correct exit code', () => { core.setFailed('Failure message') - expect(process.exitCode).toBe(1) + expect(process.exitCode).toBe(ExitCode.Failure) }) it('setFailure sets the correct exit code and failure message', () => { core.setFailed('Failure message') - expect(process.exitCode).toBe(1) + expect(process.exitCode).toBe(ExitCode.Failure) assertWriteCalls([`##[error]Failure message${os.EOL}`]) }) it('setFailure escapes the failure message', () => { core.setFailed('Failure \r\n\nmessage\r') - expect(process.exitCode).toBe(1) + expect(process.exitCode).toBe(ExitCode.Failure) assertWriteCalls([`##[error]Failure %0D%0A%0Amessage%0D${os.EOL}`]) }) @@ -150,7 +153,7 @@ describe('@actions/core', () => { }) // Assert that process.stdout.write calls called only with the given arguments. -function assertWriteCalls(calls: string[]) { +function assertWriteCalls(calls: string[]): void { expect(process.stdout.write).toHaveBeenCalledTimes(calls.length) for (let i = 0; i < calls.length; i++) { diff --git a/src/command.ts b/src/command.ts index b277bfb..73c27ae 100644 --- a/src/command.ts +++ b/src/command.ts @@ -2,6 +2,10 @@ import * as os from 'os' // For internal use, subject to change. +interface CommandProperties { + [key: string]: string +} + /** * Commands * @@ -14,25 +18,25 @@ import * as os from 'os' */ export function issueCommand( command: string, - properties: any, + properties: CommandProperties, message: string -) { +): void { const cmd = new Command(command, properties, message) process.stdout.write(cmd.toString() + os.EOL) } -export function issue(name: string, message: string) { +export function issue(name: string, message: string): void { issueCommand(name, {}, message) } const CMD_PREFIX = '##[' class Command { - constructor( - command: string, - properties: {[key: string]: string}, - message: string - ) { + private readonly command: string + private readonly message: string + private readonly properties: CommandProperties + + constructor(command: string, properties: CommandProperties, message: string) { if (!command) { command = 'missing.command' } @@ -42,11 +46,7 @@ class Command { this.message = message } - command: string - message: string - properties: {[key: string]: string} - - toString() { + toString(): string { let cmdStr = CMD_PREFIX + this.command if (this.properties && Object.keys(this.properties).length > 0) { @@ -67,7 +67,7 @@ class Command { // safely append the message - avoid blowing up when attempting to // call .replace() if message is not a string for some reason - const message: string = `${this.message || ''}` + const message = `${this.message || ''}` cmdStr += escapeData(message) return cmdStr diff --git a/src/core.ts b/src/core.ts index 408b9ad..f63ef1c 100644 --- a/src/core.ts +++ b/src/core.ts @@ -18,7 +18,7 @@ export interface InputOptions { * @param name the name of the variable to set * @param val the value of the variable */ -export function exportVariable(name: string, val: string) { +export function exportVariable(name: string, val: string): void { process.env[name] = val issueCommand('set-env', {name}, val) } @@ -28,7 +28,7 @@ export function exportVariable(name: string, val: string) { * @param name the name of the variable to set * @param val value of the secret */ -export function exportSecret(name: string, val: string) { +export function exportSecret(name: string, val: string): void { exportVariable(name, val) issueCommand('set-secret', {}, val) } @@ -57,7 +57,7 @@ export function getInput(name: string, options?: InputOptions): string { /** * Sets the action status to neutral */ -export function setNeutral() { +export function setNeutral(): void { process.exitCode = ExitCode.Neutral } @@ -66,7 +66,7 @@ export function setNeutral() { * When the action exits it will be with an exit code of 1 * @param message add error issue message */ -export function setFailed(message: string) { +export function setFailed(message: string): void { process.exitCode = ExitCode.Failure error(message) } @@ -79,7 +79,7 @@ export function setFailed(message: string) { * Writes debug message to user log * @param message debug message */ -export function debug(message: string) { +export function debug(message: string): void { issueCommand('debug', {}, message) } @@ -87,7 +87,7 @@ export function debug(message: string) { * Adds an error issue * @param message error issue message */ -export function error(message: string) { +export function error(message: string): void { issue('error', message) } @@ -95,6 +95,6 @@ export function error(message: string) { * Adds an warning issue * @param message warning issue message */ -export function warning(message: string) { +export function warning(message: string): void { issue('warning', message) }