Merge 62a23f82b163be6455968457151fa0094ec92a63 into 0b947ed818f8a396b19a263544998ab92a863b98
This commit is contained in:
		
						commit
						a351a301d2
					
				
							
								
								
									
										53
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @ -1055,6 +1055,55 @@ jobs: | ||||
|           exit 1 | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Run changed-files with dir_names and dir_names_deleted_files_include_only_deleted_dirs with a single file deleted withing the test directory | ||||
|         id: changed-files-dir-names-deleted-files-include-only-deleted-dirs-single-file | ||||
|         uses: ./ | ||||
|         with: | ||||
|           base_sha: 920856cf | ||||
|           sha: a52f8621 | ||||
|           fetch_depth: 60000 | ||||
|           dir_names: true | ||||
|           dir_names_deleted_files_include_only_deleted_dirs: true | ||||
|       - name: Show output | ||||
|         run: | | ||||
|           echo '${{ toJSON(steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-single-file.outputs) }}' | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Check deleted_files output | ||||
|         if: steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-single-file.outputs.deleted_files != '' | ||||
|         run: | | ||||
|           echo "Invalid output: Expected '' got (${{ steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-single-file.outputs.deleted_files }})" | ||||
|           exit 1 | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Run changed-files with dir_names and dir_names_deleted_files_include_only_deleted_dirs with the test directory deleted | ||||
|         id: changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory | ||||
|         uses: ./ | ||||
|         with: | ||||
|           base_sha: 920856cf | ||||
|           sha: cd1e384 | ||||
|           fetch_depth: 60000 | ||||
|           dir_names: true | ||||
|           dir_names_deleted_files_include_only_deleted_dirs: true | ||||
|       - name: Show output | ||||
|         run: | | ||||
|           echo '${{ toJSON(steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs) }}' | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Check deleted_files output on non windows platform | ||||
|         if: steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs.deleted_files != 'test/test3' && runner.os != 'Windows' | ||||
|         run: | | ||||
|           echo "Invalid output: Expected (test/test3) got (${{ steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs.deleted_files }})" | ||||
|           exit 1 | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Check deleted_files output on windows platform | ||||
|         if: steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs.deleted_files != 'test\\test3' && runner.os == 'Windows' | ||||
|         run: | | ||||
|           echo "Invalid output: Expected (test\\test3) got (${{ steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs.deleted_files }})" | ||||
|           exit 1 | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Run changed-files with dir_names and dir_names_include_files with specific files | ||||
|         id: changed-files-dir-names-specific-include-files | ||||
|         uses: ./ | ||||
| @ -1423,14 +1472,14 @@ jobs: | ||||
|           fi | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Check if a excluded file is not included in any_deleted on non windows platform | ||||
|       - name: Check if an excluded file is included in deleted_files output on non windows platform | ||||
|         if: "contains(steps.changed-files-specific.outputs.deleted_files, 'test/test/test.txt') && runner.os != 'Windows'" | ||||
|         run: | | ||||
|           echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific.outputs.deleted_files }})" | ||||
|           exit 1 | ||||
|         shell: | ||||
|           bash | ||||
|       - name: Check if a excluded file is not included in any_deleted on windows platform | ||||
|       - name: Check if an excluded file is included in deleted_files output on windows platform | ||||
|         if: "contains(steps.changed-files-specific.outputs.deleted_files, 'test\\test\\test.txt') && runner.os == 'Windows'" | ||||
|         run: | | ||||
|           echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific.outputs.deleted_files }})" | ||||
|  | ||||
| @ -120,6 +120,10 @@ inputs: | ||||
|     description: "Separator used to split the `dir_names_include_files` input" | ||||
|     default: "\n" | ||||
|     required: false | ||||
|   dir_names_deleted_files_include_only_deleted_dirs: | ||||
|     description: "Include only directories that have been deleted as opposed to directory names of files that have been deleted in the `deleted_files` output when `dir_names` is set to `true`." | ||||
|     required: false | ||||
|     default: "false" | ||||
|   json: | ||||
|     description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs. [Example](https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-test.yml)" | ||||
|     required: false | ||||
|  | ||||
							
								
								
									
										47
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -57,7 +57,7 @@ const micromatch_1 = __importDefault(__nccwpck_require__(6228)); | ||||
| const path = __importStar(__nccwpck_require__(1017)); | ||||
| const changedFilesOutput_1 = __nccwpck_require__(8930); | ||||
| const utils_1 = __nccwpck_require__(918); | ||||
| const processChangedFiles = ({ filePatterns, allDiffFiles, inputs, yamlFilePatterns }) => __awaiter(void 0, void 0, void 0, function* () { | ||||
| const processChangedFiles = ({ filePatterns, allDiffFiles, inputs, yamlFilePatterns, workingDirectory }) => __awaiter(void 0, void 0, void 0, function* () { | ||||
|     if (filePatterns.length > 0) { | ||||
|         core.startGroup('changed-files-patterns'); | ||||
|         const allFilteredDiffFiles = yield (0, utils_1.getFilteredChangedFiles)({ | ||||
| @ -69,7 +69,8 @@ const processChangedFiles = ({ filePatterns, allDiffFiles, inputs, yamlFilePatte | ||||
|             allDiffFiles, | ||||
|             allFilteredDiffFiles, | ||||
|             inputs, | ||||
|             filePatterns | ||||
|             filePatterns, | ||||
|             workingDirectory | ||||
|         }); | ||||
|         core.info('All Done!'); | ||||
|         core.endGroup(); | ||||
| @ -89,7 +90,8 @@ const processChangedFiles = ({ filePatterns, allDiffFiles, inputs, yamlFilePatte | ||||
|                 allFilteredDiffFiles, | ||||
|                 inputs, | ||||
|                 filePatterns: yamlFilePatterns[key], | ||||
|                 outputPrefix: key | ||||
|                 outputPrefix: key, | ||||
|                 workingDirectory | ||||
|             }); | ||||
|             if (anyModified) { | ||||
|                 modifiedKeys.push(key); | ||||
| @ -120,7 +122,8 @@ const processChangedFiles = ({ filePatterns, allDiffFiles, inputs, yamlFilePatte | ||||
|         yield (0, changedFilesOutput_1.setOutputsAndGetModifiedAndChangedFilesStatus)({ | ||||
|             allDiffFiles, | ||||
|             allFilteredDiffFiles: allDiffFiles, | ||||
|             inputs | ||||
|             inputs, | ||||
|             workingDirectory | ||||
|         }); | ||||
|         core.info('All Done!'); | ||||
|         core.endGroup(); | ||||
| @ -426,15 +429,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.setOutputsAndGetModifiedAndChangedFilesStatus = void 0; | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const path_1 = __importDefault(__nccwpck_require__(1017)); | ||||
| const changedFiles_1 = __nccwpck_require__(7358); | ||||
| const utils_1 = __nccwpck_require__(918); | ||||
| const getArrayFromPaths = (paths, inputs) => { | ||||
|     return Array.isArray(paths) ? paths : paths.split(inputs.separator); | ||||
| }; | ||||
| const setOutputsAndGetModifiedAndChangedFilesStatus = ({ allDiffFiles, allFilteredDiffFiles, inputs, filePatterns = [], outputPrefix = '' }) => __awaiter(void 0, void 0, void 0, function* () { | ||||
| const setOutputsAndGetModifiedAndChangedFilesStatus = ({ allDiffFiles, allFilteredDiffFiles, inputs, filePatterns = [], outputPrefix = '', workingDirectory }) => __awaiter(void 0, void 0, void 0, function* () { | ||||
|     const addedFiles = yield (0, changedFiles_1.getChangeTypeFiles)({ | ||||
|         inputs, | ||||
|         changedFiles: allFilteredDiffFiles, | ||||
| @ -737,6 +744,20 @@ const setOutputsAndGetModifiedAndChangedFilesStatus = ({ allDiffFiles, allFilter | ||||
|         changeTypes: [changedFiles_1.ChangeTypeEnum.Deleted] | ||||
|     }); | ||||
|     core.debug(`Deleted files: ${JSON.stringify(deletedFiles)}`); | ||||
|     if (inputs.dirNamesDeletedFilesIncludeOnlyDeletedDirs && | ||||
|         inputs.dirNames && | ||||
|         workingDirectory) { | ||||
|         const newDeletedFilesPaths = []; | ||||
|         for (const deletedPath of getArrayFromPaths(deletedFiles.paths, inputs)) { | ||||
|             if (!(yield (0, utils_1.exists)(path_1.default.join(workingDirectory, deletedPath)))) { | ||||
|                 newDeletedFilesPaths.push(deletedPath); | ||||
|             } | ||||
|         } | ||||
|         deletedFiles.paths = inputs.json | ||||
|             ? newDeletedFilesPaths | ||||
|             : newDeletedFilesPaths.join(inputs.separator); | ||||
|         deletedFiles.count = newDeletedFilesPaths.length.toString(); | ||||
|     } | ||||
|     yield (0, utils_1.setOutput)({ | ||||
|         key: (0, utils_1.getOutputKey)('deleted_files', outputPrefix), | ||||
|         value: deletedFiles.paths, | ||||
| @ -1493,6 +1514,9 @@ const getInputs = () => { | ||||
|     const failOnSubmoduleDiffError = core.getBooleanInput('fail_on_submodule_diff_error', { | ||||
|         required: false | ||||
|     }); | ||||
|     const dirNamesDeletedFilesIncludeOnlyDeletedDirs = core.getBooleanInput('dir_names_deleted_files_include_only_deleted_dirs', { | ||||
|         required: false | ||||
|     }); | ||||
|     const inputs = { | ||||
|         files, | ||||
|         filesSeparator, | ||||
| @ -1536,6 +1560,7 @@ const getInputs = () => { | ||||
|         dirNamesExcludeCurrentDir, | ||||
|         dirNamesIncludeFiles, | ||||
|         dirNamesIncludeFilesSeparator, | ||||
|         dirNamesDeletedFilesIncludeOnlyDeletedDirs, | ||||
|         json, | ||||
|         escapeJson, | ||||
|         writeOutputFiles, | ||||
| @ -1682,7 +1707,8 @@ const getChangedFilesFromLocalGitHistory = ({ inputs, env, workingDirectory, fil | ||||
|         filePatterns, | ||||
|         allDiffFiles, | ||||
|         inputs, | ||||
|         yamlFilePatterns | ||||
|         yamlFilePatterns, | ||||
|         workingDirectory | ||||
|     }); | ||||
|     if (inputs.includeAllOldNewRenamedFiles) { | ||||
|         core.startGroup('changed-files-all-old-new-renamed-files'); | ||||
| @ -1865,7 +1891,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.hasLocalGitDirectory = exports.recoverDeletedFiles = exports.setOutput = exports.setArrayOutput = exports.getOutputKey = exports.getRecoverFilePatterns = exports.getYamlFilePatterns = exports.getFilePatterns = exports.getDirNamesIncludeFilesPattern = exports.jsonOutput = exports.getDirnameMaxDepth = exports.canDiffCommits = exports.getPreviousGitTag = exports.verifyCommitSha = exports.getParentSha = exports.getRemoteBranchHeadSha = exports.isInsideWorkTree = exports.getHeadSha = exports.gitLog = exports.getFilteredChangedFiles = exports.getAllChangedFiles = exports.gitRenamedFiles = exports.gitSubmoduleDiffSHA = exports.getSubmodulePath = exports.gitFetchSubmodules = exports.gitFetch = exports.submoduleExists = exports.isRepoShallow = exports.updateGitGlobalConfig = exports.verifyMinimumGitVersion = exports.getDirname = exports.normalizeSeparators = exports.isWindows = void 0; | ||||
| exports.hasLocalGitDirectory = exports.recoverDeletedFiles = exports.setOutput = exports.setArrayOutput = exports.getOutputKey = exports.getRecoverFilePatterns = exports.getYamlFilePatterns = exports.getFilePatterns = exports.getDirNamesIncludeFilesPattern = exports.jsonOutput = exports.getDirnameMaxDepth = exports.canDiffCommits = exports.getPreviousGitTag = exports.verifyCommitSha = exports.getParentSha = exports.getRemoteBranchHeadSha = exports.isInsideWorkTree = exports.getHeadSha = exports.gitLog = exports.getFilteredChangedFiles = exports.getAllChangedFiles = exports.gitRenamedFiles = exports.gitSubmoduleDiffSHA = exports.getSubmodulePath = exports.gitFetchSubmodules = exports.gitFetch = exports.submoduleExists = exports.isRepoShallow = exports.updateGitGlobalConfig = exports.exists = exports.verifyMinimumGitVersion = exports.getDirname = exports.normalizeSeparators = exports.isWindows = void 0; | ||||
| /*global AsyncIterableIterator*/ | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const exec = __importStar(__nccwpck_require__(1514)); | ||||
| @ -1991,6 +2017,7 @@ const exists = (filePath) => __awaiter(void 0, void 0, void 0, function* () { | ||||
|         return false; | ||||
|     } | ||||
| }); | ||||
| exports.exists = exists; | ||||
| /** | ||||
|  * Generates lines of a file as an async iterable iterator | ||||
|  * @param filePath - path of file to read | ||||
| @ -2562,7 +2589,7 @@ const getYamlFilePatternsFromContents = ({ content = '', filePath = '', excluded | ||||
|     const filePatterns = {}; | ||||
|     let source = ''; | ||||
|     if (filePath) { | ||||
|         if (!(yield exists(filePath))) { | ||||
|         if (!(yield (0, exports.exists)(filePath))) { | ||||
|             core.error(`File does not exist: ${filePath}`); | ||||
|             throw new Error(`File does not exist: ${filePath}`); | ||||
|         } | ||||
| @ -2714,7 +2741,7 @@ const setOutput = ({ key, value, writeOutputFiles, outputDir, json = false, shou | ||||
|     if (writeOutputFiles) { | ||||
|         const extension = json ? 'json' : 'txt'; | ||||
|         const outputFilePath = path.join(outputDir, `${key}.${extension}`); | ||||
|         if (!(yield exists(outputDir))) { | ||||
|         if (!(yield (0, exports.exists)(outputDir))) { | ||||
|             yield fs_1.promises.mkdir(outputDir, { recursive: true }); | ||||
|         } | ||||
|         yield fs_1.promises.writeFile(outputFilePath, cleanedValue.replace(/\\"/g, '"')); | ||||
| @ -2753,7 +2780,7 @@ const recoverDeletedFiles = ({ inputs, workingDirectory, deletedFiles, recoverPa | ||||
|             filePath: deletedFile, | ||||
|             sha | ||||
|         }); | ||||
|         if (!(yield exists(path.dirname(target)))) { | ||||
|         if (!(yield (0, exports.exists)(path.dirname(target)))) { | ||||
|             yield fs_1.promises.mkdir(path.dirname(target), { recursive: true }); | ||||
|         } | ||||
|         yield fs_1.promises.writeFile(target, deletedFileContents); | ||||
|  | ||||
							
								
								
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -24,12 +24,14 @@ export const processChangedFiles = async ({ | ||||
|   filePatterns, | ||||
|   allDiffFiles, | ||||
|   inputs, | ||||
|   yamlFilePatterns | ||||
|   yamlFilePatterns, | ||||
|   workingDirectory | ||||
| }: { | ||||
|   filePatterns: string[] | ||||
|   allDiffFiles: ChangedFiles | ||||
|   inputs: Inputs | ||||
|   yamlFilePatterns: Record<string, string[]> | ||||
|   workingDirectory?: string | ||||
| }): Promise<void> => { | ||||
|   if (filePatterns.length > 0) { | ||||
|     core.startGroup('changed-files-patterns') | ||||
| @ -44,7 +46,8 @@ export const processChangedFiles = async ({ | ||||
|       allDiffFiles, | ||||
|       allFilteredDiffFiles, | ||||
|       inputs, | ||||
|       filePatterns | ||||
|       filePatterns, | ||||
|       workingDirectory | ||||
|     }) | ||||
|     core.info('All Done!') | ||||
|     core.endGroup() | ||||
| @ -71,7 +74,8 @@ export const processChangedFiles = async ({ | ||||
|           allFilteredDiffFiles, | ||||
|           inputs, | ||||
|           filePatterns: yamlFilePatterns[key], | ||||
|           outputPrefix: key | ||||
|           outputPrefix: key, | ||||
|           workingDirectory | ||||
|         }) | ||||
|       if (anyModified) { | ||||
|         modifiedKeys.push(key) | ||||
| @ -106,7 +110,8 @@ export const processChangedFiles = async ({ | ||||
|     await setOutputsAndGetModifiedAndChangedFilesStatus({ | ||||
|       allDiffFiles, | ||||
|       allFilteredDiffFiles: allDiffFiles, | ||||
|       inputs | ||||
|       inputs, | ||||
|       workingDirectory | ||||
|     }) | ||||
|     core.info('All Done!') | ||||
|     core.endGroup() | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| import * as core from '@actions/core' | ||||
| import path from 'path' | ||||
| import { | ||||
|   ChangedFiles, | ||||
|   ChangeTypeEnum, | ||||
| @ -6,7 +7,7 @@ import { | ||||
|   getChangeTypeFiles | ||||
| } from './changedFiles' | ||||
| import {Inputs} from './inputs' | ||||
| import {getOutputKey, setArrayOutput, setOutput} from './utils' | ||||
| import {getOutputKey, setArrayOutput, setOutput, exists} from './utils' | ||||
| 
 | ||||
| const getArrayFromPaths = ( | ||||
|   paths: string | string[], | ||||
| @ -20,13 +21,15 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({ | ||||
|   allFilteredDiffFiles, | ||||
|   inputs, | ||||
|   filePatterns = [], | ||||
|   outputPrefix = '' | ||||
|   outputPrefix = '', | ||||
|   workingDirectory | ||||
| }: { | ||||
|   allDiffFiles: ChangedFiles | ||||
|   allFilteredDiffFiles: ChangedFiles | ||||
|   inputs: Inputs | ||||
|   filePatterns?: string[] | ||||
|   outputPrefix?: string | ||||
|   workingDirectory?: string | ||||
| }): Promise<{anyModified: boolean; anyChanged: boolean}> => { | ||||
|   const addedFiles = await getChangeTypeFiles({ | ||||
|     inputs, | ||||
| @ -388,6 +391,28 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({ | ||||
|     changeTypes: [ChangeTypeEnum.Deleted] | ||||
|   }) | ||||
|   core.debug(`Deleted files: ${JSON.stringify(deletedFiles)}`) | ||||
| 
 | ||||
|   if ( | ||||
|     inputs.dirNamesDeletedFilesIncludeOnlyDeletedDirs && | ||||
|     inputs.dirNames && | ||||
|     workingDirectory | ||||
|   ) { | ||||
|     const newDeletedFilesPaths: string[] = [] | ||||
|     for (const deletedPath of getArrayFromPaths(deletedFiles.paths, inputs)) { | ||||
|       const dirPath = path.join(workingDirectory, deletedPath) | ||||
|       core.debug(`Checking if directory exists: ${dirPath}`) | ||||
|       if (!(await exists(dirPath))) { | ||||
|         core.debug(`Directory not found: ${dirPath}`) | ||||
|         newDeletedFilesPaths.push(deletedPath) | ||||
|       } | ||||
|     } | ||||
|     deletedFiles.paths = inputs.json | ||||
|       ? newDeletedFilesPaths | ||||
|       : newDeletedFilesPaths.join(inputs.separator) | ||||
|     deletedFiles.count = newDeletedFilesPaths.length.toString() | ||||
|     core.debug(`New deleted files: ${JSON.stringify(deletedFiles)}`) | ||||
|   } | ||||
| 
 | ||||
|   await setOutput({ | ||||
|     key: getOutputKey('deleted_files', outputPrefix), | ||||
|     value: deletedFiles.paths, | ||||
|  | ||||
| @ -31,6 +31,7 @@ export type Inputs = { | ||||
|   dirNamesExcludeCurrentDir: boolean | ||||
|   dirNamesIncludeFiles: string | ||||
|   dirNamesIncludeFilesSeparator: string | ||||
|   dirNamesDeletedFilesIncludeOnlyDeletedDirs: boolean | ||||
|   json: boolean | ||||
|   escapeJson: boolean | ||||
|   fetchDepth?: number | ||||
| @ -210,6 +211,12 @@ export const getInputs = (): Inputs => { | ||||
|       required: false | ||||
|     } | ||||
|   ) | ||||
|   const dirNamesDeletedFilesIncludeOnlyDeletedDirs = core.getBooleanInput( | ||||
|     'dir_names_deleted_files_include_only_deleted_dirs', | ||||
|     { | ||||
|       required: false | ||||
|     } | ||||
|   ) | ||||
| 
 | ||||
|   const inputs: Inputs = { | ||||
|     files, | ||||
| @ -254,6 +261,7 @@ export const getInputs = (): Inputs => { | ||||
|     dirNamesExcludeCurrentDir, | ||||
|     dirNamesIncludeFiles, | ||||
|     dirNamesIncludeFilesSeparator, | ||||
|     dirNamesDeletedFilesIncludeOnlyDeletedDirs, | ||||
|     json, | ||||
|     escapeJson, | ||||
|     writeOutputFiles, | ||||
|  | ||||
| @ -152,7 +152,8 @@ const getChangedFilesFromLocalGitHistory = async ({ | ||||
|     filePatterns, | ||||
|     allDiffFiles, | ||||
|     inputs, | ||||
|     yamlFilePatterns | ||||
|     yamlFilePatterns, | ||||
|     workingDirectory | ||||
|   }) | ||||
| 
 | ||||
|   if (inputs.includeAllOldNewRenamedFiles) { | ||||
|  | ||||
| @ -139,7 +139,7 @@ export const verifyMinimumGitVersion = async (): Promise<void> => { | ||||
|  * @param filePath - path to check | ||||
|  * @returns path exists | ||||
|  */ | ||||
| const exists = async (filePath: string): Promise<boolean> => { | ||||
| export const exists = async (filePath: string): Promise<boolean> => { | ||||
|   try { | ||||
|     await fs.access(filePath) | ||||
|     return true | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tonye Jack
						Tonye Jack