blob: 12e87f4d30fa5ed54cb0bf80f67fa4dc1edcefa7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// Utility functions for interacting with files and other external data
// interfacey constructs.
import {readdir} from 'fs/promises';
import * as path from 'path';
export async function findFiles(dataPath, {
filter = () => true,
joinParentDirectory = true,
} = {}) {
let files;
try {
files = await readdir(dataPath);
} catch (error) {
throw Object.assign(
new AggregateError([error], `Failed to list files from ${dataPath}`),
{code: error.code});
}
return files
.filter((file) => filter(file))
.map((file) => (joinParentDirectory ? path.join(dataPath, file) : file));
}
|