1 files changed, 0 insertions, 38 deletions
diff --git a/src/Util.ts b/src/Util.ts
deleted file mode 100644
index 291372c1..00000000
--- a/src/Util.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import fs from "fs/promises";
-import "missing-native-js-functions";
-
-export interface traverseDirectoryOptions {
- dirname: string;
- filter?: RegExp;
- excludeDirs?: RegExp;
- recursive?: boolean;
-}
-
-const DEFAULT_EXCLUDE_DIR = /^\./;
-const DEFAULT_FILTER = /^([^\.].*)\.js$/;
-
-export async function traverseDirectory<T>(
- options: traverseDirectoryOptions,
- action: (path: string) => T
-): Promise<T[]> {
- if (!options.filter) options.filter = DEFAULT_FILTER;
- if (!options.excludeDirs) options.excludeDirs = DEFAULT_EXCLUDE_DIR;
-
- const routes = await fs.readdir(options.dirname);
- const promises = <Promise<T | T[] | undefined>[]>routes.map(async (file) => {
- const path = options.dirname + file;
- const stat = await fs.lstat(path);
- if (path.match(<RegExp>options.excludeDirs)) return;
-
- if (stat.isFile() && path.match(<RegExp>options.filter)) {
- return action(path);
- } else if (options.recursive && stat.isDirectory()) {
- return traverseDirectory({ ...options, dirname: path + "/" }, action);
- }
- });
- const result = await Promise.all(promises);
-
- const t = <(T | undefined)[]>result.flat();
-
- return <T[]>t.filter((x) => x != undefined);
-}
|