/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
// test() is part of Jest's serializer API
export function test(maybeDehydratedValue) {
const {meta} = require('react-devtools-shared/src/hydration');
const hasOwnProperty =
Object.prototype.hasOwnProperty.bind(maybeDehydratedValue);
return (
maybeDehydratedValue !== null &&
typeof maybeDehydratedValue === 'object' &&
hasOwnProperty(meta.inspectable) &&
maybeDehydratedValue[meta.inspected] !== true
);
}
// print() is part of Jest's serializer API
export function print(dehydratedValue, serialize, indent) {
const {meta} = require('react-devtools-shared/src/hydration');
const indentation = Math.max(indent('.').indexOf('.') - 2, 0);
const paddingLeft = ' '.repeat(indentation);
return (
'Dehydrated {\n' +
paddingLeft +
' "preview_short": ' +
dehydratedValue[meta.preview_short] +
',\n' +
paddingLeft +
' "preview_long": ' +
dehydratedValue[meta.preview_long] +
',\n' +
paddingLeft +
'}'
);
}