Gathering detailed insights and metrics for platformdirs
Gathering detailed insights and metrics for platformdirs
Gathering detailed insights and metrics for platformdirs
Gathering detailed insights and metrics for platformdirs
📂 Unified interface to get platform-specific directories
npm install platformdirs
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (95.98%)
JavaScript (4.02%)
Total Downloads
2,469
Last Day
50
Last Week
337
Last Month
1,602
Last Year
2,469
MIT License
2 Stars
31 Commits
1 Watchers
1 Branches
1 Contributors
Updated on Mar 06, 2025
Latest Version
4.3.8-rc3
Package Id
platformdirs@4.3.8-rc3
Unpacked Size
95.41 kB
Size
15.50 kB
File Count
21
NPM Version
10.9.2
Node Version
23.5.0
Published on
Dec 28, 2024
Cumulative downloads
Total Downloads
Last Day
4.2%
50
Compared to previous day
Last Week
-0.3%
337
Compared to previous week
Last Month
564.7%
1,602
Compared to previous month
Last Year
0%
2,469
Compared to previous year
6
platformdirs
for JavaScript📂 Unified interface to get platform-specific directories
|
Documentation
| Original platformdirs
project
🚀 Works on Windows, macOS, Linux, and Androidnot yet
✅ Uses platform-specific best practices
🐍 A re-implementation of Python's platformdirs
package
You can install this package from the npm registry using npm, Yarn, pnpm, Bun, Deno, etc.
1npm install platformdirs
This package works with Node.js, Deno, and Bun. It is not intended to be used in the browser.
1import * as fs from "node:fs/promises"; 2import * as path from "node:path"; 3import * as stream from "node:stream"; 4import { userCacheDir } from "platformdirs"; 5 6const cacheDir = userCacheDir("awesome-app", "octocat", "1.2") 7const bigCSVPath = path.join(cacheDir, "big.csv"); 8if (!fs.existsSync(bigCSVPath)) { 9 const response = await fetch("https://example.com/big.csv"); 10 await response.body.pipeTo(stream.Writable.toWeb(fs.createWriteStream(bigCSVPath))); 11}
📚 For more information check out the documentation
You can quickly dump all the directories for the current environment by running the included platformdirs
CLI command. This is helpful for quickly determining what dirs.userConfigDir
and friends return.
1npx platformdirs
-- platformdirs 4.3.7 --
-- app dirs (with optional 'version')
user_data_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\1.0
user_config_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\1.0
user_cache_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\Cache\1.0
user_state_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\1.0
user_log_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\1.0\Logs
user_documents_dir: C:\Users\me\Documents
user_downloads_dir: C:\Users\me\Downloads
user_pictures_dir: C:\Users\me\Pictures
user_videos_dir: C:\Users\me\Videos
user_music_dir: C:\Users\me\Music
user_runtime_dir: C:\Users\me\AppData\Local\Temp\MyCompany\MyApp\1.0
site_data_dir: C:\ProgramData\MyCompany\MyApp\1.0
site_config_dir: C:\ProgramData\MyCompany\MyApp\1.0
site_cache_dir: C:\ProgramData\MyCompany\MyApp\Cache\1.0
site_runtime_dir: C:\Users\me\AppData\Local\Temp\MyCompany\MyApp\1.0
-- app dirs (without optional 'version')
user_data_dir: C:\Users\me\AppData\Local\MyCompany\MyApp
user_config_dir: C:\Users\me\AppData\Local\MyCompany\MyApp
user_cache_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\Cache
user_state_dir: C:\Users\me\AppData\Local\MyCompany\MyApp
user_log_dir: C:\Users\me\AppData\Local\MyCompany\MyApp\Logs
user_documents_dir: C:\Users\me\Documents
user_downloads_dir: C:\Users\me\Downloads
user_pictures_dir: C:\Users\me\Pictures
user_videos_dir: C:\Users\me\Videos
user_music_dir: C:\Users\me\Music
user_runtime_dir: C:\Users\me\AppData\Local\Temp\MyCompany\MyApp
site_data_dir: C:\ProgramData\MyCompany\MyApp
site_config_dir: C:\ProgramData\MyCompany\MyApp
site_cache_dir: C:\ProgramData\MyCompany\MyApp\Cache
site_runtime_dir: C:\Users\me\AppData\Local\Temp\MyCompany\MyApp
-- app dirs (without optional 'appauthor')
user_data_dir: C:\Users\me\AppData\Local\MyApp\MyApp
user_config_dir: C:\Users\me\AppData\Local\MyApp\MyApp
user_cache_dir: C:\Users\me\AppData\Local\MyApp\MyApp\Cache
user_state_dir: C:\Users\me\AppData\Local\MyApp\MyApp
user_log_dir: C:\Users\me\AppData\Local\MyApp\MyApp\Logs
user_documents_dir: C:\Users\me\Documents
user_downloads_dir: C:\Users\me\Downloads
user_pictures_dir: C:\Users\me\Pictures
user_videos_dir: C:\Users\me\Videos
user_music_dir: C:\Users\me\Music
user_runtime_dir: C:\Users\me\AppData\Local\Temp\MyApp\MyApp
site_data_dir: C:\ProgramData\MyApp\MyApp
site_config_dir: C:\ProgramData\MyApp\MyApp
site_cache_dir: C:\ProgramData\MyApp\MyApp\Cache
site_runtime_dir: C:\Users\me\AppData\Local\Temp\MyApp\MyApp
-- app dirs (with disabled 'appauthor')
user_data_dir: C:\Users\me\AppData\Local\MyApp
user_config_dir: C:\Users\me\AppData\Local\MyApp
user_cache_dir: C:\Users\me\AppData\Local\MyApp\Cache
user_state_dir: C:\Users\me\AppData\Local\MyApp
user_log_dir: C:\Users\me\AppData\Local\MyApp\Logs
user_documents_dir: C:\Users\me\Documents
user_downloads_dir: C:\Users\me\Downloads
user_pictures_dir: C:\Users\me\Pictures
user_videos_dir: C:\Users\me\Videos
user_music_dir: C:\Users\me\Music
user_runtime_dir: C:\Users\me\AppData\Local\Temp\MyApp
site_data_dir: C:\ProgramData\MyApp
site_config_dir: C:\ProgramData\MyApp
site_cache_dir: C:\ProgramData\MyApp\Cache
site_runtime_dir: C:\Users\me\AppData\Local\Temp\MyApp
TODO
-- platformdirs 4.3.6 --
-- app dirs (with optional 'version')
user_data_dir: /home/me/.local/share/MyApp/1.0
user_config_dir: /home/me/.config/MyApp/1.0
user_cache_dir: /home/me/.cache/MyApp/1.0
user_state_dir: /home/me/.local/state/MyApp/1.0
user_log_dir: /home/me/.local/state/MyApp/1.0/log
user_documents_dir: /home/me/Documents
user_downloads_dir: /home/me/Downloads
user_pictures_dir: /home/me/Pictures
user_videos_dir: /home/me/Videos
user_music_dir: /home/me/Music
user_runtime_dir: /run/user/1000/MyApp/1.0
site_data_dir: /usr/local/share/MyApp/1.0
site_config_dir: /etc/xdg/MyApp/1.0
site_cache_dir: /var/cache/MyApp/1.0
site_runtime_dir: /run/MyApp/1.0
-- app dirs (without optional 'version')
user_data_dir: /home/me/.local/share/MyApp
user_config_dir: /home/me/.config/MyApp
user_cache_dir: /home/me/.cache/MyApp
user_state_dir: /home/me/.local/state/MyApp
user_log_dir: /home/me/.local/state/MyApp/log
user_documents_dir: /home/me/Documents
user_downloads_dir: /home/me/Downloads
user_pictures_dir: /home/me/Pictures
user_videos_dir: /home/me/Videos
user_music_dir: /home/me/Music
user_runtime_dir: /run/user/1000/MyApp
site_data_dir: /usr/local/share/MyApp
site_config_dir: /etc/xdg/MyApp
site_cache_dir: /var/cache/MyApp
site_runtime_dir: /run/MyApp
-- app dirs (without optional 'appauthor')
user_data_dir: /home/me/.local/share/MyApp
user_config_dir: /home/me/.config/MyApp
user_cache_dir: /home/me/.cache/MyApp
user_state_dir: /home/me/.local/state/MyApp
user_log_dir: /home/me/.local/state/MyApp/log
user_documents_dir: /home/me/Documents
user_downloads_dir: /home/me/Downloads
user_pictures_dir: /home/me/Pictures
user_videos_dir: /home/me/Videos
user_music_dir: /home/me/Music
user_runtime_dir: /run/user/1000/MyApp
site_data_dir: /usr/local/share/MyApp
site_config_dir: /etc/xdg/MyApp
site_cache_dir: /var/cache/MyApp
site_runtime_dir: /run/MyApp
-- app dirs (with disabled 'appauthor')
user_data_dir: /home/me/.local/share/MyApp
user_config_dir: /home/me/.config/MyApp
user_cache_dir: /home/me/.cache/MyApp
user_state_dir: /home/me/.local/state/MyApp
user_log_dir: /home/me/.local/state/MyApp/log
user_documents_dir: /home/me/Documents
user_downloads_dir: /home/me/Downloads
user_pictures_dir: /home/me/Pictures
user_videos_dir: /home/me/Videos
user_music_dir: /home/me/Music
user_runtime_dir: /run/user/1000/MyApp
site_data_dir: /usr/local/share/MyApp
site_config_dir: /etc/xdg/MyApp
site_cache_dir: /var/cache/MyApp
site_runtime_dir: /run/MyApp
This project uses Node.js, npm, TypeScript, and Biome instead of the usual Prettier & ESLint combo. Why? Because ESLint bungled their v9 release and Biome offers a more cohesive linter & formatter solution.
For package releases make sure to always release a -rc1
version first. If it's 100% OK then proceed to release it as normal. The goal is to keep the npm platformdirs@X.Y.Z
package in sync with PyPI platformdirs==X.Y.Z
.
So far I have failed at this and now I'm two patch versions ahead of the Python package. Oopsies.
No vulnerabilities found.
No security vulnerabilities found.