@@ -5,6 +5,7 @@ import { RegisteredProperty } from "./interfaces/RegisteredProperty";
5
5
import { Model } from "./Model" ;
6
6
import { $registeredAttributes , $registeredModels , $registeredRelationships } from "./data" ;
7
7
import { debug } from "./utils" ;
8
+ import { RegisteredModel } from "./interfaces/RegisteredModel" ;
8
9
9
10
export class Parser {
10
11
readonly resolved : Record < string , Model > = { } ;
@@ -62,7 +63,7 @@ export class Parser {
62
63
( e ) => e . type === loadedElement . type
63
64
) ;
64
65
65
- const instance = this . wrapWhenPartial ( new ( model ?. klass || Model ) ( ) , loadedElement ) ;
66
+ const instance = this . wrapWhenPartial ( model , loadedElement ) ;
66
67
this . resolved [ uniqueKey ] = instance ;
67
68
68
69
if ( model && model . createFn ) {
@@ -89,16 +90,17 @@ export class Parser {
89
90
return instance as T ;
90
91
}
91
92
92
- wrapWhenPartial ( instance : Model , loadedElement : JSONModel & { $_partial ?: boolean } ) {
93
+ wrapWhenPartial ( model : RegisteredModel | undefined , loadedElement : JSONModel & { $_partial ?: boolean } ) {
93
94
if ( ! loadedElement . $_partial ) {
94
- return instance ;
95
+ return new ( model ?. klass || Model ) ( ) ;
95
96
}
97
+ const instance = new Model ( ) ;
96
98
return new Proxy (
97
99
instance ,
98
100
{
99
101
get : function < T extends object > ( target : T , prop : keyof T ) {
100
102
if ( prop === "$_partial" ) {
101
- return true ;
103
+ return target [ prop ] ;
102
104
}
103
105
if ( prop in target ) {
104
106
return target [ prop ] ;
0 commit comments