// Test file to verify decorator functionality const decoratedClasses: Function[] = []; function trackClass(value: Function, _context: ClassDecoratorContext) { decoratedClasses.push(value); } function logMethod(method: Function, context: ClassMethodDecoratorContext) { const methodName = String(context.name); return function (this: any, ...args: any[]) { console.log(`Calling method: ${methodName}`); return method.apply(this, args); }; } @trackClass class TestClass { name = 'test'; @logMethod modify() { this.name = 'modified'; } } // Test that the class decorator worked const instance = new TestClass(); console.log('Initial name:', instance.name); console.log('Class was decorated:', decoratedClasses.includes(TestClass)); // Test that the method decorator worked instance.modify(); console.log('Modified name:', instance.name); console.log('Decorator test completed successfully!');