mirror of
https://github.com/HeyPuter/puter
synced 2024-11-15 06:15:47 +00:00
Phoenix: Use regular code path to run built-in apps
Now launchApp() can always be awaited, we can run built-in apps using the same code path for other apps, and eventually have SIGINT close them.
This commit is contained in:
parent
3526d5d9eb
commit
bec2d62e2f
@ -23,20 +23,9 @@ const BUILT_IN_APPS = [
|
|||||||
'explorer',
|
'explorer',
|
||||||
];
|
];
|
||||||
|
|
||||||
export class PuterAppCommandProvider {
|
const lookup_app = async (id) => {
|
||||||
|
|
||||||
async lookup (id) {
|
|
||||||
// Built-in apps will not be returned by the fetch query below, so we handle them separately.
|
|
||||||
if (BUILT_IN_APPS.includes(id)) {
|
if (BUILT_IN_APPS.includes(id)) {
|
||||||
return {
|
return { success: true, path: null };
|
||||||
name: id,
|
|
||||||
path: 'Built-in Puter app',
|
|
||||||
// TODO: Parameters and options?
|
|
||||||
async execute(ctx) {
|
|
||||||
const args = {}; // TODO: Passed-in parameters and options would go here
|
|
||||||
await puter.ui.launchApp(id, args);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const request = await fetch(`${puter.APIOrigin}/drivers/call`, {
|
const request = await fetch(`${puter.APIOrigin}/drivers/call`, {
|
||||||
@ -49,17 +38,22 @@ export class PuterAppCommandProvider {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const { success, result } = await request.json();
|
const { success, result } = await request.json();
|
||||||
|
return { success, path: result?.index_url };
|
||||||
|
};
|
||||||
|
|
||||||
|
export class PuterAppCommandProvider {
|
||||||
|
|
||||||
|
async lookup (id) {
|
||||||
|
const { success, path } = await lookup_app(id);
|
||||||
if (!success) return;
|
if (!success) return;
|
||||||
|
|
||||||
const { name, index_url } = result;
|
|
||||||
return {
|
return {
|
||||||
name,
|
name: id,
|
||||||
path: index_url,
|
path: path ?? 'Built-in Puter app',
|
||||||
// TODO: Parameters and options?
|
// TODO: Parameters and options?
|
||||||
async execute(ctx) {
|
async execute(ctx) {
|
||||||
const args = {}; // TODO: Passed-in parameters and options would go here
|
const args = {}; // TODO: Passed-in parameters and options would go here
|
||||||
const child = await puter.ui.launchApp(name, args);
|
const child = await puter.ui.launchApp(id, args);
|
||||||
|
|
||||||
// Wait for app to close.
|
// Wait for app to close.
|
||||||
const app_close_promise = new Promise((resolve, reject) => {
|
const app_close_promise = new Promise((resolve, reject) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user