mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-08 20:58:24 +08:00
R=jacktfranklin@chromium.org DISABLE_THIRD_PARTY_CHECK=Adding sinon to deps Change-Id: If47962332a4d9a4b4f0edbe637bca4f9894545ba Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2562704 Auto-Submit: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Jack Franklin <jacktfranklin@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
72 lines
1.8 KiB
JavaScript
72 lines
1.8 KiB
JavaScript
"use strict";
|
|
|
|
var slice = require("@sinonjs/commons").prototypes.string.slice;
|
|
var typeOf = require("@sinonjs/commons").typeOf;
|
|
var valueToString = require("@sinonjs/commons").valueToString;
|
|
|
|
/**
|
|
* Creates a string represenation of an iterable object
|
|
*
|
|
* @private
|
|
* @param {object} obj The iterable object to stringify
|
|
* @returns {string} A string representation
|
|
*/
|
|
function iterableToString(obj) {
|
|
if (typeOf(obj) === "map") {
|
|
return mapToString(obj);
|
|
}
|
|
|
|
return genericIterableToString(obj);
|
|
}
|
|
|
|
/**
|
|
* Creates a string representation of a Map
|
|
*
|
|
* @private
|
|
* @param {Map} map The map to stringify
|
|
* @returns {string} A string representation
|
|
*/
|
|
function mapToString(map) {
|
|
var representation = "";
|
|
|
|
// eslint-disable-next-line @sinonjs/no-prototype-methods/no-prototype-methods
|
|
map.forEach(function(value, key) {
|
|
representation += "[" + stringify(key) + "," + stringify(value) + "],";
|
|
});
|
|
|
|
representation = slice(representation, 0, -1);
|
|
return representation;
|
|
}
|
|
|
|
/**
|
|
* Create a string represenation for an iterable
|
|
*
|
|
* @private
|
|
* @param {object} iterable The iterable to stringify
|
|
* @returns {string} A string representation
|
|
*/
|
|
function genericIterableToString(iterable) {
|
|
var representation = "";
|
|
|
|
// eslint-disable-next-line @sinonjs/no-prototype-methods/no-prototype-methods
|
|
iterable.forEach(function(value) {
|
|
representation += stringify(value) + ",";
|
|
});
|
|
|
|
representation = slice(representation, 0, -1);
|
|
return representation;
|
|
}
|
|
|
|
/**
|
|
* Creates a string representation of the passed `item`
|
|
*
|
|
* @private
|
|
* @param {object} item The item to stringify
|
|
* @returns {string} A string representation of `item`
|
|
*/
|
|
function stringify(item) {
|
|
return typeof item === "string" ? "'" + item + "'" : valueToString(item);
|
|
}
|
|
|
|
module.exports = iterableToString;
|