@@ -5,6 +5,7 @@ import { RegisteredProperty } from "./interfaces/RegisteredProperty";
55import { Model } from "./Model" ;
66import { $registeredAttributes , $registeredModels , $registeredRelationships } from "./data" ;
77import { debug } from "./utils" ;
8+ import { RegisteredModel } from "./interfaces/RegisteredModel" ;
89
910export class Parser {
1011 readonly resolved : Record < string , Model > = { } ;
@@ -62,7 +63,7 @@ export class Parser {
6263 ( e ) => e . type === loadedElement . type
6364 ) ;
6465
65- const instance = this . wrapWhenPartial ( new ( model ?. klass || Model ) ( ) , loadedElement ) ;
66+ const instance = this . wrapWhenPartial ( model , loadedElement ) ;
6667 this . resolved [ uniqueKey ] = instance ;
6768
6869 if ( model && model . createFn ) {
@@ -89,16 +90,17 @@ export class Parser {
8990 return instance as T ;
9091 }
9192
92- wrapWhenPartial ( instance : Model , loadedElement : JSONModel & { $_partial ?: boolean } ) {
93+ wrapWhenPartial ( model : RegisteredModel | undefined , loadedElement : JSONModel & { $_partial ?: boolean } ) {
9394 if ( ! loadedElement . $_partial ) {
94- return instance ;
95+ return new ( model ?. klass || Model ) ( ) ;
9596 }
97+ const instance = new Model ( ) ;
9698 return new Proxy (
9799 instance ,
98100 {
99101 get : function < T extends object > ( target : T , prop : keyof T ) {
100102 if ( prop === "$_partial" ) {
101- return true ;
103+ return target [ prop ] ;
102104 }
103105 if ( prop in target ) {
104106 return target [ prop ] ;
0 commit comments