import { PointableJSONSchema, resolveSchemaAtPointer, } from "./resolveSchemaAtPointer.js"; const test = () => { // Example usage const data = { foo: { bar: [1, 2, 3], baz: "hello", }, }; const schema: PointableJSONSchema = { type: "object", properties: { foo: { type: "object", properties: { bar: { type: "array", items: { type: "number" }, }, baz: { type: "string" }, }, }, }, }; // Absolute pointer const result1 = resolveSchemaAtPointer({ data, schema, pointer: "/foo/bar/1", }); console.log("Absolute pointer result:", result1); // Output: { dataValue: 2, schemaValue: { type: "number" } } // Relative pointer (corrected) const result2 = resolveSchemaAtPointer({ data, schema, pointer: "2/baz", basePointer: "/foo/bar/1", }); console.log("Relative pointer result:", result2); // Output: { dataValue: "hello", schemaValue: { type: "string" } } // Data only const result3 = resolveSchemaAtPointer({ data, pointer: "/foo/baz", }); console.log("Data only result:", result3); // Output: { dataValue: "hello", schemaValue: undefined } // Schema only const result4 = resolveSchemaAtPointer({ schema, pointer: "/foo/bar", }); console.log("Schema only result:", result4); // Output: { dataValue: undefined, schemaValue: { type: "array", items: { type: "number" } } } }; test();