@@ -801,27 +801,27 @@ class Entity<
801801 && ( ! mapping . link || ( mapping . link && mapping . save === true ) )
802802 ) {
803803 // If a number or a set and adding
804- if ( [ 'number' , 'set' ] . includes ( mapping . type ) && data [ field ] . $add ) {
804+ if ( [ 'number' , 'set' ] . includes ( mapping . type ) && data [ field ] ? .$add ) {
805805 ADD . push ( `#${ field } :${ field } ` )
806806 values [ `:${ field } ` ] = validateType ( mapping , field , data [ field ] . $add )
807807 // Add field to names
808808 names [ `#${ field } ` ] = field
809809 // if a set and deleting items
810- } else if ( mapping . type === 'set' && data [ field ] . $delete ) {
810+ } else if ( mapping . type === 'set' && data [ field ] ? .$delete ) {
811811 DELETE . push ( `#${ field } :${ field } ` )
812812 values [ `:${ field } ` ] = validateType ( mapping , field , data [ field ] . $delete )
813813 // Add field to names
814814 names [ `#${ field } ` ] = field
815815 // if a list and removing items by index
816- } else if ( mapping . type === 'list' && Array . isArray ( data [ field ] . $remove ) ) {
816+ } else if ( mapping . type === 'list' && Array . isArray ( data [ field ] ? .$remove ) ) {
817817 data [ field ] . $remove . forEach ( ( i :number ) => {
818818 if ( typeof i !== 'number' ) error ( `Remove array for '${ field } ' must only contain numeric indexes` )
819819 REMOVE . push ( `#${ field } [${ i } ]` )
820820 } )
821821 // Add field to names
822822 names [ `#${ field } ` ] = field
823823 // if list and appending or prepending
824- } else if ( mapping . type === 'list' && ( data [ field ] . $append || data [ field ] . $prepend ) ) {
824+ } else if ( mapping . type === 'list' && ( data [ field ] ? .$append || data [ field ] ? .$prepend ) ) {
825825 if ( data [ field ] . $append ) {
826826 SET . push ( `#${ field } = list_append(#${ field } ,:${ field } )` )
827827 values [ `:${ field } ` ] = validateType ( mapping , field , data [ field ] . $append )
@@ -841,7 +841,7 @@ class Entity<
841841 // Add field to names
842842 names [ `#${ field } ` ] = field
843843 // if a map and updating by nested attribute/index
844- } else if ( mapping . type === 'map' && data [ field ] . $set ) {
844+ } else if ( mapping . type === 'map' && data [ field ] ? .$set ) {
845845 Object . keys ( data [ field ] . $set ) . forEach ( f => {
846846
847847 // TODO: handle null values to remove
0 commit comments