Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
open-api-to-schema
Advanced tools
Converts open-api / swagger files to json schema objects ready to use with json schema validation libraries.
npm install --save open-api-to-schema
import openApiToSchema from 'open-api-to-schema'
import Ajv from 'ajv'
const config = {
required: 'all',
optionalFields: {
Pet: [ 'id' ]
}
}
const jsonSchemas = openApiToSchema('./test/fixtures/petstore-expanded.yaml', config)
const ajv = new Ajv()
const validator = ajv.compile(jsonSchema.paths['/pet'].get[200])
const valid = validator(response.data)
if (!valid) {
console.error(validator.errors)
}
...
Returns a valid JSON Schema draft 7 object ready to be used with json validation libraries such as ajv.
Definitions and paths are root objects.
See [Example Response](##Example Response)
required
required is on of :-
respect
// required fields from schema are usedall
// all fields are required expect optionalFields
none
// no fields are required expect requiredFields
optionalFields
Only used when required
is set to all
.
Defines the fields that should not be set to required.
Has definition name as key with array of optional fields
{
[definitionName]: [ 'unrequired' ]
}
requiredFields
Only used when required
is set to none
.
Defines the fields that should be set to required.
Has definition name as key with array of required fields
{
[definitionName]: [ 'required' ]
}
{
"/pets": {
"get": {
"200": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Pet",
"properties": {
"name": {
"type": "string"
},
"tag": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int64"
}
},
"required": [
"name",
"tag"
],
"additionalProperties": false
}
},
"default": {
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Error"
}
},
"post": {
"200": {
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Pet",
"properties": {
"name": {
"type": "string"
},
"tag": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int64"
}
},
"required": [
"name",
"tag"
],
"additionalProperties": false
},
"default": {
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Error"
}
}
},
"/pets/{id}": {
"get": {
"200": {
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Pet",
"properties": {
"name": {
"type": "string"
},
"tag": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int64"
}
},
"required": [
"name",
"tag"
],
"additionalProperties": false
},
"default": {
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Error"
}
},
"delete": {
"204": {},
"default": {
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"$name": "Error"
}
}
}
}
FAQs
Open API / Swagger file to JSON Schema Converter
The npm package open-api-to-schema receives a total of 15 weekly downloads. As such, open-api-to-schema popularity was classified as not popular.
We found that open-api-to-schema demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.