mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 12:05:53 +00:00
* feat: base of instances v2 * feat: use old profiles with compat layer * prototype: instances v2 * fix: install_from using profile * fix: skins migration fix * fix: frontend still using profile path * fix: add update proj multiselect guard * fix: cargo fmt * fix: content missing fields * feat: break up app-lib/api/instance.rs * fix: check_content_updates mismatch * fix: updater modal cleanup w/new structure * feat: better update all handling * fix: remove preview_update_all * fix: feedback on bulk update + lint * fix: rem transitions * fix: change to jsonb * feat: app db backup after update * fix: lint * fix: sqlx prepare + use sqlx macros * fix: lint * fix: bugs * feat: defuck the installing process up * fix: bug of hell * fix: shear * fix: fmt * fix: install progress spacing + change mc/content/overrides to bytes * fix: lint * fix: prepr * fix: navtabs anim not working in app * fix: worlds.vue improvements + browse page fixes * feat: optimise queries + adapter fns * fix: lint * fix: lint * feat: shared modrinth-content-management crate (#6469) * feat: disable warnings setting * feat: add instances shortcuts (#6329) * Add modrinth://launch deep link to start a profile Support external profile launching via modrinth://launch/{profile_path} for integrations such as Stream Deck. * Change route to /launch/profile/{id} for future extensibility * fix: ensure profile path is url decoded * fix: URL-decode profile path from deep link * fix: use urlencoding crate for URL decoding * feat: implement app instance shortcuts * feat: change windows shortcut creation to use windows api instead * feat: implement creating a shortcut launching world/server * format * fmt * fix multiline inline tables * pnpm prepr * feat: move create shortcut to last item * refactor: split up shortcuts.rs for individual platforms * refactor: turn profile launch url into url type * use string literal and add safety comment * pt2 * refactor: rename anything that's profile into instance * update mac shortcut --------- Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com> --------- Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com> Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com>
59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
/**
|
|
* All theseus API calls return serialized values (both return values and errors);
|
|
* So, for example, addDefaultInstance creates a blank instance object, where the Rust struct is serialized,
|
|
* and deserialized into a usable JS object.
|
|
*/
|
|
import { invoke } from '@tauri-apps/api/core'
|
|
|
|
export interface LoadingBarType {
|
|
type?: string
|
|
version?: string
|
|
instance_id?: string
|
|
instance_name?: string
|
|
pack_name?: string
|
|
icon?: string | null
|
|
}
|
|
|
|
export interface LoadingBar {
|
|
id?: string | number
|
|
loading_bar_uuid?: string | number
|
|
title?: string
|
|
message?: string
|
|
current?: number
|
|
total?: number
|
|
bar_type?: LoadingBarType
|
|
}
|
|
|
|
export type OpeningCommandEvent =
|
|
| 'RunMRPack'
|
|
| 'InstallServer'
|
|
| 'InstallVersion'
|
|
| 'InstallMod'
|
|
| 'InstallModpack'
|
|
| string
|
|
|
|
export interface OpeningCommand {
|
|
event: OpeningCommandEvent
|
|
id?: string
|
|
path?: string
|
|
}
|
|
|
|
// Initialize the theseus API state
|
|
// This should be called during the initializion/opening of the launcher
|
|
export async function initialize_state() {
|
|
return await invoke<void>('initialize_state')
|
|
}
|
|
|
|
// Gets active progress bars
|
|
export async function progress_bars_list() {
|
|
return await invoke<Record<string, LoadingBar>>('plugin:utils|progress_bars_list')
|
|
}
|
|
|
|
// Get opening command
|
|
// For example, if a user clicks on an .mrpack to open the app.
|
|
// This should be called once and only when the app is done booting up and ready to receive a command
|
|
// Returns a Command struct- see events.js
|
|
export async function get_opening_command() {
|
|
return await invoke<OpeningCommand | null>('plugin:utils|get_opening_command')
|
|
}
|