📄 serialization.ts
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 2 |
📊 Variables & Constants | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/rule-tester/src/utils/serialization.ts
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
valAsObj |
Record<string, unknown> |
const | val as Record<string, unknown> |
✗ |
Functions¶
isSerializablePrimitiveOrPlainObject(val: unknown): boolean
¶
Code
function isSerializablePrimitiveOrPlainObject(val: unknown): boolean {
return (
// eslint-disable-next-line eqeqeq, @typescript-eslint/internal/eqeq-nullish
val === null ||
typeof val === 'string' ||
typeof val === 'boolean' ||
typeof val === 'number' ||
(typeof val === 'object' && val.constructor === Object) ||
Array.isArray(val)
);
}
-
JSDoc:
-
Parameters:
val: unknown
- Return Type:
boolean
- Calls:
Array.isArray
- Internal Comments:
isSerializable(val: unknown): boolean
¶
Code
export function isSerializable(val: unknown): boolean {
if (!isSerializablePrimitiveOrPlainObject(val)) {
return false;
}
if (typeof val === 'object') {
const valAsObj = val as Record<string, unknown>;
for (const property in valAsObj) {
if (Object.hasOwn(valAsObj, property)) {
if (!isSerializablePrimitiveOrPlainObject(valAsObj[property])) {
return false;
}
if (
typeof valAsObj[property] === 'object' &&
!isSerializable(valAsObj[property])
) {
return false;
}
}
}
}
return true;
}
-
JSDoc:
-
Parameters:
val: unknown
- Return Type:
boolean
- Calls:
isSerializablePrimitiveOrPlainObject
Object.hasOwn
isSerializable