/opt/canhelp/node_modules/defu/dist
Edit: /opt/canhelp/node_modules/defu/dist/defu.d.cts (2778B)
type Input = Record
;
type IgnoredInput = boolean | number | null | any[] | Record | undefined;
type Merger = (object: T, key: keyof T, value: T[K], namespace: string) => any;
type nullish = null | undefined | void;
type MergeObjects = Destination extends Defaults ? Destination : Omit & Omit & {
-readonly [Key in keyof Destination & keyof Defaults]: Destination[Key] extends nullish ? Defaults[Key] extends nullish ? nullish : Defaults[Key] : Defaults[Key] extends nullish ? Destination[Key] : Merge;
};
type Defu> = D extends [
infer F,
...infer Rest
] ? F extends Input ? Rest extends Array ? Defu, Rest> : MergeObjects : F extends IgnoredInput ? Rest extends Array ? Defu : S : S : S;
type DefuFn = >(source: Source, ...defaults: Defaults) => Defu;
interface DefuInstance {
>(source: Source | IgnoredInput, ...defaults: Defaults): Defu;
fn: DefuFn;
arrayFn: DefuFn;
extend(merger?: Merger): DefuFn;
}
type MergeArrays = Destination extends Array ? Source extends Array ? Array : Source | Array : Source | Destination;
type Merge = Destination extends nullish ? Defaults extends nullish ? nullish : Defaults : Defaults extends nullish ? Destination : Destination extends Array ? Defaults extends Array ? MergeArrays : Destination | Defaults : Destination extends Function ? Destination | Defaults : Destination extends RegExp ? Destination | Defaults : Destination extends Promise ? Destination | Defaults : Defaults extends Function ? Destination | Defaults : Defaults extends RegExp ? Destination | Defaults : Defaults extends Promise ? Destination | Defaults : Destination extends Input ? Defaults extends Input ? MergeObjects : Destination | Defaults : Destination | Defaults;
declare function createDefu(merger?: Merger): DefuFn;
declare const defu: DefuInstance;
declare const defuFn: DefuFn;
declare const defuArrayFn: DefuFn;
// @ts-ignore
export = defu;
export { createDefu, defu, defuArrayFn, defuFn };
export type { Defu, DefuFn, DefuInstance };