(
userDefinedMetadata: {}, modelName: string, checkSize = false)
| 28 | * @throws Error if `userDefinedMetadata` is not a plain JSON object. |
| 29 | */ |
| 30 | export function checkUserDefinedMetadata( |
| 31 | userDefinedMetadata: {}, modelName: string, checkSize = false): void { |
| 32 | if (userDefinedMetadata == null || |
| 33 | typeof userDefinedMetadata !== 'object' || |
| 34 | Object.getPrototypeOf(userDefinedMetadata) !== Object.prototype || |
| 35 | !plainObjectCheck(userDefinedMetadata)) { |
| 36 | throw new Error( |
| 37 | 'User-defined metadata is expected to be a JSON object, but is not.'); |
| 38 | } |
| 39 | |
| 40 | if (checkSize) { |
| 41 | const out = JSON.stringify(userDefinedMetadata); |
| 42 | if (out.length > MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH) { |
| 43 | console.warn( |
| 44 | `User-defined metadata of model "${modelName}" is too large in ` + |
| 45 | `size (length=${out.length} when serialized). It is not ` + |
| 46 | `recommended to store such large objects in user-defined metadata. ` + |
| 47 | `Please make sure its serialized length is <= ` + |
| 48 | `${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`); |
| 49 | } |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | /** |
| 54 | * Check if an input is plain JSON object or any valid subfield of it. |
no test coverage detected
searching dependent graphs…