UNPKG

@data-client/endpoint

Version:

Declarative Network Interface Definitions

33 lines (32 loc) 4.84 kB
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 ? { ...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 { ...output, [key]: value }; }, {}); } queryKey(args, queryKey, getEntity, getIndex) { return undefined; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQb2x5bW9ycGhpY1NjaGVtYSIsIlZhbHVlc1NjaGVtYSIsIm5vcm1hbGl6ZSIsImlucHV0IiwicGFyZW50Iiwia2V5IiwiYXJncyIsInZpc2l0IiwiYWRkRW50aXR5IiwiZ2V0RW50aXR5IiwiY2hlY2tMb29wIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm91dHB1dCIsImluZGV4IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJub3JtYWxpemVWYWx1ZSIsImRlbm9ybWFsaXplIiwidW52aXNpdCIsImVudGl0eU9ySWQiLCJkZW5vcm1hbGl6ZVZhbHVlIiwicXVlcnlLZXkiLCJnZXRJbmRleCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL1ZhbHVlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUG9seW1vcnBoaWNTY2hlbWEgZnJvbSAnLi9Qb2x5bW9ycGhpYy5qcyc7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uL2ludGVyZmFjZS5qcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB2YXJpYWJseSBzaXplZCBvYmplY3RzXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9WYWx1ZXNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmFsdWVzU2NoZW1hIGV4dGVuZHMgUG9seW1vcnBoaWNTY2hlbWEge1xuICBub3JtYWxpemUoXG4gICAgaW5wdXQ6IGFueSxcbiAgICBwYXJlbnQ6IGFueSxcbiAgICBrZXk6IGFueSxcbiAgICBhcmdzOiBhbnlbXSxcbiAgICB2aXNpdDogVmlzaXQsXG4gICAgYWRkRW50aXR5OiBhbnksXG4gICAgZ2V0RW50aXR5OiBhbnksXG4gICAgY2hlY2tMb29wOiBhbnksXG4gICkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhpbnB1dCkucmVkdWNlKChvdXRwdXQsIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsID9cbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgICAgICBba2V5XTogdGhpcy5ub3JtYWxpemVWYWx1ZSh2YWx1ZSwgaW5wdXQsIGtleSwgYXJncywgdmlzaXQpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiBvdXRwdXQ7XG4gICAgfSwge30pO1xuICB9XG5cbiAgZGVub3JtYWxpemUoXG4gICAgaW5wdXQ6IHt9LFxuICAgIGFyZ3M6IHJlYWRvbmx5IGFueVtdLFxuICAgIHVudmlzaXQ6IChzY2hlbWE6IGFueSwgaW5wdXQ6IGFueSkgPT4gYW55LFxuICApOiBhbnkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhpbnB1dCkucmVkdWNlKChvdXRwdXQsIGtleSkgPT4ge1xuICAgICAgY29uc3QgZW50aXR5T3JJZCA9IChpbnB1dCBhcyBhbnkpW2tleV07XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZGVub3JtYWxpemVWYWx1ZShlbnRpdHlPcklkLCB1bnZpc2l0KTtcblxuICAgICAgLy8gcmVtb3ZlIGVtcHR5IG9yIGRlbGV0ZWQgdmFsdWVzXG4gICAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3N5bWJvbCcpIHJldHVybiBvdXRwdXQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICAgIH07XG4gICAgfSwge30pO1xuICB9XG5cbiAgcXVlcnlLZXkoXG4gICAgYXJnczogYW55LFxuICAgIHF1ZXJ5S2V5OiB1bmtub3duLFxuICAgIGdldEVudGl0eTogdW5rbm93bixcbiAgICBnZXRJbmRleDogdW5rbm93bixcbiAgKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxpQkFBaUIsTUFBTSxrQkFBa0I7QUFHaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLFlBQVksU0FBU0QsaUJBQWlCLENBQUM7RUFDMURFLFNBQVNBLENBQ1BDLEtBQVUsRUFDVkMsTUFBVyxFQUNYQyxHQUFRLEVBQ1JDLElBQVcsRUFDWEMsS0FBWSxFQUNaQyxTQUFjLEVBQ2RDLFNBQWMsRUFDZEMsU0FBYyxFQUNkO0lBQ0EsT0FBT0MsTUFBTSxDQUFDQyxJQUFJLENBQUNULEtBQUssQ0FBQyxDQUFDVSxNQUFNLENBQUMsQ0FBQ0MsTUFBTSxFQUFFVCxHQUFHLEVBQUVVLEtBQUssS0FBSztNQUN2RCxNQUFNQyxLQUFLLEdBQUdiLEtBQUssQ0FBQ0UsR0FBRyxDQUFDO01BQ3hCLE9BQU9XLEtBQUssS0FBS0MsU0FBUyxJQUFJRCxLQUFLLEtBQUssSUFBSSxHQUN4QztRQUNFLEdBQUdGLE1BQU07UUFDVCxDQUFDVCxHQUFHLEdBQUcsSUFBSSxDQUFDYSxjQUFjLENBQUNGLEtBQUssRUFBRWIsS0FBSyxFQUFFRSxHQUFHLEVBQUVDLElBQUksRUFBRUMsS0FBSztNQUMzRCxDQUFDLEdBQ0RPLE1BQU07SUFDWixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFDUjtFQUVBSyxXQUFXQSxDQUNUaEIsS0FBUyxFQUNURyxJQUFvQixFQUNwQmMsT0FBeUMsRUFDcEM7SUFDTCxPQUFPVCxNQUFNLENBQUNDLElBQUksQ0FBQ1QsS0FBSyxDQUFDLENBQUNVLE1BQU0sQ0FBQyxDQUFDQyxNQUFNLEVBQUVULEdBQUcsS0FBSztNQUNoRCxNQUFNZ0IsVUFBVSxHQUFJbEIsS0FBSyxDQUFTRSxHQUFHLENBQUM7TUFDdEMsTUFBTVcsS0FBSyxHQUFHLElBQUksQ0FBQ00sZ0JBQWdCLENBQUNELFVBQVUsRUFBRUQsT0FBTyxDQUFDOztNQUV4RDtNQUNBLElBQUksQ0FBQ0osS0FBSyxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLEVBQUUsT0FBT0YsTUFBTTtNQUN0RCxPQUFPO1FBQ0wsR0FBR0EsTUFBTTtRQUNULENBQUNULEdBQUcsR0FBR1c7TUFDVCxDQUFDO0lBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ1I7RUFFQU8sUUFBUUEsQ0FDTmpCLElBQVMsRUFDVGlCLFFBQWlCLEVBQ2pCZCxTQUFrQixFQUNsQmUsUUFBaUIsRUFDakI7SUFDQSxPQUFPUCxTQUFTO0VBQ2xCO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=