MCPcopy Create free account
hub / github.com/chhoumann/quickadd / applyDefaultValues

Method applyDefaultValues

src/utils/FieldValueProcessor.ts:59–99  ·  view source on GitHub ↗

* Apply default value logic based on filters

(
		values: string[],
		filters: FieldFilter
	)

Source from the content-addressed store, hash-verified

57 * Apply default value logic based on filters
58 */
59 private static applyDefaultValues(
60 values: string[],
61 filters: FieldFilter
62 ): { processedValues: string[]; hasDefault: boolean } {
63 if (!filters.defaultValue) {
64 return { processedValues: values, hasDefault: false };
65 }
66
67 const defaultValue = filters.defaultValue;
68 let processedValues = [...values];
69 let hasDefault = false;
70
71 // Existing values are deduplicated case-insensitively by default, so the
72 // default must be compared with the same fold; otherwise a default that
73 // differs only by case from an existing value (e.g. default:done vs a
74 // collected "Done") is added as a separate, near-identical entry.
75 const isPresent = (value: string): boolean =>
76 filters.caseSensitive
77 ? value === defaultValue
78 : this.normalizeForComparison(value) ===
79 this.normalizeForComparison(defaultValue);
80
81 if (filters.defaultAlways) {
82 // Always include default at the beginning, remove if already present
83 processedValues = processedValues.filter((v) => !isPresent(v));
84 processedValues.unshift(defaultValue);
85 hasDefault = true;
86 } else if (filters.defaultEmpty && values.length === 0) {
87 // Only include default if no values found
88 processedValues = [defaultValue];
89 hasDefault = true;
90 } else if (!filters.defaultEmpty && !filters.defaultAlways) {
91 // Default behavior: include if not already present and prepend
92 if (!processedValues.some(isPresent)) {
93 processedValues.unshift(defaultValue);
94 hasDefault = true;
95 }
96 }
97
98 return { processedValues, hasDefault };
99 }
100
101 /**
102 * Promotes `value` to the front of an already-processed suggestion list,

Callers 1

processValuesMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected