Skip to content

Commit d90ff8c

Browse files
committed
Change order of arguments for new Unified Field Processing utilities
1 parent 2159f47 commit d90ff8c

3 files changed

Lines changed: 89 additions & 68 deletions

File tree

packages/cma-client-node/__tests__/utilities.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ describe('utilities test', () => {
243243

244244
// Process the locales by converting any full block object to just IDs
245245
const newFieldValue = (await mapNormalizedFieldValuesAsync(
246-
field,
247246
fieldValueInNestedResponse,
247+
field,
248248
async (
249249
_locale: string | undefined,
250250
fieldValueForLocale: unknown,

packages/cma-client/README.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -507,21 +507,21 @@ Apply a transformation function to field values, handling both localized and non
507507
**TypeScript Signatures:**
508508
```typescript
509509
function mapNormalizedFieldValues<TInput, TOutput>(
510+
localizedOrNonLocalizedFieldValue: TInput | LocalizedFieldValue<TInput>,
510511
field: Field,
511-
value: TInput | LocalizedFieldValue<TInput>,
512512
mapFn: (locale: string | undefined, localeValue: TInput) => TOutput
513513
): TOutput | LocalizedFieldValue<TOutput>
514514

515515
async function mapNormalizedFieldValuesAsync<TInput, TOutput>(
516+
localizedOrNonLocalizedFieldValue: TInput | LocalizedFieldValue<TInput>,
516517
field: Field,
517-
value: TInput | LocalizedFieldValue<TInput>,
518518
mapFn: (locale: string | undefined, localeValue: TInput) => Promise<TOutput>
519519
): Promise<TOutput | LocalizedFieldValue<TOutput>>
520520
```
521521

522522
**Parameters:**
523-
- `fieldType`: The type of DatoCMS field (ie. `string`, `rich_text`, etc.)
524-
- `nonLocalizedFieldValue`: The non-localized field value (localized or non-localized)
523+
- `localizedOrNonLocalizedFieldValue`: The field value (localized or non-localized)
524+
- `field`: The DatoCMS field definition
525525
- `mapFn`: Function to transform each value (receives locale for localized fields, undefined for non-localized)
526526

527527
**Returns:** Transformed value maintaining the same structure
@@ -537,21 +537,21 @@ Filter field values based on a predicate, handling both localized and non-locali
537537
**TypeScript Signatures:**
538538
```typescript
539539
function filterNormalizedFieldValues<T>(
540+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
540541
field: Field,
541-
value: T | LocalizedFieldValue<T>,
542542
filterFn: (locale: string | undefined, localeValue: T) => boolean
543543
): T | LocalizedFieldValue<T> | undefined
544544

545545
async function filterNormalizedFieldValuesAsync<T>(
546+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
546547
field: Field,
547-
value: T | LocalizedFieldValue<T>,
548548
filterFn: (locale: string | undefined, localeValue: T) => Promise<boolean>
549549
): Promise<T | LocalizedFieldValue<T> | undefined>
550550
```
551551

552552
**Parameters:**
553-
- `fieldType`: The type of DatoCMS field (ie. `string`, `rich_text`, etc.)
554-
- `nonLocalizedFieldValue`: The non-localized field value to filter
553+
- `localizedOrNonLocalizedFieldValue`: The field value to filter
554+
- `field`: The DatoCMS field definition
555555
- `filterFn`: Predicate function for filtering
556556

557557
**Returns:** Filtered value or undefined if all filtered out
@@ -567,21 +567,21 @@ Visit each value in a field, handling both localized and non-localized fields.
567567
**TypeScript Signatures:**
568568
```typescript
569569
function visitNormalizedFieldValues<T>(
570+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
570571
field: Field,
571-
value: T | LocalizedFieldValue<T>,
572572
visitFn: (locale: string | undefined, localeValue: T) => void
573573
): void
574574

575575
async function visitNormalizedFieldValuesAsync<T>(
576+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
576577
field: Field,
577-
value: T | LocalizedFieldValue<T>,
578578
visitFn: (locale: string | undefined, localeValue: T) => Promise<void>
579579
): Promise<void>
580580
```
581581

582582
**Parameters:**
583-
- `fieldType`: The type of DatoCMS field (ie. `string`, `rich_text`, etc.)
584-
- `nonLocalizedFieldValue`: The non-localized field value to visit
583+
- `localizedOrNonLocalizedFieldValue`: The field value to visit
584+
- `field`: The DatoCMS field definition
585585
- `visitFn`: Function called for each value
586586
</details>
587587

@@ -595,21 +595,21 @@ Check if at least one field value passes the test.
595595
**TypeScript Signatures:**
596596
```typescript
597597
function someNormalizedFieldValues<T>(
598+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
598599
field: Field,
599-
value: T | LocalizedFieldValue<T>,
600600
testFn: (locale: string | undefined, localeValue: T) => boolean
601601
): boolean
602602

603603
async function someNormalizedFieldValuesAsync<T>(
604+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
604605
field: Field,
605-
value: T | LocalizedFieldValue<T>,
606606
testFn: (locale: string | undefined, localeValue: T) => Promise<boolean>
607607
): Promise<boolean>
608608
```
609609

610610
**Parameters:**
611-
- `fieldType`: The type of DatoCMS field (ie. `string`, `rich_text`, etc.)
612-
- `nonLocalizedFieldValue`: The non-localized field value to test
611+
- `localizedOrNonLocalizedFieldValue`: The field value to test
612+
- `field`: The DatoCMS field definition
613613
- `testFn`: Predicate function
614614

615615
**Returns:** True if any value passes the test
@@ -625,21 +625,21 @@ Check if all field values pass the test.
625625
**TypeScript Signatures:**
626626
```typescript
627627
function everyNormalizedFieldValue<T>(
628+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
628629
field: Field,
629-
value: T | LocalizedFieldValue<T>,
630630
testFn: (locale: string | undefined, localeValue: T) => boolean
631631
): boolean
632632

633633
async function everyNormalizedFieldValueAsync<T>(
634+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
634635
field: Field,
635-
value: T | LocalizedFieldValue<T>,
636636
testFn: (locale: string | undefined, localeValue: T) => Promise<boolean>
637637
): Promise<boolean>
638638
```
639639

640640
**Parameters:**
641-
- `fieldType`: The type of DatoCMS field (ie. `string`, `rich_text`, etc.)
642-
- `nonLocalizedFieldValue`: The non-localized field value to test
641+
- `localizedOrNonLocalizedFieldValue`: The field value to test
642+
- `field`: The DatoCMS field definition
643643
- `testFn`: Predicate function
644644

645645
**Returns:** True if all values pass the test
@@ -655,13 +655,13 @@ Convert field values to/from a normalized entry format for uniform processing.
655655
**TypeScript Signatures:**
656656
```typescript
657657
function toNormalizedFieldValueEntries<T>(
658-
field: Field,
659-
value: T | LocalizedFieldValue<T>
658+
localizedOrNonLocalizedFieldValue: T | LocalizedFieldValue<T>,
659+
field: Field
660660
): NormalizedFieldValueEntry<T>[]
661661

662662
function fromNormalizedFieldValueEntries<T>(
663-
field: Field,
664-
entries: NormalizedFieldValueEntry<T>[]
663+
entries: NormalizedFieldValueEntry<T>[],
664+
field: Field
665665
): T | LocalizedFieldValue<T>
666666

667667
type NormalizedFieldValueEntry<T> = {
@@ -671,15 +671,15 @@ type NormalizedFieldValueEntry<T> = {
671671
```
672672

673673
**Parameters:**
674-
- `fieldType`: The type of DatoCMS field (ie. `string`, `rich_text`, etc.)
675-
- `nonLocalizedFieldValue`/`entries non-localized`: Value to convert from/to
674+
- `localizedOrNonLocalizedFieldValue`/`entries`: Value to convert from/to
675+
- `field`: The DatoCMS field definition
676676

677677
**Returns:** Normalized entries array or reconstructed field value
678678

679679
**Usage Example:**
680680
```typescript
681681
// Convert to entries for processing
682-
const entries = toNormalizedFieldValueEntries(field, fieldValue);
682+
const entries = toNormalizedFieldValueEntries(fieldValue, field);
683683

684684
// Process entries uniformly
685685
const processed = entries.map(({ locale, value }) => ({
@@ -688,7 +688,7 @@ const processed = entries.map(({ locale, value }) => ({
688688
}));
689689

690690
// Convert back to field value format
691-
const result = fromNormalizedFieldValueEntries(field, processed);
691+
const result = fromNormalizedFieldValueEntries(processed, field);
692692
```
693693
</details>
694694

0 commit comments

Comments
 (0)