MCPcopy
hub / github.com/tinyplex/tinybase / objValidate

Function objValidate

src/common/obj.ts:107–128  ·  view source on GitHub ↗
(
  obj: IdObj<any> | undefined,
  validateChild: (child: any, id: Id) => boolean,
  onInvalidObj?: () => void,
  emptyIsValid: 0 | 1 = 0,
)

Source from the content-addressed store, hash-verified

105};
106
107export const objValidate = (
108 obj: IdObj<any> | undefined,
109 validateChild: (child: any, id: Id) => boolean,
110 onInvalidObj?: () => void,
111 emptyIsValid: 0 | 1 = 0,
112): boolean => {
113 if (
114 isNullish(obj) ||
115 !isObject(obj) ||
116 (!emptyIsValid && objIsEmpty(obj)) ||
117 objFrozen(obj)
118 ) {
119 onInvalidObj?.();
120 return false;
121 }
122 objForEach(obj, (child, id) => {
123 if (!validateChild(child, id)) {
124 objDel(obj, id);
125 }
126 });
127 return emptyIsValid ? true : !objIsEmpty(obj);
128};

Callers 8

validateMergeableContentFunction · 0.90
validateTablesSchemaFunction · 0.90
validateValuesSchemaFunction · 0.90
validateTablesFunction · 0.90
validateTableFunction · 0.90
validateRowFunction · 0.90
validateValuesFunction · 0.90

Calls 5

isNullishFunction · 0.90
isObjectFunction · 0.70
objIsEmptyFunction · 0.70
objForEachFunction · 0.70
objDelFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…