More build fixes

This commit is contained in:
Darren Clarke 2023-05-26 08:27:16 +00:00
parent 8fabcbaba2
commit 67b9b3e20a
11 changed files with 34 additions and 53 deletions

View file

@ -1,5 +1,3 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-nocheck
/* eslint-disable no-new,no-useless-call */
// mutableProxyFactory from https://stackoverflow.com/a/54460544
// (C) Alex Hall https://stackoverflow.com/users/2482744/alex-hall
@ -11,7 +9,6 @@ export class PProxyHandler<T extends object> implements ProxyHandler<T> {
return Reflect.getPrototypeOf(target);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
setPrototypeOf?(target: T, v: any): boolean {
return Reflect.setPrototypeOf(target, v);
}
@ -35,12 +32,10 @@ export class PProxyHandler<T extends object> implements ProxyHandler<T> {
return Reflect.has(target, p);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
get?(target: T, p: PropertyKey, receiver: any): any {
return Reflect.get(target, p, receiver);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
set?(target: T, p: PropertyKey, value: any, receiver: any): boolean {
return Reflect.set(target, p, value, receiver);
}
@ -61,16 +56,15 @@ export class PProxyHandler<T extends object> implements ProxyHandler<T> {
return Reflect.ownKeys(target);
}
// @ts-expect-error
ownKeys?(target: T): PropertyKey[] {
return Reflect.ownKeys(target);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
apply?(target: T, thisArg: any, argArray?: any): any {
return Reflect.apply(target as Function, thisArg, argArray);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
construct?(target: T, argArray: any, newTarget?: any): object {
return Reflect.construct(target as Function, argArray, newTarget);
}
@ -88,27 +82,28 @@ export function mutableProxyFactory<T extends object>(
mutableTarget: T,
mutableHandler?: ProxyHandler<T>
): MutableProxy<T> {
if (!mutableHandler) mutableHandler = new PProxyHandler();
if (!mutableHandler) mutableHandler = new PProxyHandler() as any;
return {
setTarget(target: T): void {
new Proxy(target, {}); // test target validity
mutableTarget = target;
},
setHandler(handler: PProxyHandler<T>): void {
new Proxy({}, handler); // test handler validity
new Proxy({}, handler as any); // test handler validity
Object.keys(handler).forEach((key) => {
const value = handler[key];
if (Reflect[key] && typeof value !== "function") {
throw new Error(`Trap "${key}: ${value}" is not a function`);
}
});
mutableHandler = handler;
mutableHandler = handler as any;
},
getTarget(): T {
return mutableTarget;
},
// @ts-expect-error
getHandler(): PProxyHandler<T> {
return mutableHandler;
return mutableHandler as any;
},
proxy: new Proxy(
mutableTarget,