{"version":3,"sources":["jsdelivr-header.js","/npm/micro2@1.6.2/lib/index.js"],"names":[],"mappings":"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","file":"/npm/micro2@1.6.2/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/micro2@1.6.2/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// Packages\nconst http = require('http')\nconst https = require('https')\nconst FindMyWay = require('find-my-way')\nconst {\n\tStream\n} = require('stream')\nconst Middie = require('middie')\nconst {\n\treadable\n} = require('is-stream')\nconst pino = require('pino')\nconst {\n\tNODE_ENV\n} = process.env\nconst DEV = NODE_ENV === 'development'\nconst logger = pino({\n\tenabled: DEV\n})\nconst http2 = () => {\n\ttry {\n\t\treturn require('http2')\n\t} catch (err) {\n\t\tprocess.stdout.error('http2 is available only from node >= 8.8.1')\n\t}\n}\n\nconst middie = Middie((err, req, res, ctx) => {\n\tif (err) {\n\t\tlogger.error(err)\n\t\tres.end(err)\n\t\treturn\n\t}\n\tlogger.error(ctx)\n})\nconst router = FindMyWay({\n\tdefaultRoute: (req, res) => {\n\t\tres.statusCode = 404\n\t\tres.end()\n\t}\n})\nconst createError = (code, message, original) => {\n\tconst err = new Error(message)\n\terr.statusCode = code\n\terr.originalError = original\n\treturn err\n}\nconst send = (res, code, obj = null) => {\n\tres.statusCode = code\n\tif (obj === null) {\n\t\tres.end()\n\t\treturn\n\t}\n\tif (Buffer.isBuffer(obj)) {\n\t\tif (!res.getHeader('Content-Type')) {\n\t\t\tres.setHeader('Content-Type', 'application/octet-stream')\n\t\t}\n\n\t\tres.setHeader('Content-Length', obj.length)\n\t\tres.end(obj)\n\t\treturn\n\t}\n\tif (obj instanceof Stream || readable(obj)) {\n\t\tif (!res.getHeader('Content-Type')) {\n\t\t\tres.setHeader('Content-Type', 'application/octet-stream')\n\t\t}\n\t\tobj.pipe(res)\n\t\treturn\n\t}\n\tlet str = obj\n\tif (typeof obj === 'object' || typeof obj === 'number') {\n\t\t// We stringify before setting the header\n\t\t// in case `JSON.stringify` throws and a\n\t\t// 500 has to be sent instead\n\t\t// the `JSON.stringify` call is split into\n\t\t// two cases as `JSON.stringify` is optimized\n\t\t// in V8 if called with only one argument\n\t\tif (DEV) {\n\t\t\tstr = JSON.stringify(obj, null, 2)\n\t\t} else {\n\t\t\tstr = JSON.stringify(obj)\n\t\t}\n\t\tif (!res.getHeader('Content-Type')) {\n\t\t\tres.setHeader('Content-Type', 'application/json; charset=utf-8')\n\t\t}\n\t}\n\tres.setHeader('Content-Length', Buffer.byteLength(str))\n\tres.end(str)\n}\n\nconst sendError = (req, res, errorObj) => {\n\tconst statusCode = errorObj.statusCode || errorObj.status\n\tconst message = statusCode ? errorObj.message : 'Internal Server Error'\n\tsend(res, statusCode || 500, DEV ? errorObj.stack : message)\n\tif (errorObj instanceof Error) {\n\t\tprocess.stdout.error(errorObj.stack)\n\t} else {\n\t\tprocess.stdout.error('thrown error must be an instance Error')\n\t}\n}\n\nconst run = (req, res, fn) => {\n\tmiddie.run(req, res)\n\tif (typeof fn === 'function') {\n\t\tnew Promise(resolve => resolve(fn(req, res)))\n\t\t\t.then(val => {\n\t\t\t\tif (val === null) {\n\t\t\t\t\tsend(res, 204, null)\n\t\t\t\t}\n\t\t\t\t// Send value if it is not undefined, otherwise assume res.end\n\t\t\t\t// will be called later\n\t\t\t\t// eslint-disable-next-line no-undefined\n\t\t\t\tif (val !== undefined) {\n\t\t\t\t\tsend(res, res.statusCode || 200, val)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(err => sendError(req, res, err))\n\t} else if (typeof fn === 'object') {\n\t\tfn.defaultRoute ? fn.defaultRoute(req, res, res.statusCode || 200) : send(res, res.statusCode || 200, 'Oops !')\n\t} else {\n\t\tsend(res, res.statusCode || 200, 'No endpoint provided')\n\t}\n}\n\nconst serve = options => {\n\t// const httpHandler = router.lookup.bind(router)\n\tlet server\n\tif (options && options.serverFactory) {\n\t\tconst fn = options\n\t\tserver = options.serverFactory((req, res) => run(req, res, fn), options)\n\t} else if (options && options.https) {\n\t\tconst fn = options\n\t\tif (options.http2) {\n\t\t\tserver = http2().createSecureServer(options.https, (req, res) => run(req, res, fn))\n\t\t} else {\n\t\t\tserver = https.createServer(options.https, (req, res) => run(req, res, fn))\n\t\t}\n\t} else if (options && options.http2) {\n\t\tconst fn = options\n\t\tserver = http2().createServer((req, res) => run(req, res, fn))\n\t} else {\n\t\tconst fn = options\n\t\tserver = http.createServer((req, res) => run(req, res, fn))\n\t}\n\n\tserver.log = server.logger = pino\n\tserver.use = middie.use\n\n\treturn server\n}\n\n// default exports\nmodule.exports = serve\nexports.default = serve\nexports.serve = serve\n// exports others\nexports.send = send\nexports.log = exports.logger = pino\nexports.router = router\nexports.sendError = sendError\nexports.createError = createError\n"]}