platform-folders
Version:
Module to get platform dependent folders (e.g. documents, downloads, config)
100 lines (82 loc) • 2.52 kB
text/typescript
;
// eslint-disable-next-line @typescript-eslint/no-var-requires
const folders = require("bindings")("platformFolders");
export function getHomeFolder(): string {
return folders.getHomeFolder();
}
export function getCacheFolder(): string {
return folders.getCacheDir();
}
export function getStateFolder(): string {
return folders.getStateDir();
}
export function getConfigHome(): string {
return folders.getConfigHome();
}
export function getDataHome(): string {
return folders.getDataHome();
}
export function getDataFolders(): string[] {
return folders.getDataFolders();
}
export function getConfigFolders(): string[] {
return folders.getConfigFolders();
}
export function getDesktopFolder(): string {
return folders.getDesktopFolder();
}
export function getDocumentsFolder(): string {
return folders.getDocumentsFolder();
}
export function getDownloadsFolder(): string {
return folders.getDownloadsFolder();
}
export function getPicturesFolder(): string {
return folders.getPicturesFolder();
}
export function getVideosFolder(): string {
return folders.getVideosFolder();
}
export function getMusicFolder(): string {
return folders.getMusicFolder();
}
export function getSaveGamesFolder(): string {
return folders.getSaveGamesFolder();
}
/**
* Returns path for type or undefined if name is invalid
* @param name folder type (see README)
*/
type Folder = "home" | "appData" | "appdata" | "userData" | "desktop" | "documents" |
"downloads" | "music" | "pictures" | "videos" | "cache" | "savegames" | "state";
export default function getPath(name: Folder): string|undefined {
switch (name) {
case "home":
return getHomeFolder();
case "appData":
case "appdata":
return getDataHome();
case "userData":
return getConfigHome();
case "desktop":
return getDesktopFolder();
case "documents":
return getDocumentsFolder();
case "downloads":
return getDownloadsFolder();
case "music":
return getMusicFolder();
case "pictures":
return getPicturesFolder();
case "videos":
return getVideosFolder();
case "cache":
return getCacheFolder();
case "state":
return getStateFolder();
case "savegames":
return getSaveGamesFolder();
default:
return undefined;
}
}