UNPKG

@sapphire/plugin-api

Version:

Plugin for @sapphire/framework to expose a REST API

45 lines (42 loc) 1.78 kB
'use strict'; var pieces = require('@sapphire/pieces'); var Middleware_cjs = require('./Middleware.cjs'); var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value); var _MiddlewareStore = class _MiddlewareStore extends pieces.Store { constructor() { super(Middleware_cjs.Middleware, { name: "middlewares" }); /** * The sorted middlewares, in ascending order of see {@link Middleware.position}. */ __publicField(this, "sortedMiddlewares", []); } async run(request, response) { for (const middleware of this.sortedMiddlewares) { if (response.writableEnded) return; if (middleware.enabled) await middleware.run(request, response); } } set(key, value) { const index = this.sortedMiddlewares.findIndex((middleware) => middleware.position >= value.position); if (index === -1) this.sortedMiddlewares.push(value); else this.sortedMiddlewares.splice(index, 0, value); return super.set(key, value); } delete(key) { const index = this.sortedMiddlewares.findIndex((middleware) => middleware.name === key); if (index !== -1) this.sortedMiddlewares.splice(index, 1); return super.delete(key); } clear() { this.sortedMiddlewares.length = 0; return super.clear(); } }; __name(_MiddlewareStore, "MiddlewareStore"); var MiddlewareStore = _MiddlewareStore; exports.MiddlewareStore = MiddlewareStore; //# sourceMappingURL=MiddlewareStore.cjs.map //# sourceMappingURL=MiddlewareStore.cjs.map