UNPKG

@data-client/rest

Version:

Quickly define typed REST resources and endpoints

24 lines 3.32 kB
export function paginatedMerge(existing, incoming) { const existingSet = new Set(existing); const mergedList = [...existing]; for (const pk of incoming) { if (!existingSet.has(pk)) mergedList.push(pk); } return mergedList; } export function createPaginationSchema(removeCursor, collection) { return Object.create(collection, { name: { value: `Pagination(${collection.schema})` }, merge: { value: paginatedMerge }, pk: { value: function (value, parent, key, args) { return collection.pk.call(this, value, parent, key, removeCursor(...args)); } } }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWdpbmF0ZWRNZXJnZSIsImV4aXN0aW5nIiwiaW5jb21pbmciLCJleGlzdGluZ1NldCIsIlNldCIsIm1lcmdlZExpc3QiLCJwayIsImhhcyIsInB1c2giLCJjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIiwicmVtb3ZlQ3Vyc29yIiwiY29sbGVjdGlvbiIsIk9iamVjdCIsImNyZWF0ZSIsIm5hbWUiLCJ2YWx1ZSIsInNjaGVtYSIsIm1lcmdlIiwicGFyZW50Iiwia2V5IiwiYXJncyIsImNhbGwiXSwic291cmNlcyI6WyIuLi9zcmMvcGFnaW5hdGVkQ29sbGVjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFnaW5hdGVkTWVyZ2UoZXhpc3Rpbmc6IGFueVtdLCBpbmNvbWluZzogYW55W10pIHtcbiAgY29uc3QgZXhpc3RpbmdTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldChleGlzdGluZyk7XG4gIGNvbnN0IG1lcmdlZExpc3QgPSBbLi4uZXhpc3RpbmddO1xuICBmb3IgKGNvbnN0IHBrIG9mIGluY29taW5nKSB7XG4gICAgaWYgKCFleGlzdGluZ1NldC5oYXMocGspKSBtZXJnZWRMaXN0LnB1c2gocGspO1xuICB9XG4gIHJldHVybiBtZXJnZWRMaXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFnaW5hdGlvblNjaGVtYShcbiAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogcmVhZG9ubHkgYW55W10pID0+IGFueVtdLFxuICBjb2xsZWN0aW9uOiBzY2hlbWEuQ29sbGVjdGlvbixcbikge1xuICByZXR1cm4gT2JqZWN0LmNyZWF0ZShjb2xsZWN0aW9uLCB7XG4gICAgbmFtZToge1xuICAgICAgdmFsdWU6IGBQYWdpbmF0aW9uKCR7Y29sbGVjdGlvbi5zY2hlbWF9KWAsXG4gICAgfSxcbiAgICBtZXJnZToge1xuICAgICAgdmFsdWU6IHBhZ2luYXRlZE1lcmdlLFxuICAgIH0sXG4gICAgcGs6IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiAodmFsdWU6IGFueSwgcGFyZW50OiBhbnksIGtleTogYW55LCBhcmdzOiBhbnlbXSkge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5way5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgcGFyZW50LFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICByZW1vdmVDdXJzb3IoLi4uYXJncyksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLGNBQWNBLENBQUNDLFFBQWUsRUFBRUMsUUFBZSxFQUFFO0VBQy9ELE1BQU1DLFdBQXdCLEdBQUcsSUFBSUMsR0FBRyxDQUFDSCxRQUFRLENBQUM7RUFDbEQsTUFBTUksVUFBVSxHQUFHLENBQUMsR0FBR0osUUFBUSxDQUFDO0VBQ2hDLEtBQUssTUFBTUssRUFBRSxJQUFJSixRQUFRLEVBQUU7SUFDekIsSUFBSSxDQUFDQyxXQUFXLENBQUNJLEdBQUcsQ0FBQ0QsRUFBRSxDQUFDLEVBQUVELFVBQVUsQ0FBQ0csSUFBSSxDQUFDRixFQUFFLENBQUM7RUFDL0M7RUFDQSxPQUFPRCxVQUFVO0FBQ25CO0FBRUEsT0FBTyxTQUFTSSxzQkFBc0JBLENBQ3BDQyxZQUFnRCxFQUNoREMsVUFBNkIsRUFDN0I7RUFDQSxPQUFPQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0YsVUFBVSxFQUFFO0lBQy9CRyxJQUFJLEVBQUU7TUFDSkMsS0FBSyxFQUFFLGNBQWNKLFVBQVUsQ0FBQ0ssTUFBTTtJQUN4QyxDQUFDO0lBQ0RDLEtBQUssRUFBRTtNQUNMRixLQUFLLEVBQUVmO0lBQ1QsQ0FBQztJQUNETSxFQUFFLEVBQUU7TUFDRlMsS0FBSyxFQUFFLFNBQUFBLENBQVVBLEtBQVUsRUFBRUcsTUFBVyxFQUFFQyxHQUFRLEVBQUVDLElBQVcsRUFBRTtRQUMvRCxPQUFPVCxVQUFVLENBQUNMLEVBQUUsQ0FBQ2UsSUFBSSxDQUN2QixJQUFJLEVBQ0pOLEtBQUssRUFDTEcsTUFBTSxFQUNOQyxHQUFHLEVBQ0hULFlBQVksQ0FBQyxHQUFHVSxJQUFJLENBQ3RCLENBQUM7TUFDSDtJQUNGO0VBQ0YsQ0FBQyxDQUFDO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=