Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 2x 2x 2x 2x 110x 110x 110x 5828x 1276x 1276x 5828x 5828x 110x 2951x 2951x 2951x 110x 2872x 2872x 2872x 2872x 110x 110x 63x 63x 110x 47x 47x 110x | import { PerfectWS, WSClientOptions, WSClientResult, WSServerResult } from '../PerfectWS.js';
import { NetworkEventListener } from '../utils/NetworkEventListener.js';
import { WSLike, WebSocketForce } from '../utils/WebSocketForce.js';
import { TransformAll } from './TransformAll.js';
import { GeneratorTransform } from './transform/BaseCustomTransformers/GeneratorTransform.js';
import { TransformInstruction } from './transform/CustomTransformers.js';
type PerfectWSAdvancedConfig = {
maxTransformDepth: number;
}
export class PerfectWSAdvanced<WSType extends WSLike = WSLike, ExtraConfig = { [key: string]: any; }> extends PerfectWS<WSType, ExtraConfig & PerfectWSAdvancedConfig> {
public transformers: TransformInstruction<any>[] = [new GeneratorTransform()];
private _callbacks = new WeakMap<NetworkEventListener, TransformAll>;
protected _getTransforms(events: NetworkEventListener) {
if (!this._callbacks.has(events)) {
this._callbacks.set(events, new TransformAll(events, this.transformers, this.config.maxTransformDepth));
}
return this._callbacks.get(events)!;
}
protected override serializeRequestData(data: any, events: NetworkEventListener) {
data = this._getTransforms(events).serialize(data);
return super.serializeRequestData(data, events);
}
protected override deserializeRequestData(data: any, events: NetworkEventListener) {
data = super.deserializeRequestData(data, events);
data = this._getTransforms(events).deserialize(data);
return data;
}
protected static override _newInstance<WSType extends WSLike = WSLike>() {
return new PerfectWSAdvanced<WSType>();
}
static override client<WSType extends WSLike = WSLike>(config?: WSClientOptions): WSClientResult<WSType, PerfectWSAdvanced<WSType>>;
static override client<WSType extends WSLike = WSLike>(server: WSType | WebSocketForce<WSType>, config?: WSClientOptions): WSClientResult<WSType, PerfectWSAdvanced<WSType>>;
static override client<WSType extends WSLike = WSLike>(server?: WSType | WebSocketForce<WSType> | WSClientOptions, config?: WSClientOptions) {
return super.client<WSType>(server as any, config) as WSClientResult<WSType, PerfectWSAdvanced<WSType>>;
}
static override server<WSType extends WSLike = WSLike>() {
return super.server<WSType>() as WSServerResult<WSType, PerfectWSAdvanced<WSType>>;
}
}
|