Skip to content

Commit a48ac2a

Browse files
XVincentXozonep
andauthored
fix: remove all unnecessary items (#10)
* Fixed bug where not all required items were deleted from array and replacd deepequal with faster version * Added proper tests * chore: better test * test: add * prefer clone deep Co-authored-by: Ivan Malkov <[email protected]>
1 parent 25198e8 commit a48ac2a

File tree

7 files changed

+1109
-1056
lines changed

7 files changed

+1109
-1056
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*.swp
22
node_modules
3+
.idea

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
var deepEqual = require('deep-equal');
1+
var deepEqual = require('fast-deep-equal');
22
var convert = require('./lib/convert');
3-
var clone = require('clone');
3+
var clone = require('lodash.clonedeep');
44

55
module.exports = openapiSchemaToJsonSchema;
66
module.exports.fromSchema = openapiSchemaToJsonSchema;

lib/converters/schema.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -232,16 +232,15 @@ function convertPatternProperties (schema, handler) {
232232
}
233233

234234
function cleanRequired (required, properties) {
235-
var i = 0
236-
237235
required = required || []
238236
properties = properties || {}
237+
let remainedRequired = []
239238

240-
for (i; i < required.length; i++) {
241-
if (properties[required[i]] === undefined) {
242-
required.splice(i, 1)
243-
}
239+
for (let i = 0; i < required.length; i++) {
240+
if (properties[required[i]]) {
241+
remainedRequired.push(required[i])
242+
}
244243
}
245244

246-
return required
245+
return remainedRequired
247246
}

0 commit comments

Comments
 (0)