UNPKG

@wearesage/schema

Version:

A flexible schema definition and validation system for TypeScript with multi-database support

73 lines (61 loc) 2.37 kB
// Let's test what actually happens with dynamic imports class TestUser { name = 'test'; } // Simulate what happens in our decorator function testTarget() { return import('./test-entities/User').User; // This will fail, but let's see what it returns } function testDirectImport() { return TestUser; // Direct class reference } console.log('=== Testing direct class reference ==='); const directResult = testDirectImport(); console.log('Direct result:', directResult); console.log('Direct type:', typeof directResult); console.log('Direct name:', directResult.name); console.log('Direct constructor:', directResult.constructor); console.log('\n=== Testing dynamic import reference ==='); try { const dynamicResult = testTarget(); console.log('Dynamic result:', dynamicResult); console.log('Dynamic type:', typeof dynamicResult); console.log('Dynamic is Promise?:', dynamicResult instanceof Promise); console.log('Dynamic has then?:', typeof dynamicResult?.then); if (dynamicResult instanceof Promise) { console.log('It IS a Promise! Resolving...'); dynamicResult.then(resolved => { console.log('Resolved to:', resolved); console.log('Resolved type:', typeof resolved); console.log('Resolved name:', resolved?.name); }).catch(err => { console.log('Promise rejected:', err.message); }); } } catch (error) { console.log('Error calling dynamic import:', error.message); } // Test with actual entity classes import { User } from './test-entities/User'; console.log('\n=== Testing with real entity ==='); function testRealEntity() { return User; } function testRealDynamicImport() { // This simulates what our decorators do return import('./test-entities/User').then(module => module.User); } const realDirect = testRealEntity(); console.log('Real direct:', realDirect); console.log('Real direct type:', typeof realDirect); console.log('Real direct name:', realDirect.name); console.log('\n=== Testing real dynamic import ==='); const realDynamic = testRealDynamicImport(); console.log('Real dynamic result:', realDynamic); console.log('Real dynamic is Promise?:', realDynamic instanceof Promise); if (realDynamic instanceof Promise) { realDynamic.then(resolved => { console.log('Real dynamic resolved to:', resolved); console.log('Real dynamic resolved name:', resolved.name); }); }