diff options
Diffstat (limited to 'node_modules/@shellscape/koa-static/legacy/index.js')
| -rw-r--r-- | node_modules/@shellscape/koa-static/legacy/index.js | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/node_modules/@shellscape/koa-static/legacy/index.js b/node_modules/@shellscape/koa-static/legacy/index.js new file mode 100644 index 00000000..fe21365b --- /dev/null +++ b/node_modules/@shellscape/koa-static/legacy/index.js @@ -0,0 +1,92 @@ +'use strict'; +/** + * Module dependencies. + */ + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; } + +const debug = require('debug')('koa-static'); + +const { + resolve +} = require('path'); + +const assert = require('assert'); + +const send = require("@shellscape/koa-send/legacy"); +/** + * Expose `serve()`. + */ + + +module.exports = serve; +/** + * Serve static files from `root`. + * + * @param {String} root + * @param {Object} [opts] + * @return {Function} + * @api public + */ + +function serve(root, opts) { + opts = Object.assign({}, opts); + assert(root, 'root directory is required to serve files'); // options + + debug('static "%s" %j', root, opts); + opts.root = resolve(root); + if (opts.index !== false) opts.index = opts.index || 'index.html'; + + if (!opts.defer) { + return ( + /*#__PURE__*/ + function () { + var _serve = _asyncToGenerator(function* (ctx, next) { + let done = false; + + if (ctx.method === 'HEAD' || ctx.method === 'GET') { + try { + done = yield send(ctx, ctx.path, opts); + } catch (err) { + if (err.status !== 404) { + throw err; + } + } + } + + if (!done) { + yield next(); + } + }); + + return function serve(_x, _x2) { + return _serve.apply(this, arguments); + }; + }() + ); + } + + return ( + /*#__PURE__*/ + function () { + var _serve2 = _asyncToGenerator(function* (ctx, next) { + yield next(); + if (ctx.method !== 'HEAD' && ctx.method !== 'GET') return; // response is already handled + + if (ctx.body != null || ctx.status !== 404) return; // eslint-disable-line + + try { + yield send(ctx, ctx.path, opts); + } catch (err) { + if (err.status !== 404) { + throw err; + } + } + }); + + return function serve(_x3, _x4) { + return _serve2.apply(this, arguments); + }; + }() + ); +} |
