Format code

This commit is contained in:
momo5502
2025-04-22 20:54:30 +02:00
parent f21e349a94
commit d91f171bae
43 changed files with 1246 additions and 1134 deletions

View File

@@ -1,71 +1,75 @@
import { createDefaultSettings, Settings, translateSettings } from "./settings";
import { FileEntry } from "./zip-file";
type LogHandler = (lines: string[]) => void;
export interface UserFile {
name: string;
data: ArrayBuffer;
};
export class Emulator {
filesystem: FileEntry[];
logHandler: LogHandler;
terminatePromise: Promise<number | null>;
terminateResolve: (value: number | null) => void;
terminateReject: (reason?: any) => void;
worker: Worker;
constructor(filesystem: FileEntry[], logHandler: LogHandler) {
this.filesystem = filesystem;
this.logHandler = logHandler;
this.terminateResolve = () => { };
this.terminateReject = () => { };
this.terminatePromise = new Promise((resolve, reject) => {
this.terminateResolve = resolve;
this.terminateReject = reject;
});
this.worker = new Worker(/*new URL('./emulator-worker.js', import.meta.url)*/ "./emulator-worker.js");
this.worker.onmessage = (event: MessageEvent) => {
if (event.data.message == "log") {
this.logHandler(event.data.data);
}
else if (event.data.message == "end") {
this.terminateResolve(0);
}
};
}
start(settings: Settings = createDefaultSettings(), userFile: UserFile | null = null) {
var file = "c:/test-sample.exe";
if (userFile) {
const filename = userFile.name.split("/").pop()?.split("\\").pop();
const canonicalName = filename?.toLowerCase()
file = "c:/" + canonicalName;
this.filesystem.push({
name: "root/filesys/c/" + canonicalName,
data: userFile.data,
});
}
this.worker.postMessage({
message: "run",
data: {
filesystem: this.filesystem,
file,
options: translateSettings(settings),
},
});
}
stop() {
this.worker.terminate();
this.terminateResolve(null);
}
onTerminate() {
return this.terminatePromise;
}
};
import { createDefaultSettings, Settings, translateSettings } from "./settings";
import { FileEntry } from "./zip-file";
type LogHandler = (lines: string[]) => void;
export interface UserFile {
name: string;
data: ArrayBuffer;
}
export class Emulator {
filesystem: FileEntry[];
logHandler: LogHandler;
terminatePromise: Promise<number | null>;
terminateResolve: (value: number | null) => void;
terminateReject: (reason?: any) => void;
worker: Worker;
constructor(filesystem: FileEntry[], logHandler: LogHandler) {
this.filesystem = filesystem;
this.logHandler = logHandler;
this.terminateResolve = () => {};
this.terminateReject = () => {};
this.terminatePromise = new Promise((resolve, reject) => {
this.terminateResolve = resolve;
this.terminateReject = reject;
});
this.worker = new Worker(
/*new URL('./emulator-worker.js', import.meta.url)*/ "./emulator-worker.js",
);
this.worker.onmessage = (event: MessageEvent) => {
if (event.data.message == "log") {
this.logHandler(event.data.data);
} else if (event.data.message == "end") {
this.terminateResolve(0);
}
};
}
start(
settings: Settings = createDefaultSettings(),
userFile: UserFile | null = null,
) {
var file = "c:/test-sample.exe";
if (userFile) {
const filename = userFile.name.split("/").pop()?.split("\\").pop();
const canonicalName = filename?.toLowerCase();
file = "c:/" + canonicalName;
this.filesystem.push({
name: "root/filesys/c/" + canonicalName,
data: userFile.data,
});
}
this.worker.postMessage({
message: "run",
data: {
filesystem: this.filesystem,
file,
options: translateSettings(settings),
},
});
}
stop() {
this.worker.terminate();
this.terminateResolve(null);
}
onTerminate() {
return this.terminatePromise;
}
}