UNPKG

armpit

Version:

Another resource manager programming interface toolkit.

102 lines 5.71 kB
export declare function shallowCloneDefinedValues<T extends object>(obj: T): T; export declare function shallowMergeDefinedValues<TPrev extends object, TNext extends object>(prev: TPrev, next: TNext): TPrev & TNext; export declare function applyOptionsDifferencesShallow<TTarget extends TSource, TSource extends object>(target: TTarget, source: TSource): boolean; export declare function applyOptionsDifferencesDeep<TTarget extends TSource, TSource extends object>(target: TTarget, source: TSource): boolean; export declare function applyArrayKeyedDescriptor<TTarget extends { [K in keyof TSource]?: TTarget[K]; }, TSource extends object>(targets: TTarget[], sources: TSource[], match: keyof TSource | ((t: TTarget, s: TSource) => boolean), apply: (t: TTarget, s: TSource) => boolean, create: (s: TSource) => TTarget, options?: { deleteUnmatchedTargets?: boolean; }): boolean; export declare function applyArrayIdDescriptors<T extends { id?: string; }>(targets: T[], sources: { id?: string; }[], options?: { deleteUnmatchedTargets?: boolean; }): boolean; export declare function applyObjectKeyProperties<TTarget extends object, TSource extends object>(target: TTarget, source: TSource, onAdd?: (key: keyof TSource, target: TTarget, source: TSource) => boolean | void, onRemove?: boolean | ((key: keyof TTarget, target: TTarget) => boolean | void), onMatch?: (key: keyof TSource & keyof TTarget, target: TTarget, source: TSource) => boolean | void): boolean; type ApplyOptionsResult = boolean; type ApplyObjectPropFn<TTarget extends { [P in TProp]?: TTarget[P]; }, TSource extends { [P in TProp]?: TSource[P]; }, TProp extends keyof TSource & keyof TTarget> = (target: { [P in TProp]?: TTarget[P]; }, source: { [P in TProp]: TSource[P]; }, propName: TProp, context?: ApplyContext) => ApplyOptionsResult; type ApplyObjectFn<TTarget extends { [P in keyof TSource & keyof TTarget]?: TTarget[P]; }, TSource extends { [P in keyof TSource]?: TSource[P]; }> = (target: TTarget, source: TSource, context?: ApplyContext) => ApplyOptionsResult; type ApplyObjectTemplate<TTarget extends { [P in keyof TTarget & keyof TSource]?: TTarget[P]; }, TSource extends { [P in keyof TSource]?: TSource[P]; }> = { [P in keyof TTarget & keyof TSource]?: (TSource[P] extends object | undefined ? ApplyObjectTemplate<TTarget[P], TSource[P]> : never) | ApplyObjectPropFn<TTarget, TSource, P> | "ignore"; }; export interface ApplyContext { visitedSourceObjects?: unknown[]; } export declare function wrapPropObjectApply<TTarget extends { [P in keyof TTarget & keyof TSource]?: TTarget[P]; }, TSource extends { [P in keyof TSource]?: TSource[P]; }, TTargetItem extends TTarget[TProp], TSourceItem extends TSource[TProp] | undefined, TProp extends keyof TTarget & keyof TSource>(applyFn: ApplyObjectFn<NonNullable<TTargetItem>, NonNullable<TSourceItem>>): ApplyObjectPropFn<TTarget, TSource, TProp>; export declare function createKeyedArrayPropApplyFn<TTargetItem extends { [P in keyof TSourceItem]?: TTargetItem[P]; } & object, TSourceItem extends { [P in keyof TSourceItem]?: TSourceItem[P]; } & object, TTarget extends { [P in TProp]?: TTargetItem[]; }, TSource extends { [P in TProp]?: TSourceItem[]; }, TProp extends keyof TSource>(match: keyof TSourceItem | ((t: TTargetItem, s: TSourceItem) => boolean), apply: ApplyObjectFn<TTargetItem, TSourceItem>, create?: boolean | ((s: TSourceItem, c?: ApplyContext) => TTargetItem), remove?: boolean | ((t: TTargetItem[], d: TTargetItem[]) => boolean)): ApplyObjectPropFn<TTarget, TSource, TProp>; export declare function applySourceToTargetObject<TTarget extends { [P in keyof TSource]?: TTarget[P]; }, TSource extends { [P in keyof TSource]?: TSource[P]; }>(target: TTarget, source: TSource, context?: ApplyContext): ApplyOptionsResult; export declare function applySourceToTargetObjectWithTemplate<TTarget extends { [P in keyof TSource]?: TTarget[P]; }, TSource extends { [P in keyof TSource]?: TSource[P]; }, TTemplate extends ApplyObjectTemplate<TTarget, TSource>>(target: TTarget, source: TSource, template?: TTemplate, context?: ApplyContext): ApplyOptionsResult; export declare function applyUnorderedArray<TValue>(targetArray: TValue[], sourceArray: TValue[], test?: (a: TValue, b: TValue) => boolean): boolean; export declare function applyUnorderedValueArrayProp<TValue extends string | number, TTarget extends { [P in TProp]?: TValue[]; }, TSource extends { [P in TProp]?: TValue[]; }, TProp extends keyof TSource>(target: TTarget, source: TSource, propName: TProp): boolean; export declare function applyOrderedArray<TValue>(targetArray: TValue[], sourceArray: TValue[], test?: (a: TValue, b: TValue) => boolean): boolean; export declare function applyOrderedValueArrayProp<TValue extends string | number, TTarget extends { [P in TProp]?: TValue[]; }, TSource extends { [P in TProp]?: TValue[]; }, TProp extends keyof TSource>(target: TTarget, source: TSource, propName: TProp): boolean; export declare function applyResourceRefProperty<TTarget extends { [P in TProp]?: { id?: string; }; }, TSource extends { [P in TProp]?: { id?: string; } | string; }, TProp extends keyof TSource>(target: TTarget, source: TSource, propName: TProp): boolean; export declare function applyResourceRefListProperty<TTargetItem extends { id?: string; }, TSource extends { [P in TProp]?: { id?: string; }[]; }, TProp extends keyof TSource>(target: { [P in TProp]?: TTargetItem[]; }, source: { [P in TProp]?: { id?: string; }[]; }, propName: TProp): boolean; export {}; //# sourceMappingURL=optionsUtils.d.ts.map