UNPKG

@sapphire/plugin-api

Version:

Plugin for @sapphire/framework to expose a REST API

40 lines (38 loc) 1.42 kB
import { __name, __publicField } from '../../chunk-S573YWRP.mjs'; import { Store } from '@sapphire/pieces'; import { Middleware } from './Middleware.mjs'; var _MiddlewareStore = class _MiddlewareStore extends Store { constructor() { super(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; export { MiddlewareStore }; //# sourceMappingURL=MiddlewareStore.mjs.map //# sourceMappingURL=MiddlewareStore.mjs.map