UNPKG

panda-sky-client

Version:

Auto-assembling client for APIs deployed with Panda Sky

55 lines (43 loc) 4.26 kB
var skyClient; import log from "./log"; import assemble from "./assemble"; skyClient = async function (discoveryURL, options) { var _headers, fetch, headers, k, lib, logging, resources, response, v, validator; if (options != null) { ({ fetch, validator, logging, headers = {} } = options); } if ((fetch != null ? fetch : fetch = typeof window !== "undefined" && window !== null ? window.fetch : void 0) == null) { throw new Error("Provide fetch API, ex: fetch-h2"); } // Provides debug level logging on network traffic from the client. Defaults to false. if (logging != null) { fetch = log(fetch); } // Fetch from the discovery endpoint and parse, _headers = { Accept: "application/json" }; for (k in headers) { v = headers[k]; _headers[k] = v; } response = await fetch(discoveryURL, { method: "GET", headers: _headers }); ({ resources } = await response.json()); // lib is the low level interfaces to make and validate the HTTP request. lib = { fetch, validator, headers }; // assemble the client for external use. return assemble(lib, discoveryURL, resources); }; export default skyClient; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYXZpZC9yZXBvcy9wYW5kYS1za3ktY2xpZW50L3NyYy9pbmRleC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBQSxTQUFBO0FBQUEsT0FBQSxHQUFBLE1BQUEsT0FBQTtBQUNBLE9BQUEsUUFBQSxNQUFBLFlBQUE7O0FBRUEsU0FBQSxHQUFZLGdCQUFBLFlBQUEsRUFBQSxPQUFBLEVBQUE7QUFDVixNQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsT0FBQSxFQUFBLENBQUEsRUFBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxRQUFBLEVBQUEsQ0FBQSxFQUFBLFNBQUE7O0FBQUEsTUFBRyxPQUFBLElBQUgsSUFBQSxFQUFBO0FBQ0UsS0FBQTtBQUFBLE1BQUEsS0FBQTtBQUFBLE1BQUEsU0FBQTtBQUFBLE1BQUEsT0FBQTtBQUE0QixNQUFBLE9BQUEsR0FBNUI7QUFBQSxRQURGLE9BQ0U7OztBQUVGLE1BQUksQ0FBQSxLQUFBLElBQUEsSUFBQSxHQUFBLEtBQUEsR0FBQSxLQUFBLEdBQUEsT0FBQSxNQUFBLEtBQUEsV0FBQSxJQUFBLE1BQUEsS0FBQSxJQUFBLEdBQUEsTUFBQSxDQUFBLEtBQUEsR0FBQSxLQUFBLENBQUEsS0FBSixJQUFBLEVBQUE7QUFDRSxVQUFNLElBQUEsS0FBQSxDQURSLGlDQUNRLENBQU47QUFKRixHQURVLEM7OztBQVFWLE1BQUcsT0FBQSxJQUFILElBQUEsRUFBQTtBQUNFLElBQUEsS0FBQSxHQUFRLEdBQUEsQ0FEVixLQUNVLENBQVI7QUFSRixHQURVLEM7OztBQVlWLEVBQUEsUUFBQSxHQUFXO0FBQUEsSUFBQSxNQUFBLEVBQVE7QUFBUixHQUFYOztBQUNnQixPQUFBLENBQUEsSUFBQSxPQUFBLEVBQUE7O0FBQWhCLElBQUEsUUFBUyxDQUFULENBQVMsQ0FBVCxHQUFjLENBQWQ7QUFBZ0I7O0FBRWhCLEVBQUEsUUFBQSxHQUFXLE1BQU0sS0FBQSxDQUFBLFlBQUEsRUFDZjtBQUFBLElBQUEsTUFBQSxFQUFBLEtBQUE7QUFDQSxJQUFBLE9BQUEsRUFBUztBQURULEdBRGUsQ0FBakI7QUFJQSxHQUFBO0FBQUEsSUFBQTtBQUFBLE1BQWMsTUFBTSxRQUFRLENBbEI1QixJQWtCb0IsRUFBcEIsRUFuQlUsQzs7QUFzQlYsRUFBQSxHQUFBLEdBQU07QUFBQSxJQUFBLEtBQUE7QUFBQSxJQUFBLFNBQUE7QUFyQk4sSUFBQTtBQXFCTSxHQUFOLENBdEJVLEM7O1NBeUJWLFFBQUEsQ0FBQSxHQUFBLEVBQUEsWUFBQSxFQUFBLFNBQUEsQztBQXpCVSxDQUFaOztBQTJCQSxlQUFlLFNBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gXCIuL2xvZ1wiXG5pbXBvcnQgYXNzZW1ibGUgZnJvbSBcIi4vYXNzZW1ibGVcIlxuXG5za3lDbGllbnQgPSAoZGlzY292ZXJ5VVJMLCBvcHRpb25zKSAtPlxuICBpZiBvcHRpb25zP1xuICAgIHtmZXRjaCwgdmFsaWRhdG9yLCBsb2dnaW5nLCBoZWFkZXJzPXt9fSA9IG9wdGlvbnNcbiAgIyBJbiB0aGUgYnJvd3Nlciwgd2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIEZldGNoIEFQSSwgYnV0IGluIE5vZGUsIHlvdSBuZWVkIHRvIHN1cHBseSB5b3VyIG93bi5cbiAgaWYgIShmZXRjaCA/PSB3aW5kb3c/LmZldGNoKT9cbiAgICB0aHJvdyBuZXcgRXJyb3IgXCJQcm92aWRlIGZldGNoIEFQSSwgZXg6IGZldGNoLWgyXCJcblxuICAjIFByb3ZpZGVzIGRlYnVnIGxldmVsIGxvZ2dpbmcgb24gbmV0d29yayB0cmFmZmljIGZyb20gdGhlIGNsaWVudC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gIGlmIGxvZ2dpbmc/XG4gICAgZmV0Y2ggPSBsb2cgZmV0Y2hcblxuICAjIEZldGNoIGZyb20gdGhlIGRpc2NvdmVyeSBlbmRwb2ludCBhbmQgcGFyc2UsXG4gIF9oZWFkZXJzID0gQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICBfaGVhZGVyc1trXSA9IHYgZm9yIGssIHYgb2YgaGVhZGVyc1xuXG4gIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2ggZGlzY292ZXJ5VVJMLFxuICAgIG1ldGhvZDogXCJHRVRcIlxuICAgIGhlYWRlcnM6IF9oZWFkZXJzXG5cbiAge3Jlc291cmNlc30gPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAjIGxpYiBpcyB0aGUgbG93IGxldmVsIGludGVyZmFjZXMgdG8gbWFrZSBhbmQgdmFsaWRhdGUgdGhlIEhUVFAgcmVxdWVzdC5cbiAgbGliID0ge2ZldGNoLCB2YWxpZGF0b3IsIGhlYWRlcnN9XG5cbiAgIyBhc3NlbWJsZSB0aGUgY2xpZW50IGZvciBleHRlcm5hbCB1c2UuXG4gIGFzc2VtYmxlIGxpYiwgZGlzY292ZXJ5VVJMLCByZXNvdXJjZXNcblxuZXhwb3J0IGRlZmF1bHQgc2t5Q2xpZW50XG4iXSwic291cmNlUm9vdCI6IiJ9 //# sourceURL=/Users/david/repos/panda-sky-client/src/index.coffee