mysql-memory-server
Version:
Spin up an ephemeral MySQL database from your JavaScript code
83 lines (82 loc) • 2.18 kB
TypeScript
import { ExecFileException } from "child_process";
export type LOG_LEVEL = 'LOG' | 'WARN' | 'ERROR';
export type ServerOptions = {
version?: string | undefined;
dbName?: string | undefined;
logLevel?: LOG_LEVEL | undefined;
portRetries?: number | undefined;
downloadBinaryOnce?: boolean | undefined;
lockRetries?: number | undefined;
lockRetryWait?: number | undefined;
username?: string | undefined;
ignoreUnsupportedSystemVersion?: boolean | undefined;
port?: number | undefined;
xPort?: number | undefined;
downloadRetries?: number | undefined;
initSQLString?: string | undefined;
arch?: "arm64" | "x64" | undefined;
};
export type InternalServerOptions = {
version?: string | undefined;
dbName: string;
logLevel: LOG_LEVEL;
portRetries: number;
downloadBinaryOnce: boolean;
lockRetries: number;
lockRetryWait: number;
username: string;
ignoreUnsupportedSystemVersion: boolean;
port: number;
xPort: number;
downloadRetries: number;
initSQLString: string;
arch: string;
};
export type ExecuteFileReturn = {
error: ExecFileException | null;
stdout: string;
stderr: string;
};
export type MySQLDB = {
port: number;
xPort: number;
socket: string;
xSocket: string;
dbName: string;
username: string;
mysql: {
version: string;
versionIsInstalledOnSystem: boolean;
};
stop: () => Promise<void>;
};
export type DownloadedMySQLVersion = {
version: string;
path: string;
installedOnSystem: boolean;
};
export type BinaryInfo = {
url: string;
version: string;
};
export type OptionTypeChecks = {
[key in keyof Required<ServerOptions>]: {
check: (opt: any) => boolean;
errorMessage: string;
definedType: "string" | "boolean" | "number";
};
};
export type LinuxEtcOSRelease = {
PRETTY_NAME?: string;
NAME?: string;
VERSION_ID?: string;
VERSION?: string;
VERSION_CODENAME?: string;
ID?: string;
ID_LIKE?: string;
UBUNTU_CODENAME?: string;
};
export type JSRuntimeVersion = {
runtimeName: string;
runtimeVersion: string;
};