( userFields: Record<string, unknown>, frontmatter: Record<string, unknown>, userFieldConfigs: readonly Pick<UserMappedField, "key">[] )
| 54 | } |
| 55 | |
| 56 | export function getUserFieldChanges( |
| 57 | userFields: Record<string, unknown>, |
| 58 | frontmatter: Record<string, unknown>, |
| 59 | userFieldConfigs: readonly Pick<UserMappedField, "key">[] |
| 60 | ): Record<string, unknown> { |
| 61 | const userFieldsChanges: Record<string, unknown> = {}; |
| 62 | |
| 63 | for (const field of userFieldConfigs) { |
| 64 | if (!field?.key) continue; |
| 65 | |
| 66 | const newValue = userFields[field.key]; |
| 67 | const oldValue = frontmatter[field.key]; |
| 68 | |
| 69 | if (isUserFieldValueDifferent(newValue, oldValue)) { |
| 70 | userFieldsChanges[field.key] = |
| 71 | newValue === null || newValue === undefined || newValue === "" |
| 72 | ? null |
| 73 | : newValue; |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | return userFieldsChanges; |
| 78 | } |
| 79 | |
| 80 | export function isUserFieldValueDifferent(newValue: unknown, oldValue: unknown): boolean { |
| 81 | const normalizedNew = normalizeEmptyUserFieldValue(newValue); |
no test coverage detected