• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

inclusion-numerique / coop-mediation-numerique / 94c91f81-01e2-41ce-927e-502f1c8a6ec4

18 Feb 2026 03:57PM UTC coverage: 10.79% (+3.7%) from 7.093%
94c91f81-01e2-41ce-927e-502f1c8a6ec4

push

circleci

web-flow
Merge pull request #434 from inclusion-numerique/dev

Release

684 of 10101 branches covered (6.77%)

Branch coverage included in aggregate %.

88 of 171 new or added lines in 26 files covered. (51.46%)

797 existing lines in 85 files now uncovered.

2096 of 15664 relevant lines covered (13.38%)

1.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/apps/web/src/utils/removeUndefinedValues.ts
1
type NoUndefinedField<T> = {
2
  [P in keyof T]-?: T[P] extends Record<string, unknown>
3
    ? NoUndefinedField<T[P]>
4
    : Exclude<T[P], undefined>
5
}
6

UNCOV
7
export const removeUndefinedValues = <T>(data: T): NoUndefinedField<T> => {
×
UNCOV
8
  if (Array.isArray(data)) {
×
UNCOV
9
    return data.map((item) =>
×
UNCOV
10
      removeUndefinedValues(item),
×
11
    ) as unknown as NoUndefinedField<T>
12
  }
UNCOV
13
  if (data !== null && typeof data === 'object') {
×
UNCOV
14
    return Object.fromEntries(
×
15
      Object.entries(data).reduce(
16
        (accumulator, [key, value]) => {
UNCOV
17
          if (value !== undefined) {
×
UNCOV
18
            accumulator.push([key, removeUndefinedValues(value)])
×
19
          }
UNCOV
20
          return accumulator
×
21
        },
22
        [] as [string, unknown][],
23
      ),
24
    ) as NoUndefinedField<T>
25
  }
UNCOV
26
  return data as NoUndefinedField<T>
×
27
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc