diff --git a/dist/index.js b/dist/index.js index 53920a6..016c513 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/src/inputs/index.ts b/src/inputs/index.ts index 0e53520..aa97623 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -1,21 +1,6 @@ -import process from 'process' -import { getInput, error, InputOptions } from '@actions/core' +import { getInput, InputOptions } from '@actions/core' import expandTilde from 'expand-tilde' -import { safeLoad } from 'js-yaml' -import Ajv from 'ajv' -import runInstallSchema from './run-install-input.schema.json' - -interface RunInstall { - readonly recursive?: boolean - readonly cwd?: string - readonly args?: readonly string[] -} - -export type RunInstallInput = - | null - | boolean - | RunInstall - | RunInstall[] +import { RunInstall, parseRunInstall } from './run-install' export interface Inputs { readonly version: string @@ -31,25 +16,6 @@ const options: InputOptions = { const parseInputPath = (name: string) => expandTilde(getInput(name, options)) -function parseRunInstall(name: string): RunInstall[] { - const result: RunInstallInput = safeLoad(getInput(name, options)) - const ajv = new Ajv({ - allErrors: true, - async: false, - }) - const validate = ajv.compile(runInstallSchema) - if (!validate(result)) { - for (const errorItem of validate.errors!) { - error(`with.run_install${errorItem.dataPath}: ${errorItem.message}`) - } - return process.exit(1) - } - if (!result) return [] - if (result === true) return [{ recursive: true }] - if (Array.isArray(result)) return result - return [result] -} - export const getInputs = (): Inputs => ({ version: getInput('version', options), dest: parseInputPath('dest'), diff --git a/src/inputs/run-install-input.schema.autogen.json b/src/inputs/run-install-input.schema.autogen.json index c42a1d7..1a70dd1 100644 --- a/src/inputs/run-install-input.schema.autogen.json +++ b/src/inputs/run-install-input.schema.autogen.json @@ -14,7 +14,7 @@ "esModuleInterop": true, "resolveJsonModule": true }, - "input": "index.ts", + "input": "run-install.ts", "symbol": "RunInstallInput", "output": "run-install-input.schema.json" } diff --git a/src/inputs/run-install.ts b/src/inputs/run-install.ts new file mode 100644 index 0000000..4e2c265 --- /dev/null +++ b/src/inputs/run-install.ts @@ -0,0 +1,40 @@ +import process from 'process' +import { safeLoad } from 'js-yaml' +import Ajv from 'ajv' +import { getInput, error, InputOptions } from '@actions/core' +import runInstallSchema from './run-install-input.schema.json' + +export interface RunInstall { + readonly recursive?: boolean + readonly cwd?: string + readonly args?: readonly string[] +} + +export type RunInstallInput = + | null + | boolean + | RunInstall + | RunInstall[] + +const options: InputOptions = { + required: true, +} + +export function parseRunInstall(name: string): RunInstall[] { + const result: RunInstallInput = safeLoad(getInput(name, options)) + const ajv = new Ajv({ + allErrors: true, + async: false, + }) + const validate = ajv.compile(runInstallSchema) + if (!validate(result)) { + for (const errorItem of validate.errors!) { + error(`with.run_install${errorItem.dataPath}: ${errorItem.message}`) + } + return process.exit(1) + } + if (!result) return [] + if (result === true) return [{ recursive: true }] + if (Array.isArray(result)) return result + return [result] +}