@data-client/rest
Version:
Quickly define typed REST resources and endpoints
15 lines • 3.2 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { schema } from '@data-client/endpoint';
export default function extractCollection(s, mapper) {
if (typeof s !== 'object' || s === undefined || Array.isArray(s)) return;
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;
const collection = extractCollection(objCopy[k], mapper);
if (collection) return collection;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIl9leHRlbmRzIiwiT2JqZWN0IiwiayIsImNvbGxlY3Rpb24iXSwic291cmNlcyI6WyIuLi9zcmMvZXh0cmFjdENvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBFeHRyYWN0T2JqZWN0IH0gZnJvbSAnLi9leHRyYWN0T2JqZWN0LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb248XG4gIE0gZXh0ZW5kcyA8QyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uPihjb2xsZWN0aW9uOiBDKSA9PiBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4+KHM6IFMsIG1hcHBlcjogTSk6IEV4dHJhY3RDb2xsZWN0aW9uPFM+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JyB8fCBzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShzKSkgcmV0dXJuO1xuICBpZiAocyBpbnN0YW5jZW9mIHNjaGVtYS5Db2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIG1hcHBlcihzIGFzIGFueSk7XG4gIH1cbiAgY29uc3Qgb2JqQ29weTogUmVjb3JkPHN0cmluZywgU2NoZW1hPiA9IHtcbiAgICAuLi4ocyBpbnN0YW5jZW9mIHNjaGVtYS5PYmplY3QgPyAocyBhcyBhbnkpLnNjaGVtYSA6IHMpLFxuICB9O1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqQ29weSkge1xuICAgIGlmICghb2JqQ29weVtrXSkgY29udGludWU7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGV4dHJhY3RDb2xsZWN0aW9uKG9iakNvcHlba10sIG1hcHBlcik7XG4gICAgaWYgKGNvbGxlY3Rpb24pIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RDb2xsZWN0aW9uPFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIChcbiAgICB7XG4gICAgICBwdXNoOiBhbnk7XG4gICAgICB1bnNoaWZ0OiBhbnk7XG4gICAgICBhc3NpZ246IGFueTtcbiAgICAgIHNjaGVtYTogU2NoZW1hO1xuICAgIH1cbiAgKSA/XG4gICAgU1xuICA6IFMgZXh0ZW5kcyBzY2hlbWEuT2JqZWN0PGluZmVyIFQ+ID8gRXh0cmFjdE9iamVjdDxUPlxuICA6IFMgZXh0ZW5kcyBFeGNsdWRlPFNjaGVtYSwgeyBbSzogc3RyaW5nXTogYW55IH0+ID8gbmV2ZXJcbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogU2NoZW1hIH0gPyBFeHRyYWN0T2JqZWN0PFM+XG4gIDogbmV2ZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUl0RCxlQUFlLFNBQVNDLGlCQUFpQkEsQ0FHdkNDLENBQUksRUFBRUMsTUFBUyxFQUFvQztFQUNuRCxJQUFJLE9BQU9ELENBQUMsS0FBSyxRQUFRLElBQUlBLENBQUMsS0FBS0UsU0FBUyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osQ0FBQyxDQUFDLEVBQUU7RUFDbEUsSUFBSUEsQ0FBQyxZQUFZRixNQUFNLENBQUNPLFVBQVUsRUFBRTtJQUNsQyxPQUFPSixNQUFNLENBQUNELENBQVEsQ0FBQztFQUN6QjtFQUNBLE1BQU1NLE9BQStCLEdBQUFDLFFBQUEsS0FDL0JQLENBQUMsWUFBWUYsTUFBTSxDQUFDVSxNQUFNLEdBQUlSLENBQUMsQ0FBU0YsTUFBTSxHQUFHRSxDQUFDLENBQ3ZEO0VBQ0QsS0FBSyxNQUFNUyxDQUFDLElBQUlILE9BQU8sRUFBRTtJQUN2QixJQUFJLENBQUNBLE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEVBQUU7SUFDakIsTUFBTUMsVUFBVSxHQUFHWCxpQkFBaUIsQ0FBQ08sT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRVIsTUFBTSxDQUFDO0lBQ3hELElBQUlTLFVBQVUsRUFBRSxPQUFPQSxVQUFVO0VBQ25DO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=