mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-05 11:31:31 +08:00
This also adds CC-BY-4.0 to the list of accepted licenses. DISABLE_THIRD_PARTY_CHECK=update dependencies Bug: chromium:1083142 Change-Id: I8612de2fba52dae32eeb71af79d5aacfde52142b Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2220097 Reviewed-by: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org>
107 lines
2.5 KiB
TypeScript
107 lines
2.5 KiB
TypeScript
declare namespace mapObject {
|
|
type Mapper<
|
|
SourceObjectType extends {[key: string]: any},
|
|
MappedObjectKeyType extends string,
|
|
MappedObjectValueType
|
|
> = (
|
|
sourceKey: keyof SourceObjectType,
|
|
sourceValue: SourceObjectType[keyof SourceObjectType],
|
|
source: SourceObjectType
|
|
) => [MappedObjectKeyType, MappedObjectValueType];
|
|
|
|
interface Options {
|
|
/**
|
|
Recurse nested objects and objects in arrays.
|
|
|
|
@default false
|
|
*/
|
|
deep?: boolean;
|
|
|
|
/**
|
|
Target object to map properties on to.
|
|
|
|
@default {}
|
|
*/
|
|
target?: {[key: string]: any};
|
|
}
|
|
|
|
interface DeepOptions extends Options {
|
|
deep: true;
|
|
}
|
|
|
|
interface TargetOptions<TargetObjectType extends {[key: string]: any}> extends Options {
|
|
target: TargetObjectType;
|
|
}
|
|
}
|
|
|
|
/**
|
|
Map object keys and values into a new object.
|
|
|
|
@param source - Source object to copy properties from.
|
|
@param mapper - Mapping function.
|
|
|
|
@example
|
|
```
|
|
import mapObject = require('map-obj');
|
|
|
|
const newObject = mapObject({foo: 'bar'}, (key, value) => [value, key]);
|
|
//=> {bar: 'foo'}
|
|
```
|
|
*/
|
|
declare function mapObject<
|
|
SourceObjectType extends object,
|
|
TargetObjectType extends {[key: string]: any},
|
|
MappedObjectKeyType extends string,
|
|
MappedObjectValueType
|
|
>(
|
|
source: SourceObjectType,
|
|
mapper: mapObject.Mapper<
|
|
SourceObjectType,
|
|
MappedObjectKeyType,
|
|
MappedObjectValueType
|
|
>,
|
|
options: mapObject.DeepOptions & mapObject.TargetOptions<TargetObjectType>
|
|
): TargetObjectType & {[key: string]: unknown};
|
|
declare function mapObject<
|
|
SourceObjectType extends object,
|
|
MappedObjectKeyType extends string,
|
|
MappedObjectValueType
|
|
>(
|
|
source: SourceObjectType,
|
|
mapper: mapObject.Mapper<
|
|
SourceObjectType,
|
|
MappedObjectKeyType,
|
|
MappedObjectValueType
|
|
>,
|
|
options: mapObject.DeepOptions
|
|
): {[key: string]: unknown};
|
|
declare function mapObject<
|
|
SourceObjectType extends {[key: string]: any},
|
|
TargetObjectType extends {[key: string]: any},
|
|
MappedObjectKeyType extends string,
|
|
MappedObjectValueType
|
|
>(
|
|
source: SourceObjectType,
|
|
mapper: mapObject.Mapper<
|
|
SourceObjectType,
|
|
MappedObjectKeyType,
|
|
MappedObjectValueType
|
|
>,
|
|
options: mapObject.TargetOptions<TargetObjectType>
|
|
): TargetObjectType & {[K in MappedObjectKeyType]: MappedObjectValueType};
|
|
declare function mapObject<
|
|
SourceObjectType extends {[key: string]: any},
|
|
MappedObjectKeyType extends string,
|
|
MappedObjectValueType
|
|
>(
|
|
source: SourceObjectType,
|
|
mapper: mapObject.Mapper<
|
|
SourceObjectType,
|
|
MappedObjectKeyType,
|
|
MappedObjectValueType
|
|
>,
|
|
options?: mapObject.Options
|
|
): {[K in MappedObjectKeyType]: MappedObjectValueType};
|
|
|
|
export = mapObject;
|