2020-01-09 20:05:31 +00:00
|
|
|
import {Globber, DefaultGlobber} from './internal-globber'
|
|
|
|
import {GlobOptions} from './internal-glob-options'
|
2021-06-07 18:26:00 +00:00
|
|
|
import {HashFileOptions} from './internal-hash-file-options'
|
|
|
|
import {hashFiles as _hashFiles} from './internal-hash-files'
|
2019-12-31 15:16:18 +00:00
|
|
|
|
2020-01-09 20:05:31 +00:00
|
|
|
export {Globber, GlobOptions}
|
2019-12-31 15:16:18 +00:00
|
|
|
|
|
|
|
/**
|
2020-01-09 20:05:31 +00:00
|
|
|
* Constructs a globber
|
2019-12-31 15:16:18 +00:00
|
|
|
*
|
2020-01-09 20:05:31 +00:00
|
|
|
* @param patterns Patterns separated by newlines
|
|
|
|
* @param options Glob options
|
2019-12-31 15:16:18 +00:00
|
|
|
*/
|
2020-01-09 20:05:31 +00:00
|
|
|
export async function create(
|
|
|
|
patterns: string,
|
|
|
|
options?: GlobOptions
|
|
|
|
): Promise<Globber> {
|
|
|
|
return await DefaultGlobber.create(patterns, options)
|
2019-12-31 15:16:18 +00:00
|
|
|
}
|
2021-06-07 18:26:00 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Computes the sha256 hash of a glob
|
|
|
|
*
|
|
|
|
* @param patterns Patterns separated by newlines
|
2023-01-24 19:12:47 +00:00
|
|
|
* @param currentWorkspace Workspace used when matching files
|
2021-06-07 18:26:00 +00:00
|
|
|
* @param options Glob options
|
2023-01-24 19:12:47 +00:00
|
|
|
* @param verbose Enables verbose logging
|
2021-06-07 18:26:00 +00:00
|
|
|
*/
|
|
|
|
export async function hashFiles(
|
|
|
|
patterns: string,
|
2023-01-24 19:12:47 +00:00
|
|
|
currentWorkspace = '',
|
2022-04-18 18:29:24 +00:00
|
|
|
options?: HashFileOptions,
|
|
|
|
verbose: Boolean = false
|
2021-06-07 18:26:00 +00:00
|
|
|
): Promise<string> {
|
|
|
|
let followSymbolicLinks = true
|
|
|
|
if (options && typeof options.followSymbolicLinks === 'boolean') {
|
|
|
|
followSymbolicLinks = options.followSymbolicLinks
|
|
|
|
}
|
|
|
|
const globber = await create(patterns, {followSymbolicLinks})
|
2023-01-24 19:12:47 +00:00
|
|
|
return _hashFiles(globber, currentWorkspace, verbose)
|
2021-06-07 18:26:00 +00:00
|
|
|
}
|