File tree Expand file tree Collapse file tree
infrastructure/application Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -67,8 +67,8 @@ export type ExperienceCriteria = WorkspacePath & {
6767export type SegmentedContentDefinition = Omit < SegmentedContent , 'id' > ;
6868
6969export type PersonalizedContentDefinition = {
70- default : SlotContentMap ,
71- segmented : SegmentedContentDefinition [ ] ,
70+ default ? : SlotContentMap ,
71+ segmented ? : SegmentedContentDefinition [ ] ,
7272} ;
7373
7474export type SlotDefinition = {
Original file line number Diff line number Diff line change @@ -257,12 +257,12 @@ export class ResourceMatcher {
257257 left : PersonalizedContentDefinition ,
258258 right : PersonalizedContentDefinition ,
259259 ) : boolean {
260- if ( ResourceMatcher . isSimilarSlotContent ( left . default , right . default ) ) {
260+ if ( ResourceMatcher . isSimilarSlotContent ( left . default ?? { } , right . default ?? { } ) ) {
261261 return true ;
262262 }
263263
264- for ( const segmentedContent of left . segmented ) {
265- for ( const otherSegmentedContent of right . segmented ) {
264+ for ( const segmentedContent of left . segmented ?? [ ] ) {
265+ for ( const otherSegmentedContent of right . segmented ?? [ ] ) {
266266 if (
267267 deepEqual ( segmentedContent . audiences , otherSegmentedContent . audiences )
268268 && ResourceMatcher . isSimilarSlotContent ( segmentedContent . content , otherSegmentedContent . content )
Original file line number Diff line number Diff line change @@ -146,8 +146,8 @@ export class ResourceRefactor {
146146 audiences : string [ ] ,
147147 ) : PersonalizedContentDefinition {
148148 return {
149- default : this . refactorSlotContentMap ( content . default ) ,
150- segmented : content . segmented . flatMap ( segmentedContent => {
149+ default : this . refactorSlotContentMap ( content . default ?? { } ) ,
150+ segmented : ( content . segmented ?? [ ] ) . flatMap ( segmentedContent => {
151151 const filteredAudiences = segmentedContent . audiences . filter ( slug => audiences . includes ( slug ) ) ;
152152
153153 if ( filteredAudiences . length === 0 ) {
Original file line number Diff line number Diff line change @@ -92,7 +92,7 @@ export namespace WorkspaceResources {
9292
9393 let dynamicAttributePerContent = 0 ;
9494
95- for ( const [ slotSlug , contentMap ] of Object . entries ( content . default ) ) {
95+ for ( const [ slotSlug , contentMap ] of Object . entries ( content . default ?? { } ) ) {
9696 referencedSlots . add ( slotSlug ) ;
9797
9898 for ( const [ locale , slotContent ] of Object . entries ( contentMap ) ) {
@@ -106,7 +106,7 @@ export namespace WorkspaceResources {
106106
107107 let audiencesPerExperience = 0 ;
108108
109- for ( const segmentedContent of content . segmented ) {
109+ for ( const segmentedContent of content . segmented ?? [ ] ) {
110110 for ( const audience of segmentedContent . audiences ) {
111111 referencedAudiences . add ( audience ) ;
112112 }
Original file line number Diff line number Diff line change @@ -796,9 +796,9 @@ export class GraphqlWorkspaceApi implements WorkspaceApi {
796796 return {
797797 default : {
798798 id : randomUUID ( ) ,
799- contents : GraphqlWorkspaceApi . createSlotContentMap ( content . default ) ,
799+ contents : GraphqlWorkspaceApi . createSlotContentMap ( content . default ?? { } ) ,
800800 } ,
801- segmented : content . segmented . map (
801+ segmented : ( content . segmented ?? [ ] ) . map (
802802 segmentedContent => ( {
803803 id : randomUUID ( ) ,
804804 audiences : segmentedContent . audiences ,
Original file line number Diff line number Diff line change @@ -249,8 +249,8 @@ const segmentedContentSchema: ZodType<SegmentedContentDefinition> = z.strictObje
249249} ) ;
250250
251251const personalizedContentSchema : ZodType < PersonalizedContentDefinition > = z . strictObject ( {
252- default : slotContentMap ,
253- segmented : z . array ( segmentedContentSchema ) ,
252+ default : slotContentMap . optional ( ) ,
253+ segmented : z . array ( segmentedContentSchema ) . optional ( ) ,
254254} ) ;
255255
256256const experimentVariantSchema : ZodType < VariantDefinition > = z . strictObject ( {
You can’t perform that action at this time.
0 commit comments