kit
    Preparing search index...
    • Merge object overrides onto object defaults, immutably

      Simple object merging utility, by design:

      • no array support
      • undefined and null values do not override default values, a.k.a. it makes it harder to remove a property defined on the defaults

      Type Parameters

      Parameters

      • defaults: D

        The default values

      • Optionaloverrides: O

        The values to override and/or extend the defaults

      • OptionaldeleteIfNull: DeleteIfNull

        When true the overrides' object keys whose value is an explicit null will delete the keys of the output merge object

      Returns ConditionalSimplifyDeep<
          ConditionalSimplifyDeep<
              [undefined] extends [
                  | ConditionalSimplifyDeep<
                      DeleteIfNull extends true ? PrepareMergeableObject<D, O, null> : D,

                          | UnknownArray
                          | NonRecursiveType
                          | ReadonlyMap<unknown, unknown>
                          | WeakMap<WeakKey, unknown>
                          | ReadonlySet<unknown>
                          | WeakSet<WeakKey>,
                      object,
                  >
                  | ConditionalSimplifyDeep<
                      PrepareMergeableObject<O, O, null | undefined>,

                          | UnknownArray
                          | NonRecursiveType
                          | ReadonlyMap<unknown, unknown>
                          | WeakMap<WeakKey, unknown>
                          | ReadonlySet<unknown>
                          | WeakSet<WeakKey>,
                      object,
                  >,
              ]
                  ? never
                  : ConditionalSimplifyDeep<
                      DeleteIfNull extends true ? PrepareMergeableObject<D, O, null> : D,

                          | UnknownArray
                          | NonRecursiveType
                          | ReadonlyMap<unknown, unknown>
                          | WeakMap<WeakKey, unknown>
                          | ReadonlySet<unknown>
                          | WeakSet<WeakKey>,
                      object,
                  > extends UnknownRecord
                      ? ConditionalSimplifyDeep<
                          PrepareMergeableObject<O, O, null | undefined>,

                              | UnknownArray
                              | NonRecursiveType
                              | ReadonlyMap<unknown, unknown>
                              | WeakMap<WeakKey, unknown>
                              | ReadonlySet<unknown>
                              | WeakSet<WeakKey>,
                          object,
                      > extends UnknownRecord
                          ? MergeDeepRecord<
                              UnknownRecord & ConditionalSimplifyDeep<
                                  DeleteIfNull extends true ? PrepareMergeableObject<D, O, null> : D,

                                      | UnknownArray
                                      | NonRecursiveType
                                      | ReadonlyMap<unknown, unknown>
                                      | WeakMap<WeakKey, unknown>
                                      | ReadonlySet<unknown>
                                      | WeakSet<WeakKey>,
                                  object,
                              >,
                              UnknownRecord & ConditionalSimplifyDeep<
                                  PrepareMergeableObject<O, O, null | undefined>,

                                      | UnknownArray
                                      | NonRecursiveType
                                      | ReadonlyMap<unknown, unknown>
                                      | WeakMap<WeakKey, unknown>
                                      | ReadonlySet<unknown>
                                      | WeakSet<WeakKey>,
                                  object,
                              >,
                              {},
                          >
                          : never
                      : ConditionalSimplifyDeep<
                          DeleteIfNull extends true ? PrepareMergeableObject<D, O, null> : D,

                              | UnknownArray
                              | NonRecursiveType
                              | ReadonlyMap<unknown, unknown>
                              | WeakMap<WeakKey, unknown>
                              | ReadonlySet<unknown>
                              | WeakSet<WeakKey>,
                          object,
                      > extends UnknownArrayOrTuple
                          ? ConditionalSimplifyDeep<
                              PrepareMergeableObject<O, O, null | undefined>,

                                  | UnknownArray
                                  | NonRecursiveType
                                  | ReadonlyMap<unknown, unknown>
                                  | WeakMap<WeakKey, unknown>
                                  | ReadonlySet<unknown>
                                  | WeakSet<WeakKey>,
                              object,
                          > extends UnknownArrayOrTuple
                              ? (
                                  | Exclude<(...) & (...), undefined>[number]
                                  | Exclude<(...) & (...), undefined>[number]
                              )[]
                              : never
                          : never,

                  | UnknownArray
                  | NonRecursiveType
                  | ReadonlyMap<unknown, unknown>
                  | WeakMap<WeakKey, unknown>
                  | ReadonlySet<unknown>
                  | WeakSet<WeakKey>,
              object,
          >,

              | NonRecursiveType
              | ReadonlyMap<unknown, unknown>
              | WeakMap<WeakKey, unknown>
              | ReadonlySet<unknown>
              | WeakSet<WeakKey>,
          object,
      >