@@ -4,7 +4,7 @@ import isObjectsEqual from 'lodash.isequal'
44import path from 'node:path' ;
55
66import { ArrayStatefulParameter , StatefulParameter } from '../stateful-parameter/stateful-parameter.js' ;
7- import { areArraysEqual , tildify , untildify } from '../utils/utils.js' ;
7+ import { addVariablesToPath , areArraysEqual , resolvePathWithVariables , tildify , untildify } from '../utils/utils.js' ;
88
99export interface InputTransformation {
1010 to : ( input : any ) => Promise < any > | any ;
@@ -302,7 +302,13 @@ export interface StatefulParameterSetting extends DefaultParameterSetting {
302302
303303const ParameterEqualsDefaults : Partial < Record < ParameterSettingType , ( a : unknown , b : unknown ) => boolean > > = {
304304 'boolean' : ( a : unknown , b : unknown ) => Boolean ( a ) === Boolean ( b ) ,
305- 'directory' : ( a : unknown , b : unknown ) => path . resolve ( untildify ( String ( a ) ) ) === path . resolve ( untildify ( String ( b ) ) ) ,
305+ 'directory' : ( a : unknown , b : unknown ) => {
306+ const notCaseSensitive = process . platform === 'darwin' ;
307+ const transformedA = path . resolve ( resolvePathWithVariables ( untildify ( notCaseSensitive ? String ( a ) . toLowerCase ( ) : String ( a ) ) ) )
308+ const transformedB = path . resolve ( resolvePathWithVariables ( untildify ( notCaseSensitive ? String ( b ) . toLowerCase ( ) : String ( b ) ) ) )
309+
310+ return transformedA === transformedB ;
311+ } ,
306312 'number' : ( a : unknown , b : unknown ) => Number ( a ) === Number ( b ) ,
307313 'string' : ( a : unknown , b : unknown ) => String ( a ) === String ( b ) ,
308314 'version' : ( desired : unknown , current : unknown ) => String ( current ) . includes ( String ( desired ) ) ,
@@ -362,8 +368,8 @@ export function resolveFnFromEqualsFnOrString(
362368
363369const ParameterTransformationDefaults : Partial < Record < ParameterSettingType , InputTransformation > > = {
364370 'directory' : {
365- to : ( a : unknown ) => path . resolve ( untildify ( String ( a ) ) ) ,
366- from : ( a : unknown ) => tildify ( String ( a ) ) ,
371+ to : ( a : unknown ) => path . resolve ( resolvePathWithVariables ( ( untildify ( String ( a ) ) ) ) ) ,
372+ from : ( a : unknown ) => addVariablesToPath ( tildify ( String ( a ) ) ) ,
367373 } ,
368374 'string' : {
369375 to : String ,
0 commit comments