From 617e9d3b6e975679f5f596f092152c6ea291a2fd Mon Sep 17 00:00:00 2001 From: Carmine DiMascio Date: Sat, 9 Jan 2021 14:41:26 -0500 Subject: [PATCH] fix: skip schemas --- package-lock.json | 2 +- package.json | 2 +- src/middlewares/parsers/schema.preprocessor.ts | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index face1063..4d6c2d00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "express-openapi-validator", - "version": "4.11.0-beta.1", + "version": "4.11.0-beta.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1cf285d4..102b3ab0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "express-openapi-validator", - "version": "4.11.0-beta.1", + "version": "4.11.0-beta.2", "description": "Automatically validate API requests and responses with OpenAPI 3 and Express.", "main": "dist/index.js", "scripts": { diff --git a/src/middlewares/parsers/schema.preprocessor.ts b/src/middlewares/parsers/schema.preprocessor.ts index 6bd379bc..443e83d0 100644 --- a/src/middlewares/parsers/schema.preprocessor.ts +++ b/src/middlewares/parsers/schema.preprocessor.ts @@ -34,12 +34,10 @@ class Node { public readonly path: string[]; public readonly parent: P; public readonly schema: T; - public readonly seen: boolean; constructor(parent: P, schema: T, path: string[]) { this.path = path; this.parent = parent; this.schema = schema; - this.seen = false; } } type SchemaObjectNode = Node; @@ -172,13 +170,13 @@ export class SchemaPreprocessor { private traverseSchemas(nodes: TopLevelSchemaNodes, visit) { const recurse = (parent, node, opts: TraversalStates) => { const schema = this.resolveSchema(node.schema); - if (node.seen || !schema) { + if (node.schema._seen || !schema) { // if we can't dereference a path within the schema, skip preprocessing // TODO handle refs like below during preprocessing // #/paths/~1subscription/get/requestBody/content/application~1json/schema/properties/subscription return; } - node.seen = true; + node.schema._seen = true; // Save the original schema so we can check if it was a $ref (opts).req.originalSchema = node.schema; (opts).res.originalSchema = node.schema;