New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

joi-to-json

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

joi-to-json - npm Package Compare versions

Comparing version 3.1.0 to 3.1.1

@@ -0,1 +1,5 @@

### 3.1.1
- Fix Typescript definition.
### 3.1.0

@@ -2,0 +6,0 @@

import Joi from 'joi-17';
declare module Joi2Json {
/**
* @type {string}
*/
export type Mode = 'json' | 'open-api' | 'json-draft-2019-09' | 'json-draft-04';
/**
* @type {string}
*/
export type Mode = 'json' | 'open-api' | 'json-draft-2019-09' | 'json-draft-04';
/**
* @param {string} joi - A Joi schema.
* @param {string} [mode='json'] - json / open-api / json-draft-2019-09 / json-draft-04
* @param {Record} [sharedSchema={}] - Passed-in object storing shared schemas
* @returns {any} Converted JSON schema object.
*/
export function parse(joi: Joi.Schema, mode?: Mode, sharedSchema?: Record<string, any>): any;
}
/**
* The parser function modifies the schema in-place.
* @param {any} schema - JSON schema object
* @param {any} dependency - JOI dependency object
*/
export type LogicalOpParserFn = (schema, dependency) => void;
export default Joi2Json.parse;
export interface LogicalOpParserOpts {
and?: LogicalOpParserFn,
nand?: LogicalOpParserFn,
or?: LogicalOpParserFn,
xor?: LogicalOpParserFn,
oxor?: LogicalOpParserFn,
with?: LogicalOpParserFn,
without?: LogicalOpParserFn
};
export type ParserOptions = false | { logicalOpParser?: LogicalOpParserOpts };
/**
* @param {Joi.Schema} joi - A Joi schema.
* @param {string} [mode='json'] - json / open-api / json-draft-2019-09 / json-draft-04
* @param {Record} [sharedSchema={}] - Passed-in object storing shared schemas
* @param {ParserOptions} [parserOptions={}] - Passed-in options for parser
* @returns {any} Converted JSON schema object.
*/
export function parse(joi: typeof Joi.Schema, mode?: Mode, sharedSchema?: Record<string, any>, parserOptions?: ParserOptions): any;
export default parse;
{
"name": "joi-to-json",
"version": "3.1.0",
"version": "3.1.1",
"description": "joi to JSON / OpenAPI Schema Converter",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -245,2 +245,6 @@ # joi-to-json

## Special Joi Operator Support
* [Logical Relation Operator](./docs/logical_rel_support.md)
## Browser support

@@ -253,6 +257,18 @@ For generating JSON Schema in a browser you should use below import syntax for `joi` library in order to work because the `joi` browser minimized build does not have `describe` api which the `joi-to-json` relies on.

## Special Joi Operator Support
## TypeScript support
* [Logical Relation Operator](./docs/logical_rel_support.md)
```typescript
import joi from 'joi';
import * as Joi2Json from 'joi-to-json';
import parse from 'joi-to-json';
const logicalOpParser: Joi2Json.LogicalOpParserOpts = {
with: function (a) {}
};
parse(joi.string()); // Default call
parse(joi.string(), 'json', {}, false); // Completely disable Logical Relation Operator
parse(joi.string(), 'open-api', {}, { logicalOpParser }); // Partially override Logical Relation Operator
```
## Test

@@ -259,0 +275,0 @@