12345678910111213141516171819202122232425262728 |
- 'use strict';
- const get = require('../get');
- module.exports = function getKeysInSchemaOrder(schema, val, path) {
- const schemaKeys = path != null ? Object.keys(get(schema.tree, path, {})) : Object.keys(schema.tree);
- const valKeys = new Set(Object.keys(val));
- let keys;
- if (valKeys.size > 1) {
- keys = new Set();
- for (const key of schemaKeys) {
- if (valKeys.has(key)) {
- keys.add(key);
- }
- }
- for (const key of valKeys) {
- if (!keys.has(key)) {
- keys.add(key);
- }
- }
- keys = Array.from(keys);
- } else {
- keys = Array.from(valKeys);
- }
- return keys;
- };
|