Skip to content

Commit 580520f

Browse files
committed
feat: Revised how setting parameters are set in the resource config
1 parent 90826bc commit 580520f

3 files changed

Lines changed: 17 additions & 3 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "codify-plugin-lib",
3-
"version": "1.0.136",
3+
"version": "1.0.137",
44
"description": "Library plugin library",
55
"main": "dist/index.js",
66
"typings": "dist/index.d.ts",

src/resource/resource-settings.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ describe('Resource parameter tests', () => {
696696
return {
697697
id: 'resourceType',
698698
parameterSettings: {
699-
propA: { type: 'setting' },
699+
propA: { type: 'string', setting: true },
700700
propB: { type: 'number' }
701701
}
702702
}

src/resource/resource-settings.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,16 @@ export interface DefaultParameterSetting {
212212
* 2. AWS profile secret keys that can be updated without the re-installation of AWS CLI
213213
*/
214214
canModify?: boolean
215+
216+
/**
217+
* This option allows the plan to skip this parameter entirely as it is used for setting purposes only. The value
218+
* of this parameter is used to configure the resource or other parameters.
219+
*
220+
* Examples:
221+
* 1. homebrew.onlyPlanUserInstalled option will tell homebrew to filter by --installed-on-request. But the value,
222+
* of the parameter itself (true or false) does not have an impact on the plan
223+
*/
224+
setting?: boolean
215225
}
216226

217227
/**
@@ -289,11 +299,15 @@ const ParameterEqualsDefaults: Partial<Record<ParameterSettingType, (a: unknown,
289299
'number': (a: unknown, b: unknown) => Number(a) === Number(b),
290300
'string': (a: unknown, b: unknown) => String(a) === String(b),
291301
'version': (desired: unknown, current: unknown) => String(current).includes(String(desired)),
292-
'setting': () => true,
293302
'object': isObjectsEqual,
294303
}
295304

296305
export function resolveEqualsFn(parameter: ParameterSetting): (desired: unknown, current: unknown) => boolean {
306+
// Setting parameters do not impact the plan
307+
if (parameter.setting) {
308+
return () => true;
309+
}
310+
297311
const isEqual = resolveFnFromEqualsFnOrString(parameter.isEqual);
298312

299313
if (parameter.type === 'array') {

0 commit comments

Comments
 (0)