16 lines
511 B
TypeScript
16 lines
511 B
TypeScript
|
import { devFlagEnabled, DevFlagName } from "../flags";
|
||
|
|
||
|
export function devFlag(flag: DevFlagName) {
|
||
|
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
|
||
|
const originalMethod = descriptor.value;
|
||
|
descriptor.value = function (...args: any[]) {
|
||
|
if (!devFlagEnabled(flag)) {
|
||
|
throw new Error(
|
||
|
`This method should not be called, it is protected by a disabled dev flag.`
|
||
|
);
|
||
|
}
|
||
|
return originalMethod.apply(this, args);
|
||
|
};
|
||
|
};
|
||
|
}
|