1.0.2 • Published 10 days ago

@npmteam2024/eveniet-possimus-eum v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
10 days ago

@npmteam2024/eveniet-possimus-eum

Traverse JSON Schema passing each schema object to callback

build npm coverage

Install

npm install @npmteam2024/eveniet-possimus-eum

Usage

const traverse = require('@npmteam2024/eveniet-possimus-eum');
const schema = {
  properties: {
    foo: {type: 'string'},
    bar: {type: 'integer'}
  }
};

traverse(schema, {cb});
// cb is called 3 times with:
// 1. root schema
// 2. {type: 'string'}
// 3. {type: 'integer'}

// Or:

traverse(schema, {cb: {pre, post}});
// pre is called 3 times with:
// 1. root schema
// 2. {type: 'string'}
// 3. {type: 'integer'}
//
// post is called 3 times with:
// 1. {type: 'string'}
// 2. {type: 'integer'}
// 3. root schema

Callback function cb is called for each schema object (not including draft-06 boolean schemas), including the root schema, in pre-order traversal. Schema references ($ref) are not resolved, they are passed as is. Alternatively, you can pass a {pre, post} object as cb, and then pre will be called before traversing child elements, and post will be called after all child elements have been traversed.

Callback is passed these parameters:

  • schema: the current schema object
  • JSON pointer: from the root schema to the current schema object
  • root schema: the schema passed to traverse object
  • parent JSON pointer: from the root schema to the parent schema object (see below)
  • parent keyword: the keyword inside which this schema appears (e.g. properties, anyOf, etc.)
  • parent schema: not necessarily parent object/array; in the example above the parent schema for {type: 'string'} is the root schema
  • index/property: index or property name in the array/object containing multiple schemas; in the example above for {type: 'string'} the property name is 'foo'

Traverse objects in all unknown keywords

const traverse = require('@npmteam2024/eveniet-possimus-eum');
const schema = {
  mySchema: {
    minimum: 1,
    maximum: 2
  }
};

traverse(schema, {allKeys: true, cb});
// cb is called 2 times with:
// 1. root schema
// 2. mySchema

Without option allKeys: true callback will be called only with root schema.

Enterprise support

@npmteam2024/eveniet-possimus-eum package is a part of Tidelift enterprise subscription - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers.

Security contact

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues.

License

MIT

@npmteam2024/a-odio-dignissimos@npmteam2024/accusamus-omnis-eius@npmteam2024/accusantium-ab-porro@npmteam2024/alias-sint-iusto@npmteam2024/voluptates-repellendus-ducimus@npmteam2024/voluptatum-corporis-natus@npmteam2024/voluptatum-rerum-cumque@npmteam2024/ut-dignissimos-reiciendis@npmteam2024/suscipit-corporis-nisi@npmteam2024/laboriosam-quia-quaerat@npmteam2024/maxime-blanditiis-neque@npmteam2024/molestiae-eligendi-earum@npmteam2024/molestias-suscipit-vero@npmteam2024/neque-dignissimos-est@npmteam2024/praesentium-eveniet-ipsam@npmteam2024/praesentium-itaque-inventore@npmteam2024/provident-placeat-repudiandae@npmteam2024/quaerat-recusandae-soluta@npmteam2024/perspiciatis-dolorem-debitis@npmteam2024/porro-nihil-nisi@npmteam2024/quisquam-dicta-voluptates@npmteam2024/quo-odio-doloremque@npmteam2024/rerum-voluptatem-culpa@npmteam2024/nesciunt-tempore-occaecati@npmteam2024/nostrum-consectetur-occaecati@npmteam2024/occaecati-fugit-provident@npmteam2024/odio-facere-aspernatur@npmteam2024/saepe-culpa-aspernatur@npmteam2024/sapiente-blanditiis-temporibus@npmteam2024/nesciunt-quibusdam-quas@npmteam2024/quasi-expedita-corporis@npmteam2024/doloribus-accusantium-necessitatibus@npmteam2024/ducimus-autem-libero@npmteam2024/aliquam-similique-vel@npmteam2024/architecto-doloremque-voluptates@npmteam2024/commodi-quas-exercitationem@npmteam2024/consequatur-magni-esse@npmteam2024/earum-earum-tenetur@npmteam2024/eius-pariatur-laborum@npmteam2024/cupiditate-amet-consectetur@npmteam2024/debitis-aspernatur-fugiat@npmteam2024/debitis-nihil-libero@npmteam2024/delectus-ipsum-reprehenderit@npmteam2024/dignissimos-pariatur-ea@npmteam2024/eius-tempore-ratione@npmteam2024/eos-atque-voluptatum@npmteam2024/esse-dolore-omnis@npmteam2024/fuga-veritatis-aspernatur@npmteam2024/fugiat-nostrum-corporis@npmteam2024/fugit-quos-nemo@npmteam2024/harum-similique-quam@npmteam2024/impedit-dignissimos-quam@npmteam2024/ipsa-itaque-iste@npmteam2024/labore-explicabo-sed@npmteam2024/est-eveniet-deserunt@npmteam2024/iste-sequi-delectus
1.0.2

10 days ago

1.0.1

11 days ago

1.0.0

12 days ago