UNPKG

@data-client/rest

Version:

Quickly define typed REST resources and endpoints

15 lines 3.48 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { schema } from '@data-client/endpoint'; export default function mapCollection(s, mapper) { if (typeof s !== 'object' || s === undefined) return s; if (s instanceof schema.Collection) { return mapper(s); } const objCopy = _extends({}, s instanceof schema.Object ? s.schema : s); for (const k in objCopy) { if (!objCopy[k]) continue; objCopy[k] = mapCollection(objCopy[k], mapper); } return objCopy; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJtYXBDb2xsZWN0aW9uIiwicyIsIm1hcHBlciIsInVuZGVmaW5lZCIsIkNvbGxlY3Rpb24iLCJvYmpDb3B5IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJrIl0sInNvdXJjZXMiOlsiLi4vc3JjL21hcENvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYXBDb2xsZWN0aW9uPFxuICBNIGV4dGVuZHMgPEMgZXh0ZW5kcyBzY2hlbWEuQ29sbGVjdGlvbj4oY29sbGVjdGlvbjogQykgPT4gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuPihcbiAgczogUyxcbiAgbWFwcGVyOiBNLFxuKTogUyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uID8gUmV0dXJuVHlwZTx0eXBlb2YgbWFwcGVyPFM+PlxuOiBTIGV4dGVuZHMgc2NoZW1hLk9iamVjdDxpbmZlciBUPiA/XG4gIHtcbiAgICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFNjaGVtYSA/IHR5cGVvZiBtYXBDb2xsZWN0aW9uPE0sIFRbS10+IDogVFtLXTtcbiAgfVxuOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogYW55IH0gP1xuICB7XG4gICAgW0sgaW4ga2V5b2YgU106IFNbS10gZXh0ZW5kcyBTY2hlbWEgPyB0eXBlb2YgbWFwQ29sbGVjdGlvbjxNLCBTW0tdPiA6IFNbS107XG4gIH1cbjogUyB7XG4gIGlmICh0eXBlb2YgcyAhPT0gJ29iamVjdCcgfHwgcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gcyBhcyBhbnk7XG4gIGlmIChzIGluc3RhbmNlb2Ygc2NoZW1hLkNvbGxlY3Rpb24pIHtcbiAgICByZXR1cm4gbWFwcGVyKHMgYXMgYW55KTtcbiAgfVxuICBjb25zdCBvYmpDb3B5OiBSZWNvcmQ8c3RyaW5nLCBTY2hlbWE+ID0ge1xuICAgIC4uLihzIGluc3RhbmNlb2Ygc2NoZW1hLk9iamVjdCA/IChzIGFzIGFueSkuc2NoZW1hIDogcyksXG4gIH07XG4gIGZvciAoY29uc3QgayBpbiBvYmpDb3B5KSB7XG4gICAgaWYgKCFvYmpDb3B5W2tdKSBjb250aW51ZTtcbiAgICBvYmpDb3B5W2tdID0gbWFwQ29sbGVjdGlvbihvYmpDb3B5W2tdLCBtYXBwZXIpIGFzIGFueTtcbiAgfVxuICByZXR1cm4gb2JqQ29weSBhcyBhbnk7XG59XG5cbnR5cGUgTWFwQ29sbGVjdGlvbjxcbiAgTSBleHRlbmRzIDxDIGV4dGVuZHMgc2NoZW1hLkNvbGxlY3Rpb24+KGNvbGxlY3Rpb246IEMpID0+IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCxcbj4gPVxuICBTIGV4dGVuZHMgc2NoZW1hLkNvbGxlY3Rpb24gPyBSZXR1cm5UeXBlPE0+XG4gIDogUyBleHRlbmRzIHNjaGVtYS5PYmplY3Q8aW5mZXIgVD4gPyBNYXBDb2xsZWN0aW9uPE0sIFQ+XG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IGFueSB9ID8gTWFwT2JqZWN0PE0sIFM+XG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIE1hcE9iamVjdDxcbiAgTSBleHRlbmRzIChjb2xsZWN0aW9uOiBzY2hlbWEuQ29sbGVjdGlvbikgPT4gYW55LFxuICBTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pixcbj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gTWFwQ29sbGVjdGlvbjxNLCBTW0tdPiA6IFNbS107XG59O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBaUJBLE1BQU0sUUFBUSx1QkFBdUI7QUFFdEQsZUFBZSxTQUFTQyxhQUFhQSxDQUluQ0MsQ0FBSSxFQUNKQyxNQUFTLEVBVVA7RUFDRixJQUFJLE9BQU9ELENBQUMsS0FBSyxRQUFRLElBQUlBLENBQUMsS0FBS0UsU0FBUyxFQUFFLE9BQU9GLENBQUM7RUFDdEQsSUFBSUEsQ0FBQyxZQUFZRixNQUFNLENBQUNLLFVBQVUsRUFBRTtJQUNsQyxPQUFPRixNQUFNLENBQUNELENBQVEsQ0FBQztFQUN6QjtFQUNBLE1BQU1JLE9BQStCLEdBQUFDLFFBQUEsS0FDL0JMLENBQUMsWUFBWUYsTUFBTSxDQUFDUSxNQUFNLEdBQUlOLENBQUMsQ0FBU0YsTUFBTSxHQUFHRSxDQUFDLENBQ3ZEO0VBQ0QsS0FBSyxNQUFNTyxDQUFDLElBQUlILE9BQU8sRUFBRTtJQUN2QixJQUFJLENBQUNBLE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEVBQUU7SUFDakJILE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEdBQUdSLGFBQWEsQ0FBQ0ssT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRU4sTUFBTSxDQUFRO0VBQ3ZEO0VBQ0EsT0FBT0csT0FBTztBQUNoQiIsImlnbm9yZUxpc3QiOltdfQ==