UNPKG

@data-client/endpoint

Version:

Declarative Network Interface Definitions

32 lines (31 loc) 4.91 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import PolymorphicSchema from './Polymorphic.js'; /** * Represents variably sized objects * @see https://dataclient.io/rest/api/Values */ export default class ValuesSchema extends PolymorphicSchema { normalize(input, parent, key, args, visit, addEntity, getEntity, checkLoop) { return Object.keys(input).reduce((output, key, index) => { const value = input[key]; return value !== undefined && value !== null ? _extends({}, output, { [key]: this.normalizeValue(value, input, key, args, visit) }) : output; }, {}); } denormalize(input, args, unvisit) { return Object.keys(input).reduce((output, key) => { const entityOrId = input[key]; const value = this.denormalizeValue(entityOrId, unvisit); // remove empty or deleted values if (!value || typeof value === 'symbol') return output; return _extends({}, output, { [key]: value }); }, {}); } queryKey(args, queryKey, getEntity, getIndex) { return undefined; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQb2x5bW9ycGhpY1NjaGVtYSIsIlZhbHVlc1NjaGVtYSIsIm5vcm1hbGl6ZSIsImlucHV0IiwicGFyZW50Iiwia2V5IiwiYXJncyIsInZpc2l0IiwiYWRkRW50aXR5IiwiZ2V0RW50aXR5IiwiY2hlY2tMb29wIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm91dHB1dCIsImluZGV4IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJfZXh0ZW5kcyIsIm5vcm1hbGl6ZVZhbHVlIiwiZGVub3JtYWxpemUiLCJ1bnZpc2l0IiwiZW50aXR5T3JJZCIsImRlbm9ybWFsaXplVmFsdWUiLCJxdWVyeUtleSIsImdldEluZGV4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvVmFsdWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQb2x5bW9ycGhpY1NjaGVtYSBmcm9tICcuL1BvbHltb3JwaGljLmpzJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi4vaW50ZXJmYWNlLmpzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHZhcmlhYmx5IHNpemVkIG9iamVjdHNcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1ZhbHVlc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYWx1ZXNTY2hlbWEgZXh0ZW5kcyBQb2x5bW9ycGhpY1NjaGVtYSB7XG4gIG5vcm1hbGl6ZShcbiAgICBpbnB1dDogYW55LFxuICAgIHBhcmVudDogYW55LFxuICAgIGtleTogYW55LFxuICAgIGFyZ3M6IGFueVtdLFxuICAgIHZpc2l0OiBWaXNpdCxcbiAgICBhZGRFbnRpdHk6IGFueSxcbiAgICBnZXRFbnRpdHk6IGFueSxcbiAgICBjaGVja0xvb3A6IGFueSxcbiAgKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGlucHV0KS5yZWR1Y2UoKG91dHB1dCwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dFtrZXldO1xuICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgP1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgICAgIFtrZXldOiB0aGlzLm5vcm1hbGl6ZVZhbHVlKHZhbHVlLCBpbnB1dCwga2V5LCBhcmdzLCB2aXNpdCksXG4gICAgICAgICAgfVxuICAgICAgICA6IG91dHB1dDtcbiAgICB9LCB7fSk7XG4gIH1cblxuICBkZW5vcm1hbGl6ZShcbiAgICBpbnB1dDoge30sXG4gICAgYXJnczogcmVhZG9ubHkgYW55W10sXG4gICAgdW52aXNpdDogKHNjaGVtYTogYW55LCBpbnB1dDogYW55KSA9PiBhbnksXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGlucHV0KS5yZWR1Y2UoKG91dHB1dCwga2V5KSA9PiB7XG4gICAgICBjb25zdCBlbnRpdHlPcklkID0gKGlucHV0IGFzIGFueSlba2V5XTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5kZW5vcm1hbGl6ZVZhbHVlKGVudGl0eU9ySWQsIHVudmlzaXQpO1xuXG4gICAgICAvLyByZW1vdmUgZW1wdHkgb3IgZGVsZXRlZCB2YWx1ZXNcbiAgICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJykgcmV0dXJuIG91dHB1dDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgW2tleV06IHZhbHVlLFxuICAgICAgfTtcbiAgICB9LCB7fSk7XG4gIH1cblxuICBxdWVyeUtleShcbiAgICBhcmdzOiBhbnksXG4gICAgcXVlcnlLZXk6IHVua25vd24sXG4gICAgZ2V0RW50aXR5OiB1bmtub3duLFxuICAgIGdldEluZGV4OiB1bmtub3duLFxuICApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxpQkFBaUIsTUFBTSxrQkFBa0I7QUFHaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLFlBQVksU0FBU0QsaUJBQWlCLENBQUM7RUFDMURFLFNBQVNBLENBQ1BDLEtBQVUsRUFDVkMsTUFBVyxFQUNYQyxHQUFRLEVBQ1JDLElBQVcsRUFDWEMsS0FBWSxFQUNaQyxTQUFjLEVBQ2RDLFNBQWMsRUFDZEMsU0FBYyxFQUNkO0lBQ0EsT0FBT0MsTUFBTSxDQUFDQyxJQUFJLENBQUNULEtBQUssQ0FBQyxDQUFDVSxNQUFNLENBQUMsQ0FBQ0MsTUFBTSxFQUFFVCxHQUFHLEVBQUVVLEtBQUssS0FBSztNQUN2RCxNQUFNQyxLQUFLLEdBQUdiLEtBQUssQ0FBQ0UsR0FBRyxDQUFDO01BQ3hCLE9BQU9XLEtBQUssS0FBS0MsU0FBUyxJQUFJRCxLQUFLLEtBQUssSUFBSSxHQUFBRSxRQUFBLEtBRW5DSixNQUFNO1FBQ1QsQ0FBQ1QsR0FBRyxHQUFHLElBQUksQ0FBQ2MsY0FBYyxDQUFDSCxLQUFLLEVBQUViLEtBQUssRUFBRUUsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLEtBQUs7TUFBQyxLQUU1RE8sTUFBTTtJQUNaLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNSO0VBRUFNLFdBQVdBLENBQ1RqQixLQUFTLEVBQ1RHLElBQW9CLEVBQ3BCZSxPQUF5QyxFQUNwQztJQUNMLE9BQU9WLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxLQUFLLENBQUMsQ0FBQ1UsTUFBTSxDQUFDLENBQUNDLE1BQU0sRUFBRVQsR0FBRyxLQUFLO01BQ2hELE1BQU1pQixVQUFVLEdBQUluQixLQUFLLENBQVNFLEdBQUcsQ0FBQztNQUN0QyxNQUFNVyxLQUFLLEdBQUcsSUFBSSxDQUFDTyxnQkFBZ0IsQ0FBQ0QsVUFBVSxFQUFFRCxPQUFPLENBQUM7O01BRXhEO01BQ0EsSUFBSSxDQUFDTCxLQUFLLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsRUFBRSxPQUFPRixNQUFNO01BQ3RELE9BQUFJLFFBQUEsS0FDS0osTUFBTTtRQUNULENBQUNULEdBQUcsR0FBR1c7TUFBSztJQUVoQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFDUjtFQUVBUSxRQUFRQSxDQUNObEIsSUFBUyxFQUNUa0IsUUFBaUIsRUFDakJmLFNBQWtCLEVBQ2xCZ0IsUUFBaUIsRUFDakI7SUFDQSxPQUFPUixTQUFTO0VBQ2xCO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=