Spaces:
Runtime error
Runtime error
| import Output from './output.mjs' | |
| import arrayify from '../node_modules/array-back/index.mjs' | |
| import t from '../node_modules/typical/index.mjs' | |
| import camelCase from 'lodash.camelcase' | |
| class GroupedOutput extends Output { | |
| toObject (options) { | |
| const superOutputNoCamel = super.toObject({ skipUnknown: options.skipUnknown }) | |
| const superOutput = super.toObject(options) | |
| const unknown = superOutput._unknown | |
| delete superOutput._unknown | |
| const grouped = { | |
| _all: superOutput | |
| } | |
| if (unknown && unknown.length) grouped._unknown = unknown | |
| this.definitions.whereGrouped().forEach(def => { | |
| const name = options.camelCase ? camelCase(def.name) : def.name | |
| const outputValue = superOutputNoCamel[def.name] | |
| for (const groupName of arrayify(def.group)) { | |
| grouped[groupName] = grouped[groupName] || {} | |
| if (t.isDefined(outputValue)) { | |
| grouped[groupName][name] = outputValue | |
| } | |
| } | |
| }) | |
| this.definitions.whereNotGrouped().forEach(def => { | |
| const name = options.camelCase ? camelCase(def.name) : def.name | |
| const outputValue = superOutputNoCamel[def.name] | |
| if (t.isDefined(outputValue)) { | |
| if (!grouped._none) grouped._none = {} | |
| grouped._none[name] = outputValue | |
| } | |
| }) | |
| return grouped | |
| } | |
| } | |
| export default GroupedOutput | |