More build fixes
This commit is contained in:
parent
8fabcbaba2
commit
67b9b3e20a
11 changed files with 34 additions and 53 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue