Created typescript typings for the library

- Created module declaration file
- Added `@types/node` to dev dependancies
This commit is contained in:
Louis Bailleau 2020-07-30 02:47:30 +02:00
parent ef45a1d741
commit 715de3fb57
3 changed files with 119 additions and 2 deletions

110
index.d.ts vendored Normal file
View file

@ -0,0 +1,110 @@
/// <reference types="node" />
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<string>;
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<string>;
customArgs?: Array<string>;
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<IUser>;
}
interface IUser {
access_token: string;
client_token: string;
uuid: string;
name: string;
user_properties: Partial<any>;
}
interface IProfile {
id: number;
name: string;
}
interface IAuthenticator {
getAuth(username: string, password?: string): Promise<IUser>;
validate(
access_token: string,
client_token: string
): Promise<boolean | Partial<any>>;
refreshAuth(
access_token: string,
client_token: string,
selectedProfile: IProfile
): Promise<IUser>;
invalidate(
access_token: string,
client_token: string
): Promise<boolean | Partial<any>>;
signOut(
username: string,
password: string
): Promise<boolean | Partial<any>>;
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;
}

8
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "minecraft-launcher-core",
"version": "3.14.4",
"version": "3.14.6",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -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",

View file

@ -1,6 +1,6 @@
{
"name": "minecraft-launcher-core",
"version": "3.14.6",
"version": "3.14.7",
"description": "Lightweight module that downloads and runs Minecraft using javascript / NodeJS",
"main": "index.js",
"dependencies": {
@ -11,6 +11,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",