setup-node
setup-node copied to clipboard
refactor: Use early return pattern in `cache-utils.ts`
Signed-off-by: jongwooo [email protected]
Description
Return early is the way of writing functions or methods so that the expected positive result is returned at the end of the function and the rest of the code terminates the execution (by returning or throwing an exception) when conditions are not met.
In cache-utils.ts:
AS-IS
export const getPackageManagerInfo = async (packageManager: string) => {
if (packageManager === 'npm') {
return supportedPackageManagers.npm;
} else if (packageManager === 'pnpm') {
return supportedPackageManagers.pnpm;
} else if (packageManager === 'yarn') {
const yarnVersion = await getPackageManagerVersion('yarn', '--version');
core.debug(`Consumed yarn version is ${yarnVersion}`);
if (yarnVersion.startsWith('1.')) {
return supportedPackageManagers.yarn1;
} else {
return supportedPackageManagers.yarn2;
}
} else {
return null;
}
};
TO-BE
export const getPackageManagerInfo = async (packageManager: string) => {
if (packageManager === 'npm') {
return supportedPackageManagers.npm;
}
if (packageManager === 'pnpm') {
return supportedPackageManagers.pnpm;
}
if (packageManager === 'yarn') {
const yarnVersion = await getPackageManagerVersion('yarn', '--version');
core.debug(`Consumed yarn version is ${yarnVersion}`);
if (yarnVersion.startsWith('1.')) {
return supportedPackageManagers.yarn1;
}
return supportedPackageManagers.yarn2;
}
return null;
};
Related issue
#636
Check list
- [ ] Mark if documentation changes are required.
- [ ] Mark if tests were added or updated to cover the changes.