-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
- Loading branch information
1 parent
e760331
commit 771e401
Showing
9 changed files
with
337 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
"tauri.js": minor | ||
"tauri": minor | ||
--- | ||
|
||
Adds a path resolution API (e.g. getting the download directory or resolving a path to the home directory). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,274 @@ | ||
import { promisified } from './tauri' | ||
import { BaseDirectory } from './fs' | ||
|
||
/** | ||
* @name appDir | ||
* @description Returns the path to the suggested directory for your app config files. | ||
* @return {Promise<string>} | ||
*/ | ||
async function appDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.App | ||
}) | ||
} | ||
|
||
/** | ||
* @name audioDir | ||
* @description Returns the path to the user's audio directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function audioDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Audio | ||
}) | ||
} | ||
|
||
/** | ||
* @name cacheDir | ||
* @description Returns the path to the user's cache directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function cacheDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Cache | ||
}) | ||
} | ||
|
||
/** | ||
* @name configDir | ||
* @description Returns the path to the user's config directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function configDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Config | ||
}) | ||
} | ||
|
||
/** | ||
* @name dataDir | ||
* @description Returns the path to the user's data directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function dataDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Data | ||
}) | ||
} | ||
|
||
/** | ||
* @name desktopDir | ||
* @description Returns the path to the user's desktop directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function desktopDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Desktop | ||
}) | ||
} | ||
|
||
/** | ||
* @name documentDir | ||
* @description Returns the path to the user's document directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function documentDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Document | ||
}) | ||
} | ||
|
||
/** | ||
* @name downloadDir | ||
* @description Returns the path to the user's download directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function downloadDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Download | ||
}) | ||
} | ||
|
||
/** | ||
* @name executableDir | ||
* @description Returns the path to the user's executable directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function executableDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Executable | ||
}) | ||
} | ||
|
||
/** | ||
* @name fontDir | ||
* @description Returns the path to the user's font directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function fontDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Font | ||
}) | ||
} | ||
|
||
/** | ||
* @name homeDir | ||
* @description Returns the path to the user's home directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function homeDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Home | ||
}) | ||
} | ||
|
||
/** | ||
* @name localDataDir | ||
* @description Returns the path to the user's local data directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function localDataDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.LocalData | ||
}) | ||
} | ||
|
||
/** | ||
* @name pictureDir | ||
* @description Returns the path to the user's picture directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function pictureDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Picture | ||
}) | ||
} | ||
|
||
/** | ||
* @name publicDir | ||
* @description Returns the path to the user's public directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function publicDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Public | ||
}) | ||
} | ||
|
||
/** | ||
* @name resourceDir | ||
* @description Returns the path to the user's resource directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function resourceDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Resource | ||
}) | ||
} | ||
|
||
/** | ||
* @name runtimeDir | ||
* @descriptionReturns Returns the path to the user's runtime directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function runtimeDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Runtime | ||
}) | ||
} | ||
|
||
/** | ||
* @name templateDir | ||
* @descriptionReturns Returns the path to the user's template directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function templateDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Template | ||
}) | ||
} | ||
|
||
/** | ||
* @name videoDir | ||
* @descriptionReturns Returns the path to the user's video dir. | ||
* @return {Promise<string>} | ||
*/ | ||
async function videoDir(): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path: '.', | ||
directory: BaseDirectory.Video | ||
}) | ||
} | ||
|
||
/** | ||
* @name resolvePath | ||
* @descriptionReturns Resolves the path with the optional base directory. | ||
* @return {Promise<string>} | ||
*/ | ||
async function resolvePath( | ||
path: string, | ||
directory: BaseDirectory | ||
): Promise<string> { | ||
return await promisified<string>({ | ||
cmd: 'resolvePath', | ||
path, | ||
directory | ||
}) | ||
} | ||
|
||
export { | ||
appDir, | ||
audioDir, | ||
cacheDir, | ||
configDir, | ||
dataDir, | ||
desktopDir, | ||
documentDir, | ||
downloadDir, | ||
executableDir, | ||
fontDir, | ||
homeDir, | ||
localDataDir, | ||
pictureDir, | ||
publicDir, | ||
resourceDir, | ||
runtimeDir, | ||
templateDir, | ||
videoDir, | ||
resolvePath | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#![cfg(path_api)] | ||
use tauri_api::path; | ||
use tauri_api::path::BaseDirectory; | ||
use webview_official::Webview; | ||
|
||
pub fn resolve_path( | ||
webview: &mut Webview<'_>, | ||
path: String, | ||
directory: Option<BaseDirectory>, | ||
callback: String, | ||
error: String, | ||
) { | ||
crate::execute_promise( | ||
webview, | ||
move || path::resolve_path(path, directory), | ||
callback, | ||
error, | ||
) | ||
} |