@yume-chan/adb
Version:
TypeScript implementation of Android Debug Bridge (ADB) protocol.
32 lines • 1.14 kB
JavaScript
import { AdbNoneProtocolProcessImpl } from "./process.js";
import { AdbNoneProtocolPtyProcess } from "./pty.js";
import { AdbNoneProtocolSpawner } from "./spawner.js";
export class AdbNoneProtocolSubprocessService extends AdbNoneProtocolSpawner {
#adb;
get adb() {
return this.#adb;
}
constructor(adb) {
super(async (command, signal) => {
// `shell,raw:${command}` also triggers raw mode,
// But is not supported on Android version <7.
const socket = await this.#adb.createSocket(`exec:${command.join(" ")}`);
if (signal?.aborted) {
await socket.close();
throw signal.reason;
}
return new AdbNoneProtocolProcessImpl(socket, signal);
});
this.#adb = adb;
}
async pty(command) {
if (command === undefined) {
command = "";
}
else if (Array.isArray(command)) {
command = command.join(" ");
}
return new AdbNoneProtocolPtyProcess(await this.#adb.createSocket(`shell:${command}`));
}
}
//# sourceMappingURL=service.js.map