mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-19 15:54:09 +02:00
Add RFA backend
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
export class RFAMessage {
|
||||
jsonrpc = "2.0"; // Transmits version of JSON-RPC. Compliance maybe allows some funky interaction with external tools?
|
||||
public method?:string; // Is defined when it's a request/notification, otherwise undefined
|
||||
public result?:string; // Is defined when it's a response, otherwise undefined
|
||||
public params?:FileMetadata; // Optional parameters to method
|
||||
public error? :string; // Only defined on error
|
||||
public id? :number; // ID to keep track of request -> response interaction, undefined with notifications, defined with request/response
|
||||
|
||||
constructor(obj: { method?: string; result?: string; params?: FileMetadata; error?: string; id?: number } = {}){
|
||||
this.method = obj.method;
|
||||
this.result = obj.result;
|
||||
this.params = obj.params;
|
||||
this.error = obj.error;
|
||||
this.id = obj.id;
|
||||
}
|
||||
}
|
||||
|
||||
type FileMetadata = FileData
|
||||
| FileContent
|
||||
| FileLocation
|
||||
| FileServer;
|
||||
|
||||
export interface FileData {
|
||||
filename: string;
|
||||
content: string;
|
||||
server: string;
|
||||
}
|
||||
|
||||
export interface FileContent {
|
||||
filename: string;
|
||||
content: string;
|
||||
}
|
||||
|
||||
export interface FileLocation {
|
||||
filename: string;
|
||||
server: string;
|
||||
}
|
||||
|
||||
export interface FileServer {
|
||||
server: string;
|
||||
}
|
||||
|
||||
export function isFileData(p: unknown): p is FileData {
|
||||
const pf = p as FileData
|
||||
return typeof pf.server === 'string' &&
|
||||
typeof pf.filename === 'string' &&
|
||||
typeof pf.content === 'string'
|
||||
}
|
||||
|
||||
export function isFileLocation(p: unknown): p is FileLocation {
|
||||
const pf = p as FileLocation
|
||||
return typeof pf.server === 'string' &&
|
||||
typeof pf.filename === 'string'
|
||||
}
|
||||
|
||||
export function isFileContent(p: unknown): p is FileContent {
|
||||
const pf = p as FileContent
|
||||
return typeof pf.filename === 'string' &&
|
||||
typeof pf.content === 'string'
|
||||
}
|
||||
|
||||
export function isFileServer(p: unknown): p is FileServer {
|
||||
const pf = p as FileServer
|
||||
return typeof pf.server === 'string'
|
||||
}
|
||||
Reference in New Issue
Block a user