| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /**
- * Invoke your custom commands.
- *
- * This package is also accessible with `window.__TAURI__.tauri` when [`build.withGlobalTauri`](https://tauri.app/v1/api/config/#buildconfig.withglobaltauri) in `tauri.conf.json` is set to `true`.
- * @module
- */
- /** @ignore */
- declare global {
- interface Window {
- __TAURI_IPC__: (message: any) => void;
- ipc: {
- postMessage: (args: string) => void;
- };
- __TAURI__: {
- convertFileSrc: (src: string, protocol: string) => string;
- };
- }
- }
- /**
- * Transforms a callback function to a string identifier that can be passed to the backend.
- * The backend uses the identifier to `eval()` the callback.
- *
- * @return A unique identifier associated with the callback function.
- *
- * @since 1.0.0
- */
- declare function transformCallback(callback?: (response: any) => void, once?: boolean): number;
- /**
- * Command arguments.
- *
- * @since 1.0.0
- */
- type InvokeArgs = Record<string, unknown>;
- /**
- * Sends a message to the backend.
- * @example
- * ```typescript
- * import { invoke } from '@tauri-apps/api/tauri';
- * await invoke('login', { user: 'tauri', password: 'poiwe3h4r5ip3yrhtew9ty' });
- * ```
- *
- * @param cmd The command name.
- * @param args The optional arguments to pass to the command.
- * @return A promise resolving or rejecting to the backend response.
- *
- * @since 1.0.0
- */
- declare function invoke<T>(cmd: string, args?: InvokeArgs): Promise<T>;
- /**
- * Convert a device file path to an URL that can be loaded by the webview.
- * Note that `asset:` and `https://asset.localhost` must be added to [`tauri.security.csp`](https://tauri.app/v1/api/config/#securityconfig.csp) in `tauri.conf.json`.
- * Example CSP value: `"csp": "default-src 'self'; img-src 'self' asset: https://asset.localhost"` to use the asset protocol on image sources.
- *
- * Additionally, `asset` must be added to [`tauri.allowlist.protocol`](https://tauri.app/v1/api/config/#allowlistconfig.protocol)
- * in `tauri.conf.json` and its access scope must be defined on the `assetScope` array on the same `protocol` object.
- * For example:
- * ```json
- * {
- * "tauri": {
- * "allowlist": {
- * "protocol": {
- * "asset": true,
- * "assetScope": ["$APPDATA/assets/*"]
- * }
- * }
- * }
- * }
- * ```
- *
- * @param filePath The file path.
- * @param protocol The protocol to use. Defaults to `asset`. You only need to set this when using a custom protocol.
- * @example
- * ```typescript
- * import { appDataDir, join } from '@tauri-apps/api/path';
- * import { convertFileSrc } from '@tauri-apps/api/tauri';
- * const appDataDirPath = await appDataDir();
- * const filePath = await join(appDataDirPath, 'assets/video.mp4');
- * const assetUrl = convertFileSrc(filePath);
- *
- * const video = document.getElementById('my-video');
- * const source = document.createElement('source');
- * source.type = 'video/mp4';
- * source.src = assetUrl;
- * video.appendChild(source);
- * video.load();
- * ```
- *
- * @return the URL that can be used as source on the webview.
- *
- * @since 1.0.0
- */
- declare function convertFileSrc(filePath: string, protocol?: string): string;
- export type { InvokeArgs };
- export { transformCallback, invoke, convertFileSrc };
|