From 192f9a18efca77f78882a4f366bd02b23214a0f8 Mon Sep 17 00:00:00 2001 From: Louis Bailleau Date: Thu, 30 Jul 2020 02:47:30 +0200 Subject: [PATCH] Created typescript typings for the library - Created module declaration file - Added `@types/node` to dev dependancies --- index.d.ts | 110 ++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 6 +++ package.json | 1 + 3 files changed, 117 insertions(+) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..5b6a7cf --- /dev/null +++ b/index.d.ts @@ -0,0 +1,110 @@ +/// + +declare module "minecraft-launcher-core" { + type OS = "windows" | "osx" | "linux"; + type Type = "release" | "snapshot"; + + interface IOverrides { + minArgs?: number; + minecraftJar?: string; + versionJson?: string; + directory?: string; + natives?: string; + assetRoot?: string; + libraryRoot?: string; + cwd?: string; + detached?: boolean; + classes?: Array; + maxSockets?: number; + url?: { + meta?: string; + resources?: string; + mavenForge?: string; + defaultRepoForge?: string; + fallbackMaven?: string; + }; + } + + interface ILauncherOptions { + clientPackage?: string; + removePackage?: boolean; + installed?: string; + root: string; + os?: OS; + customLaunchArgs?: Array; + customArgs?: Array; + version: { + number: string; + type: Type; + custom?: string; + }; + memory: { + max: string; + min: string; + }; + forge?: string; + javaPath?: string; + server?: { + host: string; + port: string; + }; + proxy?: { + host: string; + port: string; + username?: string; + password?: string; + }; + timeout?: number; + window?: { + width?: number; + height?: number; + }; + overrides?: IOverrides; + authorization: Promise; + } + + interface IUser { + access_token: string; + client_token: string; + uuid: string; + name: string; + user_properties: Partial; + } + + interface IProfile { + id: number; + name: string; + } + + interface IAuthenticator { + getAuth(username: string, password?: string): Promise; + validate( + access_token: string, + client_token: string + ): Promise>; + refreshAuth( + access_token: string, + client_token: string, + selectedProfile: IProfile + ): Promise; + invalidate( + access_token: string, + client_token: string + ): Promise>; + signOut( + username: string, + password: string + ): Promise>; + changeApiUrl(url: string): void; + } + + import { EventEmitter } from 'events' + import { ChildProcessWithoutNullStreams } from 'child_process' + + export class Client extends EventEmitter { + launch(options: ILauncherOptions): ChildProcessWithoutNullStreams | null; + } + + export const Authenticator: IAuthenticator; + } + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 93917b9..fd2a9e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,12 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/node": { + "version": "14.0.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", + "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", + "dev": true + }, "acorn": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", diff --git a/package.json b/package.json index 633d877..a218825 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "uuid": "^3.3.2" }, "devDependencies": { + "@types/node": "^14.0.27", "eslint": "^6.8.0", "eslint-config-standard": "^14.1.1", "eslint-plugin-import": "^2.20.2",