@@ -101,7 +101,7 @@ export abstract class Resource<T extends StringIndexedObject> {
101101
102102 // Short circuit here. If the resource is non-existent, there's no point checking stateful parameters
103103 if ( currentParameters == null ) {
104- return Plan . create ( desiredParameters , null , resourceMetadata , planOptions ) ;
104+ return Plan . create ( resourceParameters , null , resourceMetadata , planOptions ) ;
105105 }
106106
107107 // Refresh stateful parameters. These parameters have state external to the resource
@@ -161,7 +161,7 @@ export abstract class Resource<T extends StringIndexedObject> {
161161
162162 for ( const pc of statelessParameterChanges ) {
163163 // TODO: When stateful mode is added in the future. Dynamically choose if deletes are allowed
164- await this . applyModify ( pc . name , pc . newValue , pc . previousValue , false , plan ) ;
164+ await this . applyModify ( pc , plan ) ;
165165 }
166166
167167 const statefulParameterChanges = parameterChanges
@@ -228,21 +228,17 @@ Additional: ${[...refreshKeys].filter(k => !desiredKeys.has(k))};`
228228 const orderedEntries = [ ...Object . entries ( transformParameters ) ]
229229 . sort ( ( [ keyA ] , [ keyB ] ) => this . transformParameterOrder . get ( keyA ) ! - this . transformParameterOrder . get ( keyB ) ! )
230230
231- for ( const [ key ] of orderedEntries ) {
232- if ( desired [ key ] !== null ) {
233- const transformedValue = await this . transformParameters . get ( key ) ! . transform ( desired [ key ] ) ;
231+ for ( const [ key , value ] of orderedEntries ) {
232+ const transformedValue = await this . transformParameters . get ( key ) ! . transform ( value ) ;
234233
235- if ( Object . keys ( transformedValue ) . some ( ( k ) => desired [ k ] !== undefined ) ) {
236- throw new Error ( `Transform parameter ${ key as string } is attempting to override existing value ${ desired [ key ] } ` ) ;
237- }
238-
239- Object . entries ( transformedValue ) . forEach ( ( [ tvKey , tvValue ] ) => {
240- // @ts -ignore
241- desired [ tvKey ] = tvValue ;
242- } )
243-
244- delete desired [ key ] ;
234+ if ( Object . keys ( transformedValue ) . some ( ( k ) => desired [ k ] !== undefined ) ) {
235+ throw new Error ( `Transform parameter ${ key as string } is attempting to override existing values ${ JSON . stringify ( transformedValue , null , 2 ) } ` ) ;
245236 }
237+
238+ Object . entries ( transformedValue ) . forEach ( ( [ tvKey , tvValue ] ) => {
239+ // @ts -ignore
240+ desired [ tvKey ] = tvValue ;
241+ } )
246242 }
247243 }
248244
@@ -314,7 +310,7 @@ Additional: ${[...refreshKeys].filter(k => !desiredKeys.has(k))};`
314310
315311 abstract applyCreate ( plan : Plan < T > ) : Promise < void > ;
316312
317- async applyModify ( parameterName : keyof T , newValue : unknown , previousValue : unknown , allowDeletes : boolean , plan : Plan < T > ) : Promise < void > { } ;
313+ async applyModify ( pc : ParameterChange < T > , plan : Plan < T > ) : Promise < void > { } ;
318314
319315 abstract applyDestroy ( plan : Plan < T > ) : Promise < void > ;
320316}
0 commit comments