chore: Move to Typescript (#2783)
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
This commit is contained in:
27
server/utils/fs.ts
Normal file
27
server/utils/fs.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import path from "path";
|
||||
import fs from "fs-extra";
|
||||
|
||||
export function serializeFilename(text: string): string {
|
||||
return text.replace(/\//g, "%2F").replace(/\\/g, "%5C");
|
||||
}
|
||||
|
||||
export function deserializeFilename(text: string): string {
|
||||
return text.replace(/%2F/g, "/").replace(/%5C/g, "\\");
|
||||
}
|
||||
|
||||
export function requireDirectory<T>(dirName: string): [T, string][] {
|
||||
return fs
|
||||
.readdirSync(dirName)
|
||||
.filter(
|
||||
(file) =>
|
||||
file.indexOf(".") !== 0 &&
|
||||
file.match(/\.[jt]s$/) &&
|
||||
file !== path.basename(__filename) &&
|
||||
!file.includes(".test")
|
||||
)
|
||||
.map((fileName) => {
|
||||
const filePath = path.join(dirName, fileName);
|
||||
const name = path.basename(filePath.replace(/\.[jt]s$/, ""));
|
||||
return [require(filePath), name];
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user