deadem
Version:
JavaScript (Node.js & Browsers) parser for Deadlock (Valve Source 2 Engine) demo/replay files
63 lines (52 loc) • 1.22 kB
JavaScript
import Assert from '#core/Assert.js';
import Serializable from '#core/Serializable.js';
import WorkerMessageType from '#data/enums/WorkerMessageType.js';
class WorkerResponse extends Serializable {
/**
* @abstract
* @constructor
* @param {WorkerMessageType} type
* @param {*} payload
* @param {TransferListItem[]} transfers
*/
constructor(type, payload, transfers) {
super();
Assert.isTrue(type instanceof WorkerMessageType);
this._type = type;
this._payload = payload;
this._transfers = transfers;
}
/**
* @returns {WorkerMessageType}
*/
get type() {
return this._type;
}
/**
* @returns {*}
*/
get payload() {
return this._payload;
}
/**
* @returns {TransferListItem[]}
*/
get transfers() {
return this._transfers;
}
/**
* @protected
* @param {*} payload
* @returns {WorkerResponseRaw}
*/
_serialize(payload) {
return {
__type: this._type.code,
payload
};
}
}
/**
* @typedef {{ __type: String, payload: * }} WorkerResponseRaw
*/
export default WorkerResponse;