mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-13 21:40:21 +00:00
- type definitions - tests https://github.com/epoberezkin/json-schema-traverse#usage Thanks!
61 lines
923 B
TypeScript
61 lines
923 B
TypeScript
import traverse = require('json-schema-traverse');
|
|
|
|
const schema = {
|
|
properties: {
|
|
foo: { type: 'string' },
|
|
bar: { type: 'integer' },
|
|
},
|
|
};
|
|
|
|
const cb: traverse.TraverseCallbackDef = (
|
|
schema: object,
|
|
jsonPtr: string,
|
|
rootSchema: object,
|
|
parentJsonPtr: string,
|
|
parentKeyword: string,
|
|
parentSchema: object,
|
|
keyIndex: string | number,
|
|
) => {
|
|
// work with data
|
|
};
|
|
|
|
traverse(schema, { cb });
|
|
|
|
const pre: traverse.TraverseCallbackDef = cb;
|
|
const post: traverse.TraverseCallbackDef = cb;
|
|
|
|
traverse(schema, { cb: { pre, post } });
|
|
|
|
traverse(schema, { allKeys: true, cb });
|
|
|
|
// example output
|
|
/*
|
|
{
|
|
"type": "integer"
|
|
},
|
|
"/properties/bar",
|
|
{
|
|
"properties": {
|
|
"foo": {
|
|
"type": "string"
|
|
},
|
|
"bar": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"",
|
|
"properties",
|
|
{
|
|
"properties": {
|
|
"foo": {
|
|
"type": "string"
|
|
},
|
|
"bar": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"bar"
|
|
*/
|