@bscotch/stitch-launcher
Version:
Manage GameMaker IDE and runtime installations for fast switching between versions.
155 lines • 5.23 kB
TypeScript
import { Channel } from '@bscotch/gamemaker-releases';
import { Pathy } from '@bscotch/pathy';
import { GameMakerChannel, GameMakerInstalledVersion } from './GameMakerLauncher.types.js';
import { GameMakerUser } from './GameMakerUser.js';
export declare class GameMakerComponent {
protected info: GameMakerInstalledVersion;
constructor(info: GameMakerInstalledVersion);
get version(): string;
get channel(): "lts" | "stable" | "beta" | "unstable" | undefined;
get executablePath(): Pathy<unknown>;
get directory(): Pathy<unknown>;
get publishedAt(): Date | undefined;
get usersDirectory(): Pathy<unknown>;
activeUser(): Promise<GameMakerUser>;
activeUserDirectory(): Promise<Pathy<unknown>>;
/**
* List paths to important files and directories.
*/
static listWellKnownPaths(options?: {
programFiles?: string;
}): Promise<{
id: "gameMakerDataDir" | "defaultMacrosFile" | "runtimeFeedsConfigFile" | "initialDefaultMacrosFile" | "runtimesCacheDir" | "gameMakerIdeDir" | "gameMakerIdeExe" | "gameMakerUserDir" | "activeUserFile" | "uiLogFile" | "activeRuntimeConfigFile";
path: string;
name: string;
description: string;
}[]>;
static get releasesCachePath(): Pathy<{
channel: "lts" | "stable" | "beta" | "unstable";
publishedAt: string;
summary: string;
ide: {
channel: "lts" | "stable" | "beta" | "unstable";
type: "runtime" | "ide";
version: string;
feedUrl: string;
publishedAt: string;
notesUrl: string;
notes: {
since: string | null;
groups: {
title: string;
changes: string[];
}[];
};
link?: string | undefined;
};
runtime: {
channel: "lts" | "stable" | "beta" | "unstable";
type: "runtime" | "ide";
version: string;
feedUrl: string;
publishedAt: string;
notesUrl: string;
notes: {
since: string | null;
groups: {
title: string;
changes: string[];
}[];
};
link?: string | undefined;
};
}[]>;
static listReleases(options?: {
/** Max age of the cached releases list */
maxAgeSeconds?: number;
}): Promise<{
channel: "lts" | "stable" | "beta" | "unstable";
publishedAt: string;
summary: string;
ide: {
channel: "lts" | "stable" | "beta" | "unstable";
type: "runtime" | "ide";
version: string;
feedUrl: string;
publishedAt: string;
notesUrl: string;
notes: {
since: string | null;
groups: {
title: string;
changes: string[];
}[];
};
link?: string | undefined;
};
runtime: {
channel: "lts" | "stable" | "beta" | "unstable";
type: "runtime" | "ide";
version: string;
feedUrl: string;
publishedAt: string;
notesUrl: string;
notes: {
since: string | null;
groups: {
title: string;
changes: string[];
}[];
};
link?: string | undefined;
};
}[]>;
static findRelease(searchOptions: {
ideVersion?: string;
runtimeVersion?: string;
maxAgeSeconds?: number;
}): Promise<{
channel: "lts" | "stable" | "beta" | "unstable";
publishedAt: string;
summary: string;
ide: {
channel: "lts" | "stable" | "beta" | "unstable";
type: "runtime" | "ide";
version: string;
feedUrl: string;
publishedAt: string;
notesUrl: string;
notes: {
since: string | null;
groups: {
title: string;
changes: string[];
}[];
};
link?: string | undefined;
};
runtime: {
channel: "lts" | "stable" | "beta" | "unstable";
type: "runtime" | "ide";
version: string;
feedUrl: string;
publishedAt: string;
notesUrl: string;
notes: {
since: string | null;
groups: {
title: string;
changes: string[];
}[];
};
link?: string | undefined;
};
} | undefined>;
static get userDirectories(): {
[Channel in GameMakerChannel]: string;
};
static get cacheDir(): Pathy;
/**
* Ensure that all official runtime feeds are available to the user
* by adding missing feeds to the appropriate GameMaker configs.
*/
static ensureOfficialRuntimeFeeds(channels?: Channel[]): Promise<void>;
}
//# sourceMappingURL=GameMakerComponent.d.ts.map