resources.js.map
5.4 KB
{"version":3,"sources":["resources.js"],"names":[],"mappings":"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","file":"resources.js","sourcesContent":["// History of resources loaded by window.\n\nconst Fetch = require('./fetch');\n\n\n// Each resource is associated with request, and on completion response or error.\nclass Resource {\n\n constructor({ request }) {\n this.request = request;\n this.error = null;\n this.response = null;\n }\n\n // The URL of this resource\n get url() {\n return (this.response && this.response.url) || this.request.url;\n }\n\n // Dump the resource to output stream/stdout\n dump(output = process.stdout) {\n const { request, response, error } = this;\n // Write summary request/response header\n if (response) {\n const elapsed = response.time - request.time;\n output.write(`${request.method} ${this.url} - ${response.status} ${response.statusText} - ${elapsed}ms\\n`);\n } else\n output.write(`${request.method} ${this.url}\\n`);\n\n // If response, write out response headers and sample of document entity\n // If error, write out the error message\n // Otherwise, indicate this is a pending request\n if (response) {\n if (response._redirectCount)\n output.write(` Followed ${response._redirectCount} redirects\\n`);\n for (let [name, value] of response.headers)\n output.write(` ${name}: ${value}\\n`);\n output.write('\\n');\n const sample = response.body\n .slice(0, 250)\n .toString('utf8')\n .split('\\n')\n .map(line => ` ${line}`)\n .join('\\n');\n output.write(sample);\n } else if (error)\n output.write(` Error: ${error.message}\\n`);\n else\n output.write(` Pending since ${new Date(request.time)}\\n`);\n // Keep them separated\n output.write('\\n\\n');\n }\n\n}\n\n\n// Each window has a resources object that provides the means for retrieving\n// resources and a list of all retrieved resources.\n//\n// The object is an array, and its elements are the resources.\nclass Resources extends Array {\n\n constructor(window) {\n super();\n this._browser = window.browser;\n }\n\n\n _fetch(input, init) {\n const pipeline = this._browser.pipeline;\n const request = new Fetch.Request(input, init);\n const resource = new Resource({ request });\n this.push(resource);\n\n return pipeline\n ._fetch(request)\n .then(function(response) {\n resource.response = response;\n return response;\n })\n .catch(function(error) {\n resource.error = error;\n resource.response = Fetch.Response.error();\n throw error;\n });\n }\n\n\n // Human readable resource listing.\n //\n // output - Write to this stream (optional)\n dump(output = process.stdout) {\n if (this.length === 0)\n output.write('No resources\\n');\n else\n this.forEach(resource => resource.dump(output));\n }\n\n}\n\n\n\nmodule.exports = Resources;\n\n"]}