UNPKG

@wearesage/schema

Version:

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

81 lines (64 loc) 1.95 kB
import 'reflect-metadata'; import { Entity, Property, Id, Auth } from './core/decorators'; import { universalEntityService } from './services/UniversalEntityService'; @Entity() @Auth({ permissions: ['user'] }) class TestSpace { @Id() id!: string; @Property({ required: true }) name!: string; @Property({ required: true }) ownedByType!: 'user' | 'team'; @Property({ required: true }) ownedById!: string; @Property({ required: true }) visibility!: 'private' | 'public'; @Property({ required: true }) spaceType!: 'project' | 'library'; @Property() attemptCount?: number; @Property() subscribedEvents?: string[]; @Property() metadata?: object; } async function testNeo4jSerialization() { console.log('🔍 Testing Neo4j serialization directly in schema package...'); // Register the test entity universalEntityService.registerEntities([TestSpace]); const testUser = { user: { id: 'user123', username: 'testuser', email: 'test@example.com', role: 0, permissions: ['user'] } }; const spaceData = { name: 'Direct Test Space', ownedByType: 'user' as const, ownedById: 'user123', visibility: 'private' as const, spaceType: 'project' as const, attemptCount: 0, subscribedEvents: [], metadata: {} }; console.log('🔍 Test data:', JSON.stringify(spaceData, null, 2)); try { const result = await universalEntityService.create(TestSpace, spaceData, testUser); console.log('✅ SUCCESS! Neo4j serialization works!'); console.log('📦 Created entity:', result); } catch (error) { console.log('❌ FAILED:', (error as Error).message); // Let's also check if it's specifically the Map issue if ((error as Error).message.includes('Map{}')) { console.log('🔍 Confirmed: Still has Map{} issue in schema package'); } } finally { process.exit(0); } } testNeo4jSerialization();