@data-client/endpoint
Version:
Declarative Network Interface Definitions
32 lines (31 loc) • 4.91 kB
JavaScript
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=