import UnityVersionParser from './unity-version-parser' ; import { getInput } from '@actions/core' ; const Input = { get testModes ( ) { return [ 'all' , 'playmode' , 'editmode' ] ; } , isValidFolderName ( folderName ) { const validFolderName = new RegExp ( /^(\.|\.\/)?(\.?[\w~]+([ _-]?[\w~]+)*\/?)*$/ ) ; return validFolderName . test ( folderName ) ; } , getFromUser ( ) { const rawUnityVersion = getInput ( 'unityVersion' ) || 'auto' ; const customImage = getInput ( 'customImage' ) || '' ; const rawProjectPath = getInput ( 'projectPath' ) || '.' ; const customParameters = getInput ( 'customParameters' ) || '' ; const testMode = ( getInput ( 'testMode' ) || 'all' ) . toLowerCase ( ) ; const rawArtifactsPath = getInput ( 'artifactsPath' ) || 'artifacts' ; const rawUseHostNetwork = getInput ( 'useHostNetwork' ) || 'false' ; const sshAgent = getInput ( 'sshAgent' ) || '' ; const gitPrivateToken = getInput ( 'gitPrivateToken' ) || '' ; const githubToken = getInput ( 'githubToken' ) || '' ; const checkName = getInput ( 'checkName' ) || 'Test Results' ; if ( ! this . testModes . includes ( testMode ) ) { throw new Error ( `Invalid testMode ${ testMode }` ) ; } if ( ! this . isValidFolderName ( rawProjectPath ) ) { throw new Error ( `Invalid projectPath "${ rawProjectPath }"` ) ; } if ( ! this . isValidFolderName ( rawArtifactsPath ) ) { throw new Error ( `Invalid artifactsPath "${ rawArtifactsPath }"` ) ; } if ( rawUseHostNetwork !== 'true' && rawUseHostNetwork !== 'false' ) { throw new Error ( `Invalid useHostNetwork "${ rawUseHostNetwork }"` ) ; } const projectPath = rawProjectPath . replace ( /\/$/ , '' ) ; const artifactsPath = rawArtifactsPath . replace ( /\/$/ , '' ) ; const useHostNetwork = rawUseHostNetwork === 'true' ; const unityVersion = rawUnityVersion === 'auto' ? UnityVersionParser . read ( projectPath ) : rawUnityVersion ; return { unityVersion , customImage , projectPath , customParameters , testMode , artifactsPath , useHostNetwork , sshAgent , gitPrivateToken , githubToken , checkName , } ; } , } ; export default Input ;